# HG changeset patch # User Raimund Renkert # Date 1306248661 -7200 # Node ID 5c5ef5768893d0bb364a876ac9b1387eb15c98c9 # Parent e468cf8701ead94acaae7c33fd39f90e4171a47b Added MultiLayerLineSymbolReader. diff -r e468cf8701ea -r 5c5ef5768893 ChangeLog --- a/ChangeLog Tue May 24 14:16:25 2011 +0200 +++ b/ChangeLog Tue May 24 16:51:01 2011 +0200 @@ -1,3 +1,17 @@ +2011-05-24 Raimund Renkert + + * src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java: + Read the marker line symbols using the new MarkerLineSymbolReader. + + * src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java: + Added constructor with IMarkerSymbol parameter. + + * src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.javai: + New. Reads marker line symbols. + 2011-05-24 Raimund Renkert * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: diff -r e468cf8701ea -r 5c5ef5768893 src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java --- a/src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java Tue May 24 14:16:25 2011 +0200 +++ b/src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java Tue May 24 16:51:01 2011 +0200 @@ -48,6 +48,18 @@ } } + public ArrowMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof ArrowMarkerSymbol) { + this.symbol = (ArrowMarkerSymbol)symbol; + } + else { + throw new Exception("Not a ArrowMarkerSymbol!"); + } + } + + /** * Setter for the parent XML element. * diff -r e468cf8701ea -r 5c5ef5768893 src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java --- a/src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java Tue May 24 14:16:25 2011 +0200 +++ b/src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java Tue May 24 16:51:01 2011 +0200 @@ -7,6 +7,7 @@ import org.apache.log4j.Logger; import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; import com.esri.arcgis.display.CharacterMarkerSymbol; import com.esri.arcgis.display.IColor; import com.esri.arcgis.support.ms.stdole.Font; @@ -46,6 +47,18 @@ } } + public CharacterMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof CharacterMarkerSymbol) { + this.symbol = (CharacterMarkerSymbol)symbol; + } + else { + throw new Exception("Not a CharacterMarkerSymbol!"); + } + } + + /** * Setter for the parent XML element. * diff -r e468cf8701ea -r 5c5ef5768893 src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java Tue May 24 16:51:01 2011 +0200 @@ -0,0 +1,99 @@ +package de.intevation.mxd.reader; + +import java.io.IOException; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.MarkerLineSymbol; +import com.esri.arcgis.display.esriSimpleLineStyle; +import com.esri.arcgis.display.MultiLayerMarkerSymbol; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * Reads marker line symbol information. + * + * @author Raimund Renkert + */ +public class MarkerLineSymbolReader implements ISymbolReader{ + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(MarkerLineSymbolReader.class); + + /** + * Private member. + */ + private Element renderer; + private MarkerLineSymbol symbol; + private MapToXMLUtils util; + + + public MarkerLineSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MarkerLineSymbol) { + this.symbol = (MarkerLineSymbol)symbol; + } + else { + throw new Exception("Not a MarkerLineSymbol!"); + } + } + + /** + * Setter for the parent XML element. + * + * @param parent The XML parent node. + */ + public void setParent(Element parent) { + this.renderer = parent; + } + + /** + * Setter for XML document helper. + * + * @param util The helper class for storing map information. + */ + public void setUtil(MapToXMLUtils util) { + this.util = util; + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() + throws IOException { + logger.debug("read()"); + try { + IMarkerSymbol sym = symbol.getMarkerSymbol(); + if(sym instanceof MultiLayerMarkerSymbol) { + ISymbolReader sreader = new MultiLayerMarkerSymbolReader(sym); + sreader.setParent(renderer); + sreader.setUtil(util); + sreader.read(); + } + else { + logger.debug("The type of " + sym.getClass().toString() + + " is not implemented!"); + System.out.println( + "No known instance: " + sym.getClass().toString()); + } + } + catch (Exception e) { + e.printStackTrace(); + } + return renderer; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r e468cf8701ea -r 5c5ef5768893 src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java --- a/src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java Tue May 24 14:16:25 2011 +0200 +++ b/src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java Tue May 24 16:51:01 2011 +0200 @@ -9,6 +9,7 @@ import com.esri.arcgis.display.ISymbol; import com.esri.arcgis.display.MultiLayerLineSymbol; import com.esri.arcgis.display.SimpleLineSymbol; +import com.esri.arcgis.display.MarkerLineSymbol; import com.esri.arcgis.display.esriSimpleMarkerStyle; import com.esri.arcgis.display.IRgbColor; import com.esri.arcgis.display.RgbColor; @@ -84,6 +85,12 @@ sreader.setUtil(util); sreader.read(); } + else if(sym instanceof MarkerLineSymbol) { + ISymbolReader sreader = new MarkerLineSymbolReader(sym); + sreader.setParent(renderer); + sreader.setUtil(util); + sreader.read(); + } else { logger.debug("The type of " + sym.getClass().toString() + " is not implemented!"); diff -r e468cf8701ea -r 5c5ef5768893 src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java --- a/src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java Tue May 24 14:16:25 2011 +0200 +++ b/src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java Tue May 24 16:51:01 2011 +0200 @@ -51,6 +51,18 @@ } } + + public MultiLayerMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MultiLayerMarkerSymbol) { + this.symbol = (MultiLayerMarkerSymbol)symbol; + } + else { + throw new Exception("Not a MultiLayerMarkerSymbol!"); + } + } + /** * Setter for the parent XML element. * diff -r e468cf8701ea -r 5c5ef5768893 src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java --- a/src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java Tue May 24 14:16:25 2011 +0200 +++ b/src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java Tue May 24 16:51:01 2011 +0200 @@ -5,6 +5,7 @@ import org.apache.log4j.Logger; import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; import com.esri.arcgis.display.PictureMarkerSymbol; import com.esri.arcgis.display.IColor; import com.esri.arcgis.carto.PictureElement; @@ -44,6 +45,19 @@ } } + + public PictureMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof PictureMarkerSymbol) { + this.symbol = (PictureMarkerSymbol)symbol; + } + else { + throw new Exception("Not a PictureMarkerSymbol!"); + } + } + + /** * Setter for the parent XML element. *