Search in sources :

Example 1 with Rule

use of org.geotools.styling.Rule in project sldeditor by robward-scisys.

the class MXDParser method processLabelRenderer.

/**
 * Gets the label renderer.
 *
 * @param sld the sld
 * @param labelRenderArrayElement the label render array element
 * @param transparency the transparency
 */
private void processLabelRenderer(StyledLayerDescriptor sld, JsonArray labelRenderArrayElement, int transparency) {
    if (sld != null) {
        if (labelRenderArrayElement != null) {
            List<StyledLayer> styledLayers = sld.layers();
            if (!styledLayers.isEmpty()) {
                if (styledLayers.get(0) instanceof NamedLayer) {
                    NamedLayer namedLayer = (NamedLayer) styledLayers.get(0);
                    List<Style> styleList = namedLayer.styles();
                    if (!styleList.isEmpty()) {
                        List<FeatureTypeStyle> ftsList = styleList.get(0).featureTypeStyles();
                        if (!ftsList.isEmpty()) {
                            List<Rule> ruleList = ftsList.get(0).rules();
                            List<Rule> newLabelRuleList = new ArrayList<Rule>();
                            for (int index = 0; index < labelRenderArrayElement.size(); index++) {
                                JsonElement labelRenderElement = labelRenderArrayElement.get(index);
                                JsonObject renderer = labelRenderElement.getAsJsonObject();
                                boolean found = false;
                                for (String labelRendererType : labelRendererMap.keySet()) {
                                    JsonElement obj = renderer.get(labelRendererType);
                                    if (obj != null) {
                                        EsriLabelRendererInterface esriLabelRenderer = labelRendererMap.get(labelRendererType);
                                        if (esriLabelRenderer != null) {
                                            for (Rule rule : ruleList) {
                                                esriLabelRenderer.convert(newLabelRuleList, rule, obj, transparency);
                                            }
                                        }
                                        found = true;
                                        break;
                                    }
                                }
                                if (!found) {
                                    ConsoleManager.getInstance().error(this, "Unsupported label renderer : " + SymbolUtils.extractName(labelRenderElement));
                                }
                            }
                            ruleList.addAll(newLabelRuleList);
                        }
                    }
                }
            }
        }
    }
}
Also used : StyledLayer(org.geotools.styling.StyledLayer) ArrayList(java.util.ArrayList) JsonObject(com.google.gson.JsonObject) EsriLabelRendererInterface(com.sldeditor.exportdata.esri.label.EsriLabelRendererInterface) JsonElement(com.google.gson.JsonElement) Style(org.geotools.styling.Style) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) Rule(org.geotools.styling.Rule) NamedLayer(org.geotools.styling.NamedLayer)

Example 2 with Rule

use of org.geotools.styling.Rule in project sldeditor by robward-scisys.

the class SLDTreeSymbolizerButtonStateTest method testLine.

/**
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#setGeometryType(com.sldeditor.datasource.impl.GeometryTypeEnum)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isMarkerVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isLineVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isPolygonVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isRasterVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isTextVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isImageOutlineLineVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isImageOutlinePolygonVisible(java.lang.Object, java.lang.Object)}.
 */
@Test
public void testLine() {
    SLDTreeSymbolizerButtonState obj = new SLDTreeSymbolizerButtonState();
    obj.setGeometryType(GeometryTypeEnum.LINE);
    obj.showSymbolizerButtons();
    assertFalse(obj.isLineVisible(null, null));
    assertFalse(obj.isMarkerVisible(null, null));
    assertFalse(obj.isPolygonVisible(null, null));
    assertFalse(obj.isRasterVisible(null, null));
    assertFalse(obj.isTextVisible(null, null));
    assertFalse(obj.isImageOutlineLineVisible(null, null));
    assertFalse(obj.isImageOutlinePolygonVisible(null, null));
    Rule rule = DefaultSymbols.createNewRule();
    assertTrue(obj.isLineVisible(null, rule));
    assertTrue(obj.isTextVisible(null, rule));
}
Also used : SLDTreeSymbolizerButtonState(com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState) Rule(org.geotools.styling.Rule) Test(org.junit.Test)

Example 3 with Rule

use of org.geotools.styling.Rule in project sldeditor by robward-scisys.

the class SLDTreeSymbolizerButtonStateTest method testMarker.

/**
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#setGeometryType(com.sldeditor.datasource.impl.GeometryTypeEnum)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isMarkerVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isLineVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isPolygonVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isRasterVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isTextVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isImageOutlineLineVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isImageOutlinePolygonVisible(java.lang.Object, java.lang.Object)}.
 */
@Test
public void testMarker() {
    SLDTreeSymbolizerButtonState obj = new SLDTreeSymbolizerButtonState();
    obj.setGeometryType(GeometryTypeEnum.POINT);
    obj.showSymbolizerButtons();
    assertFalse(obj.isLineVisible(null, null));
    assertFalse(obj.isMarkerVisible(null, null));
    assertFalse(obj.isPolygonVisible(null, null));
    assertFalse(obj.isRasterVisible(null, null));
    assertFalse(obj.isTextVisible(null, null));
    assertFalse(obj.isImageOutlineLineVisible(null, null));
    assertFalse(obj.isImageOutlinePolygonVisible(null, null));
    Rule rule = DefaultSymbols.createNewRule();
    assertTrue(obj.isMarkerVisible(null, rule));
    assertTrue(obj.isTextVisible(null, rule));
}
Also used : SLDTreeSymbolizerButtonState(com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState) Rule(org.geotools.styling.Rule) Test(org.junit.Test)

