sld.layers().add(l); return sld;
private StyledLayerDescriptor sld(FeatureTypeStyle fts) { StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); style.featureTypeStyles().add(fts); return sld; }
@Test public void testFilter() throws Exception { FilterFactory2 filterFactory = CommonFactoryFinder.getFilterFactory2(); StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); Rule rule = styleFactory.createRule(); rule.setFilter(filterFactory.less(filterFactory.property("foo"), filterFactory.literal(2))); style.featureTypeStyles().add(styleFactory.createFeatureTypeStyle()); style.featureTypeStyles().get(0).rules().add(rule); PointSymbolizer p = styleFactory.createPointSymbolizer(); rule.symbolizers().add((Symbolizer) p); StringWriter out = new StringWriter(); Ysld.encode(sld, out); YamlMap obj = new YamlMap(YamlUtil.getSafeYaml().load(out.toString())); YamlMap result = obj.seq("feature-styles").map(0).seq("rules").map(0); assertThat(result, yHasEntry("filter", equalTo("${foo < 2}"))); }
@Test public void testFilterEscape() throws Exception { FilterFactory2 filterFactory = CommonFactoryFinder.getFilterFactory2(); StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); Rule rule = styleFactory.createRule(); rule.setFilter( filterFactory.less(filterFactory.property("foo"), filterFactory.literal("}$"))); style.featureTypeStyles().add(styleFactory.createFeatureTypeStyle()); style.featureTypeStyles().get(0).rules().add(rule); PointSymbolizer p = styleFactory.createPointSymbolizer(); rule.symbolizers().add((Symbolizer) p); StringWriter out = new StringWriter(); Ysld.encode(sld, out); YamlMap obj = new YamlMap(YamlUtil.getSafeYaml().load(out.toString())); YamlMap result = obj.seq("feature-styles").map(0).seq("rules").map(0); assertThat(result, yHasEntry("filter", equalTo("${foo < '\\}\\$'}"))); }
@Test public void testFunction() throws Exception { StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); FilterFactory filterFactory = CommonFactoryFinder.getFilterFactory(); StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); Rule rule = styleFactory.createRule(); style.featureTypeStyles().add(styleFactory.createFeatureTypeStyle()); style.featureTypeStyles().get(0).rules().add(rule); Function func = filterFactory.function( "strEndsWith", filterFactory.property("foo"), filterFactory.literal("bar")); rule.setFilter(filterFactory.equal(func, filterFactory.literal(true), false)); StringWriter out = new StringWriter(); Ysld.encode(sld, out); YamlMap obj = new YamlMap(YamlUtil.getSafeYaml().load(out.toString())); String filter = obj.seq("feature-styles").map(0).seq("rules").map(0).str("filter"); assertEquals("${strEndsWith(foo,'bar') = true}", filter); }
sld.layers().add(layer); Style style = sf.createStyle(); layer.userStyles().add(style);
/** * Extract user layers from an SLD. * * @param sld the sld * @return the list of user layers */ public static List<UserLayer> extractUserLayers(StyledLayerDescriptor sld) { List<UserLayer> userLayerList = new ArrayList<>(); if (sld != null) { for (StyledLayer layer : sld.layers()) { if (layer instanceof UserLayer) { UserLayer userLayer = (UserLayer) layer; userLayerList.add(userLayer); } } } return userLayerList; }
sld.layers().add(layer); Style style = sf.createStyle(); layer.userStyles().add(style);
/** * Show style name. * * @param sld the sld * @return the string */ private String showStyleName(StyledLayerDescriptor sld) { String styleNameHeading = null; if (!sld.layers().isEmpty()) { StyledLayer styledLayer = sld.layers().get(0); if (styledLayer != null) { styleNameHeading = styledLayer.getName(); } } if (styleNameHeading == null) { styleNameHeading = ""; } return styleNameHeading; }
sld.layers().add(layer);
sld.layers().add(layer);
sld.layers().add(layer);
sld.layers().add(layer); Style style = sf.createStyle(); layer.userStyles().add(style);
sld.layers().add(layer);
sld.layers().add(layer);
/** * Checks for only one rule. * * @return true, if successful */ public boolean hasOnlyOneRule() { boolean oneRule = false; int noOfRules = 0; List<StyledLayer> styledLayers = sld.layers(); for (StyledLayer styledLayer : styledLayers) { List<Style> styleList = SLDUtils.getStylesList(styledLayer); for (Style style : styleList) { for (FeatureTypeStyle fts : style.featureTypeStyles()) { noOfRules += fts.rules().size(); } } } oneRule = (noOfRules == 1); logger.debug(String.format("Number of rules : %d", noOfRules)); return oneRule; }
sld.layers().add(layer);
sld.layers().add(layer);
/** * Render updated style. * * @param mapContent the map content */ private void renderUpdatedStyle(MapContent mapContent) { StyledLayerDescriptor sld = SelectedSymbol.getInstance().getSld(); if (sld != null) { List<StyledLayer> styledLayerList = sld.layers(); for (StyledLayer styledLayer : styledLayerList) { List<org.geotools.styling.Style> styleList = SLDUtils.getStylesList(styledLayer); for (Style style : styleList) { renderSymbol(mapContent, styledLayer, style); } } } }
/** * Evaluate fields types. * * @return true, field types updated */ public static boolean fieldTypesUpdated() { boolean fieldsUpdated = false; StyledLayerDescriptor sld = SelectedSymbol.getInstance().getSld(); if (sld != null) { List<StyledLayer> styledLayerList = sld.layers(); for (StyledLayer styledLayer : styledLayerList) { List<org.geotools.styling.Style> styleList = SLDUtils.getStylesList(styledLayer); FeatureSource<SimpleFeatureType, SimpleFeature> featureList = DataSourceFactory.getDataSource().getFeatureSource(); if (featureList != null) { fieldsUpdated = processStyles(fieldsUpdated, styleList, featureList); } } } return fieldsUpdated; }