rrenkert@70: package de.intevation.mxd.reader; rrenkert@70: rrenkert@70: import java.lang.Exception; rrenkert@70: rrenkert@70: import org.w3c.dom.Element; rrenkert@70: rrenkert@70: import org.apache.log4j.Logger; rrenkert@70: rrenkert@70: import com.esri.arcgis.display.ISymbol; rrenkert@71: import com.esri.arcgis.display.SimpleMarkerSymbol; rrenkert@70: import com.esri.arcgis.display.ArrowMarkerSymbol; rrenkert@70: import com.esri.arcgis.display.CharacterMarkerSymbol; rrenkert@70: import com.esri.arcgis.display.PictureMarkerSymbol; rrenkert@70: import com.esri.arcgis.display.MultiLayerMarkerSymbol; rrenkert@70: rrenkert@70: /** rrenkert@70: * Wrapper for marker symbol reader. rrenkert@70: * rrenkert@70: * @author Raimund Renkert rrenkert@70: */ rrenkert@70: public class MarkerSymbolReader rrenkert@70: extends AbstractSymbolReader { rrenkert@70: rrenkert@70: /** rrenkert@70: * The logger. rrenkert@70: */ rrenkert@70: private static final Logger logger = rrenkert@70: Logger.getLogger(SimpleFillSymbolReader.class); rrenkert@70: rrenkert@70: private ISymbol symbol; rrenkert@70: rrenkert@71: public MarkerSymbolReader(ISymbol symbol) rrenkert@71: throws Exception { rrenkert@71: logger.debug("contructor(ISymbol)"); rrenkert@70: this.symbol = symbol; rrenkert@70: } rrenkert@70: rrenkert@71: public MarkerSymbolReader() { rrenkert@71: logger.debug("contructor()"); rrenkert@71: this.symbol = null; rrenkert@71: } rrenkert@71: rrenkert@70: public Element read() throws Exception { rrenkert@71: if(symbol == null) { rrenkert@71: return parent; rrenkert@71: } rrenkert@71: rrenkert@70: ISymbolReader sreader = null; rrenkert@71: if(symbol instanceof SimpleMarkerSymbol) { rrenkert@71: sreader = new SimpleMarkerSymbolReader(symbol); rrenkert@71: } rrenkert@71: else if(symbol instanceof ArrowMarkerSymbol) { rrenkert@70: sreader = new ArrowMarkerSymbolReader(symbol); rrenkert@70: } rrenkert@70: else if(symbol instanceof CharacterMarkerSymbol) { rrenkert@70: sreader = new CharacterMarkerSymbolReader(symbol); rrenkert@70: } rrenkert@70: else if(symbol instanceof PictureMarkerSymbol) { rrenkert@70: sreader = new PictureMarkerSymbolReader(symbol); rrenkert@70: } rrenkert@70: else if(symbol instanceof MultiLayerMarkerSymbol) { rrenkert@70: sreader = new MultiLayerMarkerSymbolReader(symbol); rrenkert@70: } rrenkert@70: else { rrenkert@70: logger.debug("The reader for type " + symbol.getClass().toString() + rrenkert@70: " is not implemented!"); rrenkert@70: return parent; rrenkert@70: } rrenkert@70: if (sreader != null) { rrenkert@70: sreader.setParent(parent); rrenkert@70: sreader.setUtil(util); rrenkert@70: return sreader.read(); rrenkert@70: } rrenkert@70: return parent; rrenkert@70: } rrenkert@71: rrenkert@71: public void setSymbol(ISymbol sym) { rrenkert@71: this.symbol = sym; rrenkert@71: } rrenkert@71: rrenkert@71: public boolean canRead(ISymbol sym) { rrenkert@71: if(sym instanceof SimpleMarkerSymbol || rrenkert@71: sym instanceof ArrowMarkerSymbol || rrenkert@71: sym instanceof PictureMarkerSymbol || rrenkert@71: sym instanceof CharacterMarkerSymbol || rrenkert@71: sym instanceof MultiLayerMarkerSymbol) { rrenkert@71: return true; rrenkert@71: } rrenkert@71: else { rrenkert@71: return false; rrenkert@71: } rrenkert@71: } rrenkert@71: rrenkert@70: }