Rule does not include filter when converted to XML
--------------------------------------------------

                 Key: GEOT-2162
                 URL: http://jira.codehaus.org/browse/GEOT-2162
             Project: GeoTools
          Issue Type: Bug
          Components: core styling
    Affects Versions: 2.6-M0
         Environment: udig trunk
            Reporter: Jody Garnett
            Assignee: Jody Garnett


The following was reported by Harald on the udig-devel list:

It's not uDig, the Geotools SLDTransformer is broken (on trunk).

This is an excerpt from my original SLD:

<sld:Rule>
    <sld:Name>admin0</sld:Name>
    <sld:Title>LINE_ROAD_ADMIN_0</sld:Title>
    <sld:Abstract>Abstract</sld:Abstract>
    <ogc:Filter>
        <ogc:PropertyIsEqualTo>
            <ogc:PropertyName>feat_type</ogc:PropertyName>
            <ogc:Literal>LINE_ROAD_ADMIN_0</ogc:Literal>
        </ogc:PropertyIsEqualTo>
    </ogc:Filter>
    <sld:MinScaleDenominator>300000</sld:MinScaleDenominator>
    <sld:MaxScaleDenominator>6000000</sld:MaxScaleDenominator>
    <sld:LineSymbolizer>
       ...
    </sld:LineSymbolizer>
</sld:Rule> 

This gets parsed into a Style, which is added to the StyleBlackboard. But the 
Memento created by SLDTransformer looks like this:

<sld:Rule>
    <sld:Name>admin0</sld:Name>
    <sld:Title>LINE_ROAD_ADMIN_0</sld:Title>
    <sld:Abstract>Abstract</sld:Abstract>
        <ogc:PropertyIsEqualTo>
            <ogc:PropertyName>feat_type</ogc:PropertyName>
            <ogc:Literal>LINE_ROAD_ADMIN_0</ogc:Literal>
        </ogc:PropertyIsEqualTo>
    <sld:MinScaleDenominator>300000</sld:MinScaleDenominator>
    <sld:MaxScaleDenominator>6000000</sld:MaxScaleDenominator>
    <sld:LineSymbolizer>
       ...
    </sld:LineSymbolizer>
</sld:Rule> 


i.e. the <ogc:Filter> tags are missing, and after reopening uDig and loading 
the memento from the *.umap file, this is what is left:

<sld:Rule>
    <sld:Name>admin0</sld:Name>
    <sld:Title>LINE_ROAD_ADMIN_0</sld:Title>
    <sld:Abstract>Abstract</sld:Abstract>
    <sld:MinScaleDenominator>300000</sld:MinScaleDenominator>
    <sld:MaxScaleDenominator>6000000</sld:MaxScaleDenominator>
    <sld:LineSymbolizer>
       ...
    </sld:LineSymbolizer>
</sld:Rule> 


Moreover, my original

<sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>

gets transformed into 

<sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>  
<sld:SemanticTypeIdentifier>ANY</sld:SemanticTypeIdentifier>

I'm not sure if that is a problem.

To fix this problem, I changed SLDTransformer.SLDTranslator.visit(Rule), 
replacing

filterTranslator.encode(filter)

by

element("Filter", filter).


With that change, my styles work as they should even after resurrection from 
the memento.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to