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@75: import com.esri.arcgis.display.IMarkerSymbol; 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@75: Logger.getLogger(MarkerSymbolReader.class); rrenkert@70: rrenkert@70: private ISymbol symbol; rrenkert@75: private IMarkerSymbol markerSymbol; rrenkert@70: rrenkert@71: public MarkerSymbolReader(ISymbol symbol) rrenkert@71: throws Exception { rrenkert@71: logger.debug("contructor(ISymbol)"); rrenkert@70: this.symbol = symbol; rrenkert@75: this.markerSymbol = null; rrenkert@75: } rrenkert@75: rrenkert@75: public MarkerSymbolReader(IMarkerSymbol symbol) rrenkert@75: throws Exception { rrenkert@75: logger.debug("contructor(ISymbol)"); rrenkert@75: this.markerSymbol = symbol; rrenkert@75: this.symbol = null; rrenkert@70: } rrenkert@70: rrenkert@71: public MarkerSymbolReader() { rrenkert@71: logger.debug("contructor()"); rrenkert@71: this.symbol = null; rrenkert@75: this.markerSymbol = null; rrenkert@71: } rrenkert@71: rrenkert@115: public Element read() { rrenkert@75: logger.debug("read()"); rrenkert@70: ISymbolReader sreader = null; rrenkert@75: rrenkert@75: if(symbol != null) { rrenkert@115: try { rrenkert@115: if(symbol instanceof SimpleMarkerSymbol) { rrenkert@115: sreader = new SimpleMarkerSymbolReader(symbol); rrenkert@115: } rrenkert@115: else if(symbol instanceof ArrowMarkerSymbol) { rrenkert@115: sreader = new ArrowMarkerSymbolReader(symbol); rrenkert@115: } rrenkert@115: else if(symbol instanceof CharacterMarkerSymbol) { rrenkert@115: sreader = new CharacterMarkerSymbolReader(symbol); rrenkert@115: } rrenkert@115: else if(symbol instanceof PictureMarkerSymbol) { rrenkert@115: sreader = new PictureMarkerSymbolReader(symbol); rrenkert@115: } rrenkert@115: else if(symbol instanceof MultiLayerMarkerSymbol) { rrenkert@115: sreader = new MultiLayerMarkerSymbolReader(symbol); rrenkert@115: } rrenkert@115: else { rrenkert@115: logger.debug("The reader for type " + symbol.getClass().toString() + rrenkert@115: " is not implemented!"); rrenkert@115: return parent; rrenkert@115: } rrenkert@75: } rrenkert@115: catch(Exception e) { rrenkert@115: logger.error( rrenkert@115: "Could not read the symbol " + rrenkert@115: symbol.getClass().toString()); rrenkert@75: return parent; rrenkert@115: rrenkert@75: } rrenkert@70: } rrenkert@75: else if(markerSymbol != null) { rrenkert@115: try { rrenkert@115: if(markerSymbol instanceof SimpleMarkerSymbol) { rrenkert@115: sreader = new SimpleMarkerSymbolReader(markerSymbol); rrenkert@115: } rrenkert@115: else if(markerSymbol instanceof ArrowMarkerSymbol) { rrenkert@115: sreader = new ArrowMarkerSymbolReader(markerSymbol); rrenkert@115: } rrenkert@115: else if(markerSymbol instanceof CharacterMarkerSymbol) { rrenkert@115: sreader = new CharacterMarkerSymbolReader(markerSymbol); rrenkert@115: } rrenkert@115: else if(markerSymbol instanceof PictureMarkerSymbol) { rrenkert@115: sreader = new PictureMarkerSymbolReader(markerSymbol); rrenkert@115: } rrenkert@115: else if(markerSymbol instanceof MultiLayerMarkerSymbol) { rrenkert@115: sreader = new MultiLayerMarkerSymbolReader(markerSymbol); rrenkert@115: } rrenkert@115: else { rrenkert@115: logger.debug("The reader for type " + symbol.getClass().toString() + rrenkert@115: " is not implemented!"); rrenkert@115: return parent; rrenkert@115: } rrenkert@75: } rrenkert@115: catch(Exception e) { rrenkert@115: logger.error( rrenkert@115: "Could not read the symbol " + rrenkert@115: symbol.getClass().toString()); rrenkert@75: return parent; rrenkert@115: rrenkert@75: } rrenkert@70: } rrenkert@70: if (sreader != null) { rrenkert@70: sreader.setParent(parent); rrenkert@70: sreader.setUtil(util); rrenkert@75: 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@75: this.markerSymbol = null; rrenkert@75: } rrenkert@75: rrenkert@75: public void setSymbol(IMarkerSymbol sym) { rrenkert@75: this.markerSymbol = sym; rrenkert@75: this.symbol = null; 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@75: public boolean canRead(IMarkerSymbol sym) { rrenkert@75: if(sym instanceof SimpleMarkerSymbol || rrenkert@75: sym instanceof ArrowMarkerSymbol || rrenkert@75: sym instanceof PictureMarkerSymbol || rrenkert@75: sym instanceof CharacterMarkerSymbol || rrenkert@75: sym instanceof MultiLayerMarkerSymbol) { rrenkert@75: return true; rrenkert@75: } rrenkert@75: else { rrenkert@75: return false; rrenkert@75: } rrenkert@75: } rrenkert@75: rrenkert@70: }