private static Style createLabelOffsetStyle() { StyleBuilder sb = new StyleBuilder(); PointPlacement pp = sb.createPointPlacement(0.5, 0.5, 50, 0, 0); TextSymbolizer ts = sb.createTextSymbolizer(); ts.setFont(sb.createFont("Bitstream Vera Sans", 20)); ts.setLabel(sb.getFilterFactory().literal("name")); ts.setLabelPlacement(pp); ts.getOptions().put("partials", "true"); return sb.createStyle(ts); }
@Test public void testMarkStroke() throws Exception { StyleBuilder sb = new StyleBuilder(); Mark mark = sb.createMark("square"); mark.getStroke().setWidth(sb.getFilterFactory().literal(10)); Graphic graphic = sb.createGraphic(null, mark, null); graphic.setSize(NilExpression.NIL); PointSymbolizer ps = sb.createPointSymbolizer(graphic); Style style = sb.createStyle(ps); MetaBufferEstimator estimator = new MetaBufferEstimator(); style.accept(estimator); assertTrue(estimator.isEstimateAccurate()); assertEquals(26, estimator.getBuffer()); }
@Test public void testGraphicSizeFunction() throws Exception { StyleBuilder sb = new StyleBuilder(); Mark mark = sb.createMark("square"); mark.setStroke(null); Graphic graphic = sb.createGraphic(null, mark, null); FilterFactory2 ff = sb.getFilterFactory(); graphic.setSize(ff.function("env", ff.literal("test"))); PointSymbolizer ps = sb.createPointSymbolizer(graphic); Style style = sb.createStyle(ps); try { EnvFunction.setGlobalValue("test", 10); MetaBufferEstimator estimator = new MetaBufferEstimator(); style.accept(estimator); assertTrue(estimator.isEstimateAccurate()); assertEquals(10, estimator.getBuffer()); } finally { EnvFunction.clearGlobalValues(); } }
@Test public void testMultipleSymbolizers() { Style style = sb.createStyle(); LineSymbolizer ls = sb.createLineSymbolizer(); ls.getStroke().setWidth(sb.getFilterFactory().property("myAttribute")); FeatureTypeStyle fts = sb.createFeatureTypeStyle(sb.createPolygonSymbolizer()); style.featureTypeStyles().add(fts); fts.rules().get(0).symbolizers().add(ls); fts.rules().get(0).symbolizers().add(sb.createLineSymbolizer()); checkSingleSymbolizer(style, ls); }
@Test public void testMixDynamicStroke() { Style style = sb.createStyle(); FeatureTypeStyle fts1 = sb.createFeatureTypeStyle("Feature", staticPolygonRule); LineSymbolizer ls = sb.createLineSymbolizer(); ls.getStroke().setWidth(sb.getFilterFactory().property("myAttribute")); FeatureTypeStyle fts2 = sb.createFeatureTypeStyle(ls); style.featureTypeStyles().add(fts1); style.featureTypeStyles().add(fts2); checkSingleSymbolizer(style, ls); }
StyleBuilder sb = new StyleBuilder(); FilterFactory2 ff = sb.getFilterFactory(); Mark testMark = sb.createMark(sb.literalExpression("Circle"), sb.createFill(sb.attributeExpression("color"),sb.attributeExpression("opacity")), null); Graphic graph = sb.createGraphic(null, // An external graphics if needed new Mark[] { testMark }, // a Mark if not an external graphics null, // aSymbol ff.literal(sb.attributeExpression("opacity")), // opacity ff.property("size"), // read from feature "size" attribute ff.literal(0)); // rotation, here read into the feature PointSymbolizer aPointSymbolizer = sb.createPointSymbolizer(graph); // creation of the style org.geotools.styling.Style style = sb.createStyle(aPointSymbolizer);
@Test public void testMixDynamicGraphicStroke() { Style style = sb.createStyle(); FeatureTypeStyle fts1 = sb.createFeatureTypeStyle("Feature", staticPolygonRule); Graphic graphic = sb.createGraphic(null, sb.createMark("square"), null); graphic.setSize(sb.getFilterFactory().property("myAttribute")); LineSymbolizer ls = sb.createLineSymbolizer(); ls.getStroke().setGraphicStroke(graphic); FeatureTypeStyle fts2 = sb.createFeatureTypeStyle(ls); style.featureTypeStyles().add(fts1); style.featureTypeStyles().add(fts2); checkSingleSymbolizer(style, ls); }
@Test public void testDynamicStrokeInGraphicMark() { Stroke markStroke = sb.createStroke(); markStroke.setWidth(sb.getFilterFactory().property("myAttribute")); Mark mark = sb.createMark("square"); mark.setStroke(markStroke); Graphic graphic = sb.createGraphic(null, mark, null); LineSymbolizer ls = sb.createLineSymbolizer(); ls.getStroke().setGraphicStroke(graphic); Style style = sb.createStyle(ls); checkSingleSymbolizer(style, ls); }
@Test // this one should fail now?? public void testDynamicStrokeInGraphicFill() { Stroke markStroke = sb.createStroke(); markStroke.setWidth(sb.getFilterFactory().property("myAttribute")); Mark mark = sb.createMark("square"); mark.setStroke(markStroke); Graphic graphic = sb.createGraphic(null, mark, null); PolygonSymbolizer ps = sb.createPolygonSymbolizer(); ps.getFill().setGraphicFill(graphic); Style style = sb.createStyle(ps); style.accept(visitor); Style copy = (Style) visitor.getCopy(); assertNull(copy); } }