rrenkert@68: package de.intevation.mxd.reader; rrenkert@68: rrenkert@68: import java.io.IOException; rrenkert@68: rrenkert@68: import java.awt.Color; rrenkert@68: rrenkert@68: import org.apache.log4j.Logger; rrenkert@68: rrenkert@68: import com.esri.arcgis.display.ISymbol; rrenkert@68: import com.esri.arcgis.display.IFillSymbol; rrenkert@68: import com.esri.arcgis.display.MultiLayerFillSymbol; rrenkert@68: import com.esri.arcgis.display.SimpleFillSymbol; rrenkert@68: import com.esri.arcgis.display.MarkerFillSymbol; rrenkert@68: import com.esri.arcgis.display.PictureFillSymbol; rrenkert@68: import com.esri.arcgis.display.esriSimpleMarkerStyle; rrenkert@68: import com.esri.arcgis.display.IRgbColor; rrenkert@68: import com.esri.arcgis.display.RgbColor; rrenkert@68: rrenkert@68: import org.w3c.dom.Element; rrenkert@68: import de.intevation.mxd.utils.MapToXMLUtils; rrenkert@68: rrenkert@68: /** rrenkert@68: * Reads multi layer line symbol information. rrenkert@68: * rrenkert@68: * @author Raimund Renkert rrenkert@68: */ rrenkert@68: public class MultiLayerFillSymbolReader implements ISymbolReader{ rrenkert@68: rrenkert@68: /** rrenkert@68: * The logger. rrenkert@68: */ rrenkert@68: private static final Logger logger = rrenkert@68: Logger.getLogger(MultiLayerFillSymbolReader.class); rrenkert@68: rrenkert@68: /** rrenkert@68: * Private member. rrenkert@68: */ rrenkert@68: private Element renderer; rrenkert@68: private MultiLayerFillSymbol symbol; rrenkert@68: private MapToXMLUtils util; rrenkert@68: rrenkert@68: rrenkert@68: public MultiLayerFillSymbolReader(ISymbol symbol) rrenkert@68: throws Exception { rrenkert@68: logger.debug("contructor()"); rrenkert@68: if(symbol instanceof MultiLayerFillSymbol) { rrenkert@68: this.symbol = (MultiLayerFillSymbol)symbol; rrenkert@68: } rrenkert@68: else { rrenkert@68: throw new Exception("Not a MultiLayerFillSymbol!"); rrenkert@68: } rrenkert@68: } rrenkert@68: rrenkert@68: rrenkert@68: public MultiLayerFillSymbolReader(IFillSymbol symbol) rrenkert@68: throws Exception { rrenkert@68: logger.debug("contructor()"); rrenkert@68: if(symbol instanceof MultiLayerFillSymbol) { rrenkert@68: this.symbol = (MultiLayerFillSymbol)symbol; rrenkert@68: } rrenkert@68: else { rrenkert@68: throw new Exception("Not a MultiLayerFillSymbol!"); rrenkert@68: } rrenkert@68: } rrenkert@68: rrenkert@68: /** rrenkert@68: * Setter for the parent XML element. rrenkert@68: * rrenkert@68: * @param parent The XML parent node. rrenkert@68: */ rrenkert@68: public void setParent(Element parent) { rrenkert@68: this.renderer = parent; rrenkert@68: } rrenkert@68: rrenkert@68: /** rrenkert@68: * Setter for XML document helper. rrenkert@68: * rrenkert@68: * @param util The helper class for storing map information. rrenkert@68: */ rrenkert@68: public void setUtil(MapToXMLUtils util) { rrenkert@68: this.util = util; rrenkert@68: } rrenkert@68: rrenkert@68: /** rrenkert@68: * Reads the symbol attributes. rrenkert@68: * rrenkert@68: * @return The XML node. rrenkert@68: */ rrenkert@68: public Element read() rrenkert@74: throws Exception { rrenkert@68: logger.debug("read()"); rrenkert@68: for(int i = 0; i < symbol.getLayerCount(); i++) { rrenkert@74: ISymbol sym = (ISymbol)symbol.getLayer(i); rrenkert@68: rrenkert@75: FillSymbolReader fsr = new FillSymbolReader(); rrenkert@75: if(fsr.canRead(sym)) { rrenkert@75: fsr.setSymbol(sym); rrenkert@75: fsr.setParent(renderer); rrenkert@75: fsr.setUtil(util); rrenkert@75: fsr.read(); rrenkert@68: } rrenkert@74: else { rrenkert@74: logger.debug("The type of " + sym.getClass().toString() + rrenkert@74: " is not implemented!"); rrenkert@68: } rrenkert@68: } rrenkert@68: return renderer; rrenkert@68: } rrenkert@68: } rrenkert@68: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :