rrenkert@64: package de.intevation.mxd.reader; rrenkert@64: rrenkert@64: import java.io.IOException; rrenkert@64: rrenkert@64: import java.awt.Color; rrenkert@64: import java.awt.Image; rrenkert@64: rrenkert@64: import org.apache.log4j.Logger; rrenkert@64: rrenkert@64: import com.esri.arcgis.display.ISymbol; rrenkert@64: import com.esri.arcgis.display.PictureLineSymbol; rrenkert@64: import com.esri.arcgis.support.ms.stdole.Picture; rrenkert@64: import com.esri.arcgis.display.esriSimpleLineStyle; rrenkert@64: import com.esri.arcgis.display.IRgbColor; rrenkert@64: import com.esri.arcgis.display.RgbColor; rrenkert@64: rrenkert@64: import org.w3c.dom.Element; rrenkert@64: import de.intevation.mxd.utils.MapToXMLUtils; rrenkert@64: rrenkert@64: /** rrenkert@64: * Reads picture line symbol information. rrenkert@64: * rrenkert@64: * @author Raimund Renkert rrenkert@64: */ rrenkert@64: public class PictureLineSymbolReader implements ISymbolReader{ rrenkert@64: rrenkert@64: /** rrenkert@64: * The logger. rrenkert@64: */ rrenkert@64: private static final Logger logger = rrenkert@64: Logger.getLogger(SimpleLineSymbolReader.class); rrenkert@64: rrenkert@64: /** rrenkert@64: * Private member. rrenkert@64: */ rrenkert@64: private Element renderer; rrenkert@64: private PictureLineSymbol symbol; rrenkert@64: private MapToXMLUtils util; rrenkert@64: rrenkert@64: rrenkert@64: public PictureLineSymbolReader(ISymbol symbol) rrenkert@64: throws Exception { rrenkert@64: logger.debug("contructor()"); rrenkert@64: if(symbol instanceof PictureLineSymbol) { rrenkert@64: this.symbol = (PictureLineSymbol)symbol; rrenkert@64: } rrenkert@64: else { rrenkert@64: throw new Exception("Not a PictureLineSymbol!"); rrenkert@64: } rrenkert@64: } rrenkert@64: rrenkert@64: /** rrenkert@64: * Setter for the parent XML element. rrenkert@64: * rrenkert@64: * @param parent The XML parent node. rrenkert@64: */ rrenkert@64: public void setParent(Element parent) { rrenkert@64: this.renderer = parent; rrenkert@64: } rrenkert@64: rrenkert@64: /** rrenkert@64: * Setter for XML document helper. rrenkert@64: * rrenkert@64: * @param util The helper class for storing map information. rrenkert@64: */ rrenkert@64: public void setUtil(MapToXMLUtils util) { rrenkert@64: this.util = util; rrenkert@64: } rrenkert@64: rrenkert@64: /** rrenkert@64: * Reads the symbol attributes. rrenkert@64: * rrenkert@64: * @return The XML node. rrenkert@64: */ rrenkert@64: public Element read() rrenkert@64: throws IOException { rrenkert@64: logger.debug("read()"); rrenkert@64: Element symbolElement; rrenkert@64: try { rrenkert@64: symbolElement = util.addSymbol(renderer); rrenkert@64: } rrenkert@64: catch(Exception e) { rrenkert@64: e.printStackTrace(); rrenkert@64: return null; rrenkert@64: } rrenkert@64: rrenkert@64: symbolElement.setAttribute("name", symbol.getNameString()); rrenkert@64: symbolElement.setAttribute("style", "picture"); rrenkert@64: if(symbol.getColor() instanceof IRgbColor) { rrenkert@64: IRgbColor color = (IRgbColor)symbol.getColor(); rrenkert@64: Color c = new Color ( rrenkert@64: color.getRed(), rrenkert@64: color.getGreen(), rrenkert@64: color.getBlue()); rrenkert@64: symbolElement.setAttribute("color", String.valueOf(c.getRGB())); rrenkert@64: } rrenkert@64: else { rrenkert@64: RgbColor col = new RgbColor(); rrenkert@64: col.setRGB(symbol.getColor().getRGB()); rrenkert@64: Color c = new Color ( rrenkert@64: col.getRed(), rrenkert@64: col.getGreen(), rrenkert@64: col.getBlue()); rrenkert@64: symbolElement.setAttribute("color", String.valueOf(c.getRGB())); rrenkert@64: } rrenkert@64: symbolElement.setAttribute( rrenkert@64: "offset", rrenkert@64: String.valueOf(symbol.getOffset())); rrenkert@64: symbolElement.setAttribute( rrenkert@64: "x_scale", rrenkert@64: String.valueOf(symbol.getXScale())); rrenkert@64: symbolElement.setAttribute( rrenkert@64: "y_scale", rrenkert@64: String.valueOf(symbol.getYScale())); rrenkert@64: rrenkert@64: symbolElement.setAttribute("width", String.valueOf(symbol.getWidth())); rrenkert@64: rrenkert@64: Picture pic = symbol.getPicture(); rrenkert@64: Image im = pic.toImage(); rrenkert@64: //TODO Save the image. rrenkert@64: rrenkert@64: return symbolElement; rrenkert@64: } rrenkert@64: } rrenkert@64: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :