rrenkert@87: package de.intevation.mxd.writer; rrenkert@87: rrenkert@87: import java.awt.Color; rrenkert@87: rrenkert@87: import org.apache.log4j.Logger; rrenkert@87: rrenkert@87: import org.w3c.dom.Element; rrenkert@87: rrenkert@87: import edu.umn.gis.mapscript.mapObj; rrenkert@87: import edu.umn.gis.mapscript.classObj; rrenkert@87: import edu.umn.gis.mapscript.styleObj; rrenkert@87: import edu.umn.gis.mapscript.colorObj; rrenkert@87: import edu.umn.gis.mapscript.symbolSetObj; rrenkert@87: rrenkert@87: rrenkert@87: /** rrenkert@87: * The interface to the mapfile writer. rrenkert@87: * rrenkert@87: * @author Raimund Renkert rrenkert@87: */ rrenkert@87: public class MarkerStyleWriter { rrenkert@87: rrenkert@87: /** rrenkert@87: * The Logger. rrenkert@87: */ rrenkert@87: private static final Logger logger = Logger.getLogger(MarkerStyleWriter.class); rrenkert@87: rrenkert@87: private mapObj map; rrenkert@87: private classObj cl; rrenkert@87: private styleObj style; rrenkert@87: rrenkert@87: public MarkerStyleWriter (mapObj map, classObj cl) { rrenkert@87: this.map = map; rrenkert@87: this.cl = cl; rrenkert@87: this.style = new styleObj(cl); rrenkert@87: } rrenkert@87: rrenkert@87: /** rrenkert@87: * Write the content. rrenkert@87: */ rrenkert@87: public boolean write(Element symbolElement) rrenkert@87: throws Exception { rrenkert@87: logger.debug("write(Element)"); rrenkert@87: symbolSetObj symbolSet = map.getSymbolset(); rrenkert@87: rrenkert@87: if (symbolElement.hasAttribute("angle")) { rrenkert@87: style.setAngle( rrenkert@87: Double.parseDouble(symbolElement.getAttribute("angle"))); rrenkert@87: } rrenkert@87: if(symbolElement.hasAttribute("color")) { rrenkert@87: String c = symbolElement.getAttribute("color"); rrenkert@87: Color col = Color.decode(c); rrenkert@87: colorObj color = new colorObj( rrenkert@87: col.getRed(), rrenkert@87: col.getGreen(), rrenkert@87: col.getBlue(), rrenkert@87: -4); rrenkert@87: style.setColor(color); rrenkert@87: } rrenkert@87: if (symbolElement.hasAttribute ("size")) { rrenkert@87: style.setSize(Double.parseDouble( rrenkert@87: symbolElement.getAttribute("size"))); rrenkert@87: } rrenkert@87: if(symbolElement.hasAttribute("outline_color")) { rrenkert@87: Color oCol = Color.decode( rrenkert@87: symbolElement.getAttribute("outline_color")); rrenkert@87: colorObj outlineColor = new colorObj( rrenkert@87: oCol.getRed(), rrenkert@87: oCol.getGreen(), rrenkert@87: oCol.getBlue(), rrenkert@87: -4); rrenkert@87: style.setOutlinecolor(outlineColor); rrenkert@87: style.setOutlinewidth(Double.parseDouble( rrenkert@87: symbolElement.getAttribute("outline_size"))); rrenkert@87: } rrenkert@87: rrenkert@87: String name = symbolElement.getAttribute("name"); rrenkert@87: style.setSymbolByName(map, name); rrenkert@87: rrenkert@87: String symType = symbolElement.getAttribute("style"); rrenkert@87: if(symType.equals("point") || rrenkert@87: symType.equals("arrow") || rrenkert@87: symType.equals("char")) { rrenkert@87: SymbolWriter sw = new SymbolWriter(this.map, this.cl); rrenkert@87: sw.write(symbolElement); rrenkert@87: } rrenkert@87: else { rrenkert@87: return false; rrenkert@87: } rrenkert@87: return true; rrenkert@87: } rrenkert@87: } rrenkert@87: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :