/** * Set the fill's {@link ExternalGraphic} path. * * <p>Currently one {@link ExternalGraphic} per {@link Symbolizer} is supported. * * <p>This is used for polygons. * * @param externalGraphicPath the path to set. * @throws MalformedURLException */ public void setFillExternalGraphicFillPath(String externalGraphicPath) throws MalformedURLException { Graphic graphic = null; PolygonSymbolizerWrapper polygonSymbolizerWrapper = adapt(PolygonSymbolizerWrapper.class); if (polygonSymbolizerWrapper != null) { graphic = polygonSymbolizerWrapper.getFillGraphicFill(); if (graphic == null) { graphic = sf.createDefaultGraphic(); } polygonSymbolizerWrapper.setFillGraphicFill(graphic); } else { return; } graphic.graphicalSymbols().clear(); String urlStr = externalGraphicPath; if (!externalGraphicPath.startsWith("http:") && !externalGraphicPath.startsWith("file:")) { urlStr = "file:" + externalGraphicPath; } if (fillExternalGraphicFill == null) { fillExternalGraphicFill = sb.createExternalGraphic(new URL(urlStr), getFormat(externalGraphicPath)); } else { setExternalGraphicPath(externalGraphicPath, fillExternalGraphicFill); } graphic.graphicalSymbols().add(fillExternalGraphicFill); }
/** * Set the stroke's {@link ExternalGraphic} path. * * <p>Currently one {@link ExternalGraphic} per {@link Symbolizer} is supported. * * <p>This is used for lines. * * @param externalGraphicPath the path to set. * @throws MalformedURLException */ public void setStrokeExternalGraphicStrokePath(String externalGraphicPath) throws MalformedURLException { if (strokeExternalGraphicStroke == null) { Graphic graphic = null; LineSymbolizerWrapper lineSymbolizerWrapper = adapt(LineSymbolizerWrapper.class); PolygonSymbolizerWrapper polygonSymbolizerWrapper = adapt(PolygonSymbolizerWrapper.class); if (lineSymbolizerWrapper != null) { graphic = lineSymbolizerWrapper.getStrokeGraphicStroke(); if (graphic == null) { graphic = sb.createGraphic(); lineSymbolizerWrapper.setStrokeGraphicStroke(graphic); } } else if (polygonSymbolizerWrapper != null) { graphic = polygonSymbolizerWrapper.getStrokeGraphicStroke(); if (graphic == null) { graphic = sb.createGraphic(); polygonSymbolizerWrapper.setStrokeGraphicStroke(graphic); } } else { return; } graphic.graphicalSymbols().clear(); String urlStr = externalGraphicPath; if (!externalGraphicPath.startsWith("http:") && !externalGraphicPath.startsWith("file:")) { urlStr = "file:" + externalGraphicPath; } strokeExternalGraphicStroke = sb.createExternalGraphic(new URL(urlStr), getFormat(externalGraphicPath)); graphic.graphicalSymbols().add(strokeExternalGraphicStroke); } else { setExternalGraphicPath(externalGraphicPath, strokeExternalGraphicStroke); } }