rrenkert@58: package de.intevation.mxd.reader; rrenkert@58: rrenkert@58: import org.apache.log4j.Logger; rrenkert@58: rrenkert@58: import com.esri.arcgis.display.ISymbol; rrenkert@63: import com.esri.arcgis.display.IMarkerSymbol; rrenkert@58: import com.esri.arcgis.display.PictureMarkerSymbol; rrenkert@58: import com.esri.arcgis.carto.PictureElement; rrenkert@58: rrenkert@58: import org.w3c.dom.Element; rrenkert@115: import java.io.IOException; rrenkert@58: rrenkert@58: /** rrenkert@58: * Reads picture marker symbol information. rrenkert@58: * rrenkert@58: * @author Raimund Renkert rrenkert@58: */ rrenkert@80: public class PictureMarkerSymbolReader rrenkert@80: extends AbstractSymbolReader { rrenkert@58: rrenkert@58: /** rrenkert@58: * The logger. rrenkert@58: */ rrenkert@58: private static final Logger logger = rrenkert@58: Logger.getLogger(PictureMarkerSymbolReader.class); rrenkert@58: rrenkert@58: /** rrenkert@58: * Private member. rrenkert@58: */ rrenkert@58: private PictureMarkerSymbol symbol; rrenkert@58: rrenkert@58: public PictureMarkerSymbolReader(ISymbol symbol) rrenkert@58: throws Exception { rrenkert@58: logger.debug("contructor()"); rrenkert@58: if(symbol instanceof PictureMarkerSymbol) { rrenkert@58: this.symbol = (PictureMarkerSymbol)symbol; rrenkert@58: } rrenkert@58: else { rrenkert@58: throw new Exception("Not a PictureMarkerSymbol!"); rrenkert@58: } rrenkert@58: } rrenkert@58: rrenkert@63: public PictureMarkerSymbolReader(IMarkerSymbol symbol) rrenkert@63: throws Exception { rrenkert@63: logger.debug("contructor()"); rrenkert@63: if(symbol instanceof PictureMarkerSymbol) { rrenkert@63: this.symbol = (PictureMarkerSymbol)symbol; rrenkert@63: } rrenkert@63: else { rrenkert@63: throw new Exception("Not a PictureMarkerSymbol!"); rrenkert@63: } rrenkert@63: } rrenkert@63: rrenkert@58: /** rrenkert@58: * Reads the symbol attributes. rrenkert@58: * rrenkert@58: * @return The XML node. rrenkert@58: */ rrenkert@115: public Element read() { rrenkert@84: //TODO Read the picture from mxd and write it as base64 string to the rrenkert@84: // XML Element. rrenkert@58: logger.debug("read()"); rrenkert@80: Element symbolElement = util.addSymbol(parent); rrenkert@58: rrenkert@115: try { rrenkert@115: symbolElement.setAttribute( rrenkert@115: "angle", rrenkert@115: String.valueOf(symbol.getAngle())); rrenkert@115: } rrenkert@115: catch(IOException ioe) { rrenkert@135: logger.warn("Could not read angle."); rrenkert@115: } rrenkert@115: rrenkert@115: try { rrenkert@115: symbolElement.setAttribute( rrenkert@115: "size", rrenkert@115: String.valueOf(symbol.getSize())); rrenkert@115: } rrenkert@115: catch (IOException ioe) { rrenkert@115: logger.warn("Could not read size. Setting size to 1."); rrenkert@135: symbolElement.setAttribute("size", "1"); rrenkert@115: } rrenkert@115: rrenkert@115: try { rrenkert@115: symbolElement.setAttribute( rrenkert@115: "x_offset", rrenkert@115: String.valueOf(symbol.getXOffset())); rrenkert@115: } rrenkert@115: catch(IOException ioe) { rrenkert@135: logger.warn("Could not read x-offset."); rrenkert@115: } rrenkert@115: rrenkert@115: try { rrenkert@115: symbolElement.setAttribute( rrenkert@115: "y_offset", rrenkert@115: String.valueOf(symbol.getYOffset())); rrenkert@115: } rrenkert@115: catch(IOException ioe) { rrenkert@135: logger.warn("Could not read y-offset."); rrenkert@115: } rrenkert@115: rrenkert@115: try { rrenkert@115: symbolElement.setAttribute( rrenkert@115: "name", rrenkert@115: symbol.getNameString()); rrenkert@115: } rrenkert@115: catch(IOException ioe) { rrenkert@115: logger.warn("Could not read name. Setting name to \"default\""); rrenkert@115: symbolElement.setAttribute("name", "default"); rrenkert@115: } rrenkert@115: rrenkert@115: try { rrenkert@115: PictureElement pElem = new PictureElement(); rrenkert@115: pElem.importPicture(symbol.getPicture()); rrenkert@115: } rrenkert@115: catch(IOException ioe) { rrenkert@135: logger.warn("Could not read picture."); rrenkert@115: } rrenkert@58: symbolElement.setAttribute("style", "picture"); rrenkert@89: symbolElement.setAttribute("type", "marker"); rrenkert@58: return symbolElement; rrenkert@58: } rrenkert@58: } rrenkert@58: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :