Mercurial > mxd2map
diff src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java @ 47:5fc813f40fa5
Added CharacterMarkerSymbol reader and extracted the ArrowMarkerSymbol reader.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 19 Apr 2011 17:25:09 +0200 |
parents | 34a93dad7604 |
children | 4e0464c620f0 |
line wrap: on
line diff
--- a/src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java Mon Apr 18 17:51:33 2011 +0200 +++ b/src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java Tue Apr 19 17:25:09 2011 +0200 @@ -10,6 +10,7 @@ import com.esri.arcgis.display.IMarkerSymbol; import com.esri.arcgis.display.MultiLayerMarkerSymbol; import com.esri.arcgis.display.ArrowMarkerSymbol; +import com.esri.arcgis.display.CharacterMarkerSymbol; import com.esri.arcgis.display.IColor; import com.esri.arcgis.display.RgbColor; @@ -74,51 +75,32 @@ public Element read() throws IOException { logger.debug("read()"); - Element symbolElement; - try { - symbolElement = util.addSymbol(renderer); - } - catch(Exception e) { - e.printStackTrace(); - return null; - } - for(int i = 0; i < symbol.getLayerCount(); i++) { - IMarkerSymbol sym = symbol.getLayer(i); - if (sym instanceof ArrowMarkerSymbol) { - ArrowMarkerSymbol arrow = (ArrowMarkerSymbol)sym; - IColor c = arrow.getColor(); - symbolElement.setAttribute( - "name", - arrow.getNameString()); - symbolElement.setAttribute( - "length", - String.valueOf(arrow.getLength())); - symbolElement.setAttribute( - "width", - String.valueOf(arrow.getWidth())); - symbolElement.setAttribute( - "angle", - String.valueOf(arrow.getAngle())); - symbolElement.setAttribute( - "size", - String.valueOf(arrow.getSize())); - symbolElement.setAttribute( - "x_offset", - String.valueOf(arrow.getXOffset())); - symbolElement.setAttribute( - "y_offset", - String.valueOf(arrow.getYOffset())); - symbolElement.setAttribute( - "color", - String.valueOf(c.getRGB())); - symbolElement.setAttribute( - "tranparency", - String.valueOf(c.getTransparency())); - symbolElement.setAttribute("style", "arrow"); + try { + ISymbol sym = (ISymbol)symbol.getLayer(i); + + if(sym instanceof ArrowMarkerSymbol) { + ISymbolReader sreader = new ArrowMarkerSymbolReader(sym); + sreader.setParent(renderer); + sreader.setUtil(util); + sreader.read(); + } + if(sym instanceof CharacterMarkerSymbol) { + ISymbolReader sreader = new CharacterMarkerSymbolReader(sym); + sreader.setParent(renderer); + sreader.setUtil(util); + sreader.read(); + } + else { + System.out.println( + "No known instance: " + sym.getClass().toString()); + } + } + catch(Exception e) { + e.printStackTrace(); } } - return symbolElement; + return renderer; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :