[fusion-commits] r2295 - in branches/fusion-2.2/widgets/Theme:
classes templates
svn_fusion at osgeo.org
svn_fusion at osgeo.org
Mon Dec 6 04:17:57 EST 2010
Author: liuar
Date: 2010-12-06 01:17:57 -0800 (Mon, 06 Dec 2010)
New Revision: 2295
Added:
branches/fusion-2.2/widgets/Theme/templates/arearuletemplate-2.3.0-Enhanced.xml
branches/fusion-2.2/widgets/Theme/templates/arearuletemplate-2.3.0.xml
Modified:
branches/fusion-2.2/widgets/Theme/classes/theme.php
Log:
Port Ticket #421 to fusion 2.2 branch
MapGuide upgraded LayerDefinition schema from 1.3.0 to 2.3.0.
So, the theme widget need to be enhanced to support the latest version of layer definition.
The new layer definition could be found at http://trac.osgeo.org/mapguide/browser/trunk/MgDev/Common/Schema/LayerDefinition-2.3.0.xsd
Modified: branches/fusion-2.2/widgets/Theme/classes/theme.php
===================================================================
--- branches/fusion-2.2/widgets/Theme/classes/theme.php 2010-12-03 03:33:57 UTC (rev 2294)
+++ branches/fusion-2.2/widgets/Theme/classes/theme.php 2010-12-06 09:17:57 UTC (rev 2295)
@@ -257,22 +257,51 @@
$areaTypeStyle = $vectorScaleRangecElement->getElementsByTagName('AreaTypeStyle')->item(0);
// Remove any existing <AreaRule> elements.
+ if($areaTypeStyle != null)
+ {
+ $areaRuleList = $areaTypeStyle->getElementsByTagName('AreaRule');
+ $ruleCount = $areaRuleList->length;
+ for($index = 0; $index < $ruleCount; $index++)
+ {
+ $areaTypeStyle->removeChild($areaRuleList->item(0));
+ }
- $areaRuleList = $areaTypeStyle->getElementsByTagName('AreaRule');
- $ruleCount = $areaRuleList->length;
- for($index = 0; $index < $ruleCount; $index++)
- {
- $areaTypeStyle->removeChild($areaRuleList->item(0));
+ $hasChild = $areaTypeStyle->hasChildNodes();
+ if($hasChild)
+ {
+ $element = $areaTypeStyle->childNodes->item(0);
+ }
}
- $hasChild = $areaTypeStyle->hasChildNodes();
- if($hasChild)
+ $CompositeTypeStyles = $vectorScaleRangecElement->getElementsByTagName('CompositeTypeStyle');
+
+ // Remove any existing <CompositeTypeStyle> elements with Polygon <GeometryContext>.
+ if($CompositeTypeStyles != null)
{
- $element = $areaTypeStyle->childNodes->item(0);
+ $template = 'templates/arearuletemplate-'.$version.'-Enhanced.xml';
+ $styleCount = $CompositeTypeStyles->length;
+ for($index = 0; $index < $styleCount; $index++)
+ {
+
+ $CompositeTypeStyle = $CompositeTypeStyles->item($index);
+ $GeometryContexts = $CompositeTypeStyle->getElementsByTagName('GeometryContext');
+ $contextCount = $GeometryContexts->length;
+
+ for($i = 0; $i < $contextCount; $i++)
+ {
+ $GeometryContext = $GeometryContexts->item($i);
+ if($GeometryContext->nodeValue == 'Polygon')
+ {
+ $vectorScaleRangecElement->removeChild($CompositeTypeStyle);
+ $index--;
+ $styleCount--;
+ break;
+ }
+ }
+ }
}
- // Now create the new <AreaRule> elements.
-
+ // Now create the new <AreaRule> or <CompositeTypeStyle> elements.
$areaRuleTemplate = file_get_contents($template);
$aggregateOptions = new MgFeatureAggregateOptions();
@@ -316,13 +345,22 @@
$areaDoc = DOMDocument::loadXML($areaRuleXML);
$areaNode = $doc->importNode($areaDoc->documentElement, true);
- if($hasChild)
+ if($areaTypeStyle != null)
{
- $areaTypeStyle->insertBefore($areaNode, $element);
+ if($hasChild)
+ {
+ $areaTypeStyle->insertBefore($areaNode, $element);
+ }
+ else
+ {
+ $areaTypeStyle->appendChild($areaNode);
+ }
}
- else
+ if($CompositeTypeStyles != null)
{
- $areaTypeStyle->appendChild($areaNode);
+ $compositeTypeStyle = $doc->createElement('CompositeTypeStyle');
+ $compositeTypeStyle->appendChild($areaNode);
+ $vectorScaleRangecElement->appendChild($compositeTypeStyle);
}
$portion += $increment;
@@ -361,13 +399,22 @@
$areaDoc = DOMDocument::loadXML($areaRuleXML);
$areaNode = $doc->importNode($areaDoc->documentElement, true);
- if($hasChild)
+ if($areaTypeStyle != null)
{
- $areaTypeStyle->insertBefore($areaNode, $element);
+ if($hasChild)
+ {
+ $areaTypeStyle->insertBefore($areaNode, $element);
+ }
+ else
+ {
+ $areaTypeStyle->appendChild($areaNode);
+ }
}
- else
+ if($CompositeTypeStyles != null)
{
- $areaTypeStyle->appendChild($areaNode);
+ $compositeTypeStyle = $doc->createElement('CompositeTypeStyle');
+ $compositeTypeStyle->appendChild($areaNode);
+ $vectorScaleRangecElement->appendChild($compositeTypeStyle);
}
$portion += $increment;
Added: branches/fusion-2.2/widgets/Theme/templates/arearuletemplate-2.3.0-Enhanced.xml
===================================================================
--- branches/fusion-2.2/widgets/Theme/templates/arearuletemplate-2.3.0-Enhanced.xml (rev 0)
+++ branches/fusion-2.2/widgets/Theme/templates/arearuletemplate-2.3.0-Enhanced.xml 2010-12-06 09:17:57 UTC (rev 2295)
@@ -0,0 +1,85 @@
+<CompositeRule>
+ <LegendLabel>%s</LegendLabel>
+ <Filter>%s</Filter>
+ <CompositeSymbolization>
+ <SymbolInstance>
+ <SimpleSymbolDefinition>
+ <Name>Solid Fill</Name>
+ <Description>Default Area Symbol</Description>
+ <Graphics>
+ <Path>
+ <Geometry>M 0.0,0.0 h 100.0 v 100.0 h -100.0 z</Geometry>
+ <FillColor>%s</FillColor>
+ </Path>
+ </Graphics>
+ <AreaUsage>
+ <RepeatX>100.0</RepeatX>
+ <RepeatY>100.0</RepeatY>
+ </AreaUsage>
+ <ParameterDefinition>
+ <Parameter>
+ <Identifier>FILLCOLOR</Identifier>
+ <DefaultValue>0xffbfbfbf</DefaultValue>
+ <DisplayName>&Fill Color</DisplayName>
+ <Description>Fill Color</Description>
+ <DataType>FillColor</DataType>
+ </Parameter>
+ </ParameterDefinition>
+ </SimpleSymbolDefinition>
+ <ParameterOverrides>
+ <Override>
+ <SymbolName>Solid Fill</SymbolName>
+ <ParameterIdentifier>FILLCOLOR</ParameterIdentifier>
+ <ParameterValue>0xffbfbfbf</ParameterValue>
+ </Override>
+ </ParameterOverrides>
+ <GeometryContext>Polygon</GeometryContext>
+ </SymbolInstance>
+ <SymbolInstance>
+ <SimpleSymbolDefinition>
+ <Name>Solid Line</Name>
+ <Description>Default Line Symbol</Description>
+ <Graphics>
+ <Path>
+ <Geometry>M 0.0,0.0 L 1.0,0.0</Geometry>
+ <LineColor>%s</LineColor>
+ <LineWeight>0.0</LineWeight>
+ <LineWeightScalable>false</LineWeightScalable>
+ </Path>
+ </Graphics>
+ <LineUsage>
+ <Repeat>1.0</Repeat>
+ </LineUsage>
+ <ParameterDefinition>
+ <Parameter>
+ <Identifier>LINECOLOR</Identifier>
+ <DefaultValue>0xff000000</DefaultValue>
+ <DisplayName>Line &Color</DisplayName>
+ <Description>Line Color</Description>
+ <DataType>LineColor</DataType>
+ </Parameter>
+ <Parameter>
+ <Identifier>LINEWEIGHT</Identifier>
+ <DefaultValue>0.0</DefaultValue>
+ <DisplayName>Line &Thickness</DisplayName>
+ <Description>Line Thickness</Description>
+ <DataType>LineWeight</DataType>
+ </Parameter>
+ </ParameterDefinition>
+ </SimpleSymbolDefinition>
+ <ParameterOverrides>
+ <Override>
+ <SymbolName>Solid Line</SymbolName>
+ <ParameterIdentifier>LINECOLOR</ParameterIdentifier>
+ <ParameterValue>0xff000000</ParameterValue>
+ </Override>
+ <Override>
+ <SymbolName>Solid Line</SymbolName>
+ <ParameterIdentifier>LINEWEIGHT</ParameterIdentifier>
+ <ParameterValue>0.0</ParameterValue>
+ </Override>
+ </ParameterOverrides>
+ <GeometryContext>Polygon</GeometryContext>
+ </SymbolInstance>
+ </CompositeSymbolization>
+</CompositeRule>
\ No newline at end of file
Added: branches/fusion-2.2/widgets/Theme/templates/arearuletemplate-2.3.0.xml
===================================================================
--- branches/fusion-2.2/widgets/Theme/templates/arearuletemplate-2.3.0.xml (rev 0)
+++ branches/fusion-2.2/widgets/Theme/templates/arearuletemplate-2.3.0.xml 2010-12-06 09:17:57 UTC (rev 2295)
@@ -0,0 +1,18 @@
+<AreaRule>
+ <LegendLabel>%s</LegendLabel>
+ <Filter>%s</Filter>
+ <AreaSymbolization2D>
+ <Fill>
+ <FillPattern>Solid</FillPattern>
+ <ForegroundColor>%s</ForegroundColor>
+ <BackgroundColor>FF000000</BackgroundColor>
+ </Fill>
+ <Stroke>
+ <LineStyle>Solid</LineStyle>
+ <Thickness>0</Thickness>
+ <Color>%s</Color>
+ <Unit>Inches</Unit>
+ <SizeContext>DeviceUnits</SizeContext>
+ </Stroke>
+ </AreaSymbolization2D>
+</AreaRule>
\ No newline at end of file
More information about the fusion-commits
mailing list