Example 4 with Rule

use of org.geotools.styling.Rule in project sldeditor by robward-scisys.

the class SLDTreeSymbolizerButtonStateTest method testPolygon.

/**
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#setGeometryType(com.sldeditor.datasource.impl.GeometryTypeEnum)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isMarkerVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isLineVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isPolygonVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isRasterVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isTextVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isImageOutlineLineVisible(java.lang.Object, java.lang.Object)}.
 * Test method for {@link com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState#isImageOutlinePolygonVisible(java.lang.Object, java.lang.Object)}.
 */
@Test
public void testPolygon() {
    SLDTreeSymbolizerButtonState obj = new SLDTreeSymbolizerButtonState();
    obj.setGeometryType(GeometryTypeEnum.POLYGON);
    obj.showSymbolizerButtons();
    assertFalse(obj.isLineVisible(null, null));
    assertFalse(obj.isMarkerVisible(null, null));
    assertFalse(obj.isPolygonVisible(null, null));
    assertFalse(obj.isRasterVisible(null, null));
    assertFalse(obj.isTextVisible(null, null));
    assertFalse(obj.isImageOutlineLineVisible(null, null));
    assertFalse(obj.isImageOutlinePolygonVisible(null, null));
    Rule rule = DefaultSymbols.createNewRule();
    assertTrue(obj.isPolygonVisible(null, rule));
    assertTrue(obj.isTextVisible(null, rule));
}
Also used : SLDTreeSymbolizerButtonState(com.sldeditor.ui.tree.SLDTreeSymbolizerButtonState) Rule(org.geotools.styling.Rule) Test(org.junit.Test)

Example 5 with Rule

use of org.geotools.styling.Rule in project sldeditor by robward-scisys.

the class SimpleRenderer method convert.

/* (non-Javadoc)
     * @see com.sldeditor.convert.esri.renderer.EsriRendererInterface#convert(com.google.gson.JsonObject, java.lang.String, double, double, int)
     */
@Override
public StyledLayerDescriptor convert(JsonObject json, String layerName, double minScale, double maxScale, int transparency) {
    StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor();
    NamedLayer namedLayer = styleFactory.createNamedLayer();
    String label = json.get(CommonRendererKeys.LABEL).getAsString();
    namedLayer.setName(label);
    sld.addStyledLayer(namedLayer);
    Style style = styleFactory.createStyle();
    namedLayer.addStyle(style);
    List<FeatureTypeStyle> ftsList = style.featureTypeStyles();
    // style.setAbstract(json.get(IntermediateFileKeys.DESCRIPTION).getAsString());
    FeatureTypeStyle fts = styleFactory.createFeatureTypeStyle();
    ftsList.add(fts);
    Rule rule = styleFactory.createRule();
    if (minScale > 0.0) {
        rule.setMinScaleDenominator(minScale);
    }
    if (maxScale > 0.0) {
        rule.setMaxScaleDenominator(maxScale);
    }
    JsonElement jsonElement = json.get(CommonRendererKeys.SYMBOL);
    rule.setName(label);
    SymbolManager.getInstance().convertSymbols(rule, layerName, transparency, jsonElement);
    fts.rules().add(rule);
    return sld;
}
Also used : StyledLayerDescriptor(org.geotools.styling.StyledLayerDescriptor) JsonElement(com.google.gson.JsonElement) Style(org.geotools.styling.Style) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) Rule(org.geotools.styling.Rule) NamedLayer(org.geotools.styling.NamedLayer)

Aggregations

Rule (org.geotools.styling.Rule)110 FeatureTypeStyle (org.geotools.styling.FeatureTypeStyle)65 Style (org.geotools.styling.Style)60 StyledLayerDescriptor (org.geotools.styling.StyledLayerDescriptor)51 Test (org.junit.Test)48 NamedLayer (org.geotools.styling.NamedLayer)38 PointSymbolizer (org.geotools.styling.PointSymbolizer)28 PolygonSymbolizer (org.geotools.styling.PolygonSymbolizer)26 LineSymbolizer (org.geotools.styling.LineSymbolizer)24 Symbolizer (org.geotools.styling.Symbolizer)22 StyledLayer (org.geotools.styling.StyledLayer)19 NamedLayerImpl (org.geotools.styling.NamedLayerImpl)16 RasterSymbolizer (org.geotools.styling.RasterSymbolizer)16 TextSymbolizer (org.geotools.styling.TextSymbolizer)15 GraphicPanelFieldManager (com.sldeditor.ui.detail.GraphicPanelFieldManager)13 FieldConfigString (com.sldeditor.ui.detail.config.FieldConfigString)11 ArrayList (java.util.ArrayList)11 Filter (org.opengis.filter.Filter)11 UserLayerImpl (org.geotools.styling.UserLayerImpl)10 DataSourceAttributeData (com.sldeditor.datasource.attribute.DataSourceAttributeData)8