diff src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java @ 31:40c0b4e5f91a

Added utility class to store map attributes.
author Raimund Renkert <rrenkert@intevation.de>
date Mon, 11 Apr 2011 16:04:03 +0200
parents 3e24fffdf2bb
children 8381aa59078e
line wrap: on
line diff
--- a/src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java	Fri Apr 08 17:58:37 2011 +0200
+++ b/src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java	Mon Apr 11 16:04:03 2011 +0200
@@ -10,6 +10,8 @@
 import com.esri.arcgis.display.IRgbColor;
 import com.esri.arcgis.display.RgbColor;
 
+import org.w3c.dom.Element;
+
 /**
  * Reads simple marker symbol information.
  *
@@ -17,12 +19,20 @@
  */
 public class SimpleMarkerSymbolReader implements ISymbolReader{
 
-    //Member
-    private static final Logger logger = Logger.getLogger(SimpleMarkerSymbolReader.class);
+    /**
+     * The logger.
+     */
+    private static final Logger logger =
+        Logger.getLogger(SimpleMarkerSymbolReader.class);
 
+    /**
+     * Private member.
+     */
+    private Element renderer;
     private SimpleMarkerSymbol symbol;
+    private MapToXMLUtils util;
 
-    //Constructor
+
     public SimpleMarkerSymbolReader(ISymbol symbol) throws Exception{
         logger.debug("contructor()");
         if(symbol instanceof SimpleMarkerSymbol)
@@ -31,50 +41,79 @@
             throw new Exception("Not a SimpleMarkerSymbol!");
     }
 
+    /**
+     * Setter for the parent XML element.
+     *
+     * @param parent The XML parent node.
+     */
+    public void setParent(Element parent) {
+        this.renderer = parent;
+    }
 
-    //Methods
-    public boolean read() throws IOException{
+    /**
+     * Setter for XML document helper.
+     *
+     * @param util The helper class for storing map information.
+     */
+    public void setUtil(MapToXMLUtils util) {
+        this.util = util;
+    }
+
+    /**
+     * Reads the symbol attributes.
+     *
+     * @return The XML node.
+     */
+    public Element read()
+    throws IOException {
         logger.debug("read()");
-        System.out.println("--------------------");
-        System.out.println("Symbol information:");
-        System.out.println("Name\t\t = " + symbol.getNameString());
+        Element symbolElement;
+        try {
+            symbolElement = util.addSymbol(renderer);
+        }
+        catch(Exception e) {
+            e.printStackTrace();
+            return null;
+        }
 
+        symbolElement.setAttribute("name", symbol.getNameString());
         if(symbol.getStyle() == esriSimpleMarkerStyle.esriSMSCircle)
-            System.out.println("Style\t\t = Point");
-        if(symbol.getColor() instanceof IRgbColor){
+            symbolElement.setAttribute("style", "point");
+
+        if(symbol.getColor() instanceof IRgbColor) {
             IRgbColor color = (IRgbColor)symbol.getColor();
-            System.out.println("Color\t\t = (" + color.getRed() + 
-                               "," + color.getGreen() +
-                               "," + color.getBlue() + ")");
-            System.out.println("Transparency\t = " + color.getTransparency());
+            symbolElement.setAttribute("color",  "(" + color.getRed() +
+                "," + color.getGreen() +
+                "," + color.getBlue() + ")");
+            symbolElement.setAttribute("transparency",
+                String.valueOf(color.getTransparency()));
         }
-        else{
+        else {
+            System.out.println("Color type unknown! " +
+                symbol.getColor().getClass().toString());
+        }
+
+        symbolElement.setAttribute("size", String.valueOf(symbol.getSize()));
+        symbolElement.setAttribute("outline_size",
+            String.valueOf(symbol.getOutlineSize()));
+        if(symbol.getOutlineColor() instanceof IRgbColor) {
+            IRgbColor color = (IRgbColor)symbol.getOutlineColor();
+            symbolElement.setAttribute("outline_color",  "(" + color.getRed() +
+                "," + color.getGreen() +
+                "," + color.getBlue() + ")");
+            symbolElement.setAttribute("outline_transparency",
+                String.valueOf(color.getTransparency()));
+        }
+        else {
             System.out.println("Color type unknown! " +
                                symbol.getColor().getClass().toString());
         }
-        if(symbol.getOutlineColor() instanceof RgbColor){
-            RgbColor color = (RgbColor)symbol.getOutlineColor();
-            System.out.println("Outlinecolor\t = (" + color.getRed() +
-                               "," + color.getGreen() +
-                               "," + color.getBlue() + ")");
-            System.out.println("Transparency\t = " + color.getTransparency());
-        }
-        else{
-            System.out.println("Color type unknown! " +
-                               symbol.getOutlineColor().getClass().toString());
-        }
 
-        System.out.println("Size\t\t = " + symbol.getSize());
-        System.out.println("OutlineSize\t\t = " + symbol.getOutlineSize());
-        System.out.println("Angle\t\t = " + symbol.getAngle());
-        System.out.println("Offset\t\t = " + symbol.getXOffset() +
-                           "," + symbol.getYOffset());
-        System.out.println("");
-        return true;
-    }
+        symbolElement.setAttribute("angle", String.valueOf(symbol.getAngle()));
+        symbolElement.setAttribute("offset",
+            symbol.getXOffset() + "," + symbol.getYOffset());
 
-    public void getSymbol() throws IOException{
-        logger.debug("getSymbol() -> not implemented jet.");
+        return symbolElement;
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)