rrenkert@72: package de.intevation.mxd.reader; rrenkert@72: rrenkert@72: import java.lang.Exception; rrenkert@72: rrenkert@72: import org.w3c.dom.Element; rrenkert@72: rrenkert@72: import org.apache.log4j.Logger; rrenkert@72: rrenkert@72: import com.esri.arcgis.display.ISymbol; rrenkert@72: import com.esri.arcgis.display.IFillSymbol; rrenkert@72: import com.esri.arcgis.display.MultiLayerFillSymbol; rrenkert@72: import com.esri.arcgis.display.SimpleFillSymbol; rrenkert@75: import com.esri.arcgis.display.MarkerFillSymbol; rrenkert@76: import com.esri.arcgis.display.LineFillSymbol; rrenkert@72: rrenkert@72: /** rrenkert@72: * Wrapper for fill symbol reader. rrenkert@72: * rrenkert@72: * @author Raimund Renkert rrenkert@72: */ rrenkert@72: public class FillSymbolReader rrenkert@72: extends AbstractSymbolReader { rrenkert@72: rrenkert@72: /** rrenkert@72: * The logger. rrenkert@72: */ rrenkert@72: private static final Logger logger = rrenkert@72: Logger.getLogger(FillSymbolReader.class); rrenkert@72: rrenkert@72: private ISymbol symbol; rrenkert@72: private IFillSymbol fillSymbol; rrenkert@72: rrenkert@72: public FillSymbolReader() throws Exception{ rrenkert@72: logger.debug("contructor()"); rrenkert@72: this.symbol = null; rrenkert@72: this.fillSymbol = null; rrenkert@72: } rrenkert@72: rrenkert@72: public FillSymbolReader(ISymbol symbol) throws Exception{ rrenkert@72: logger.debug("contructor(ISymbol)"); rrenkert@72: this.symbol = symbol; rrenkert@72: this.fillSymbol = null; rrenkert@72: } rrenkert@72: rrenkert@72: public FillSymbolReader(IFillSymbol symbol) throws Exception{ rrenkert@72: logger.debug("contructor(ILineSymbol)"); rrenkert@72: this.fillSymbol = symbol; rrenkert@72: this.symbol= null; rrenkert@72: } rrenkert@72: rrenkert@115: public Element read() { rrenkert@72: ISymbolReader sreader = null; rrenkert@72: if(symbol != null) { rrenkert@115: try { rrenkert@115: if(symbol instanceof SimpleFillSymbol) { rrenkert@115: sreader = new SimpleFillSymbolReader(symbol); rrenkert@115: } rrenkert@115: else if(symbol instanceof MultiLayerFillSymbol) { rrenkert@115: sreader = new MultiLayerFillSymbolReader(symbol); rrenkert@115: } rrenkert@115: else if(symbol instanceof MarkerFillSymbol) { rrenkert@115: sreader = new MarkerFillSymbolReader(symbol); rrenkert@115: } rrenkert@115: else if(symbol instanceof LineFillSymbol) { rrenkert@115: sreader = new LineFillSymbolReader(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@72: } rrenkert@115: catch(Exception e) { rrenkert@115: logger.error( rrenkert@115: "Could not read the symbol " + rrenkert@115: symbol.getClass().toString()); rrenkert@72: return parent; rrenkert@72: } rrenkert@72: } rrenkert@72: else if(fillSymbol != null) { rrenkert@115: try { rrenkert@115: if(fillSymbol instanceof SimpleFillSymbol) { rrenkert@115: sreader = new SimpleFillSymbolReader(fillSymbol); rrenkert@115: } rrenkert@115: else if(fillSymbol instanceof MultiLayerFillSymbol) { rrenkert@115: sreader = new MultiLayerFillSymbolReader(fillSymbol); rrenkert@115: } rrenkert@115: else if(fillSymbol instanceof MarkerFillSymbol) { rrenkert@115: sreader = new MarkerFillSymbolReader(fillSymbol); rrenkert@115: } rrenkert@115: else if(fillSymbol instanceof LineFillSymbol) { rrenkert@115: sreader = new LineFillSymbolReader(fillSymbol); rrenkert@115: } rrenkert@115: else { rrenkert@115: logger.debug("The reader for type " + rrenkert@115: fillSymbol.getClass().toString() + rrenkert@115: " is not implemented!"); rrenkert@115: return parent; rrenkert@115: } rrenkert@72: } rrenkert@115: catch(Exception e) { rrenkert@115: logger.error( rrenkert@115: "Could not read the symbol " + rrenkert@115: symbol.getClass().toString()); rrenkert@72: return parent; rrenkert@72: } rrenkert@72: } rrenkert@72: else { rrenkert@72: return parent; rrenkert@72: } rrenkert@72: if (sreader != null) { rrenkert@72: sreader.setParent(parent); rrenkert@72: sreader.setUtil(util); rrenkert@72: sreader.read(); rrenkert@72: } rrenkert@72: return parent; rrenkert@72: } rrenkert@72: rrenkert@72: public void setSymbol(ISymbol sym) { rrenkert@72: this.symbol = sym; rrenkert@72: this.fillSymbol = null; rrenkert@72: } rrenkert@72: rrenkert@72: public void setSymbol(IFillSymbol sym) { rrenkert@72: this.symbol = null; rrenkert@72: this.fillSymbol = sym; rrenkert@72: } rrenkert@72: rrenkert@72: public boolean canRead(ISymbol sym) { rrenkert@72: if(sym instanceof SimpleFillSymbol || rrenkert@75: sym instanceof MarkerFillSymbol || rrenkert@76: sym instanceof MultiLayerFillSymbol || rrenkert@76: sym instanceof LineFillSymbol) { rrenkert@72: return true; rrenkert@72: } rrenkert@72: else { rrenkert@72: return false; rrenkert@72: } rrenkert@72: } rrenkert@72: rrenkert@72: public boolean canRead(IFillSymbol sym) { rrenkert@72: if(sym instanceof SimpleFillSymbol || rrenkert@75: sym instanceof MarkerFillSymbol || rrenkert@76: sym instanceof MultiLayerFillSymbol || rrenkert@76: sym instanceof LineFillSymbol) { rrenkert@72: return true; rrenkert@72: } rrenkert@72: else { rrenkert@72: return false; rrenkert@72: } rrenkert@72: } rrenkert@72: rrenkert@72: } rrenkert@72: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :