rrenkert@61: package de.intevation.mxd.reader; rrenkert@61: rrenkert@61: import java.awt.Color; rrenkert@61: rrenkert@61: import org.apache.log4j.Logger; rrenkert@61: rrenkert@61: import com.esri.arcgis.display.ISymbol; rrenkert@67: import com.esri.arcgis.display.ILineSymbol; rrenkert@61: import com.esri.arcgis.display.SimpleLineSymbol; rrenkert@61: import com.esri.arcgis.display.esriSimpleLineStyle; rrenkert@61: import com.esri.arcgis.display.IRgbColor; rrenkert@61: import com.esri.arcgis.display.RgbColor; rrenkert@61: rrenkert@61: import org.w3c.dom.Element; rrenkert@61: rrenkert@61: /** rrenkert@61: * Reads simple line symbol information. rrenkert@61: * rrenkert@61: * @author Raimund Renkert rrenkert@61: */ rrenkert@80: public class SimpleLineSymbolReader rrenkert@80: extends AbstractSymbolReader { rrenkert@61: rrenkert@61: /** rrenkert@61: * The logger. rrenkert@61: */ rrenkert@61: private static final Logger logger = rrenkert@61: Logger.getLogger(SimpleLineSymbolReader.class); rrenkert@61: rrenkert@61: /** rrenkert@61: * Private member. rrenkert@61: */ rrenkert@61: private SimpleLineSymbol symbol; rrenkert@61: rrenkert@61: public SimpleLineSymbolReader(ISymbol symbol) rrenkert@61: throws Exception { rrenkert@61: logger.debug("contructor()"); rrenkert@61: if(symbol instanceof SimpleLineSymbol) { rrenkert@61: this.symbol = (SimpleLineSymbol)symbol; rrenkert@61: } rrenkert@61: else { rrenkert@61: throw new Exception("Not a SimpleLineSymbol!"); rrenkert@61: } rrenkert@61: } rrenkert@61: rrenkert@67: public SimpleLineSymbolReader(ILineSymbol symbol) rrenkert@67: throws Exception { rrenkert@67: logger.debug("contructor()"); rrenkert@67: if(symbol instanceof SimpleLineSymbol) { rrenkert@67: this.symbol = (SimpleLineSymbol)symbol; rrenkert@67: } rrenkert@67: else { rrenkert@67: throw new Exception("Not a SimpleLineSymbol!"); rrenkert@67: } rrenkert@67: } rrenkert@67: rrenkert@61: /** rrenkert@61: * Reads the symbol attributes. rrenkert@61: * rrenkert@61: * @return The XML node. rrenkert@61: */ rrenkert@61: public Element read() rrenkert@74: throws Exception { rrenkert@61: logger.debug("read()"); rrenkert@80: Element symbolElement = util.addSymbol(parent); rrenkert@61: rrenkert@61: symbolElement.setAttribute("name", symbol.getNameString()); rrenkert@97: symbolElement.setAttribute("type", "line"); rrenkert@97: symbolElement.setAttribute("style", "simple"); rrenkert@61: if(symbol.getColor() instanceof IRgbColor) { rrenkert@61: IRgbColor color = (IRgbColor)symbol.getColor(); rrenkert@61: Color c = new Color ( rrenkert@61: color.getRed(), rrenkert@61: color.getGreen(), rrenkert@61: color.getBlue()); rrenkert@61: symbolElement.setAttribute("color", String.valueOf(c.getRGB())); rrenkert@61: } rrenkert@61: else { rrenkert@61: RgbColor col = new RgbColor(); rrenkert@61: col.setRGB(symbol.getColor().getRGB()); rrenkert@61: Color c = new Color ( rrenkert@61: col.getRed(), rrenkert@61: col.getGreen(), rrenkert@61: col.getBlue()); rrenkert@61: symbolElement.setAttribute("color", String.valueOf(c.getRGB())); rrenkert@61: } rrenkert@61: rrenkert@61: symbolElement.setAttribute("width", String.valueOf(symbol.getWidth())); rrenkert@61: rrenkert@61: int style = symbol.getStyle(); rrenkert@61: switch(style) { rrenkert@61: case esriSimpleLineStyle.esriSLSSolid: rrenkert@62: symbolElement.setAttribute("linestyle", "solid"); break; rrenkert@61: case esriSimpleLineStyle.esriSLSDash: rrenkert@62: symbolElement.setAttribute("linestyle", "dash"); break; rrenkert@61: case esriSimpleLineStyle.esriSLSDot: rrenkert@62: symbolElement.setAttribute("linestyle", "dot"); break; rrenkert@61: case esriSimpleLineStyle.esriSLSDashDot: rrenkert@62: symbolElement.setAttribute("linestyle", "dashdot"); break; rrenkert@61: case esriSimpleLineStyle.esriSLSDashDotDot: rrenkert@62: symbolElement.setAttribute("linestyle", "dashdotdot"); break; rrenkert@62: default: symbolElement.setAttribute ("linestyle", "none"); rrenkert@61: } rrenkert@61: return symbolElement; rrenkert@61: } rrenkert@61: } rrenkert@61: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :