diff src/java/de/intevation/mxd/writer/FillStyleWriter.java @ 123:3c792458a716

Write PATTERN for polygon outlines and hatch symbols.
author Raimund Renkert <rrenkert@intevation.de>
date Fri, 17 Jun 2011 13:36:33 +0200
parents 11d63bf00326
children cd18c61cbcf6
line wrap: on
line diff
--- a/src/java/de/intevation/mxd/writer/FillStyleWriter.java	Fri Jun 17 12:30:21 2011 +0200
+++ b/src/java/de/intevation/mxd/writer/FillStyleWriter.java	Fri Jun 17 13:36:33 2011 +0200
@@ -46,6 +46,7 @@
      * Write the content.
      */
     public boolean write(Element symbolElement) {
+        logger.debug("write()Element");
         symbolSetObj symbolSet = map.getSymbolset();
 
         if(symbolElement.hasChildNodes()) {
@@ -135,6 +136,32 @@
         outline.setOutlinecolor(outlinecolor);
         outline.setOutlinewidth(Double.parseDouble(
             symbolElement.getAttribute("width")));
+        if(symbolElement.hasAttribute("linestyle")) {
+            String ls = symbolElement.getAttribute("linestyle");
+            double[] vals;
+            if(ls.equals("dash")) {
+                outline.setPatternlength(2);
+                vals = new double[] {4.0, 4.0, 0, 0, 0, 0, 0, 0, 0, 0};
+                outline.setPattern(vals);
+            }
+            else if(ls.equals("dot")) {
+                outline.setPatternlength(2);
+                vals = new double[] {1.0, 3.0, 0, 0, 0, 0, 0, 0, 0, 0};
+                outline.setPattern(vals);
+            }
+            else if(ls.equals("dashdot")) {
+                outline.setPatternlength(4);
+                vals = new double[] {4.0, 3.0, 1.0, 3.0, 0, 0, 0, 0, 0, 0, 0};
+                outline.setPattern(vals);
+            }
+            else if (ls.equals("dashdotdot")) {
+                outline.setPatternlength(6);
+                vals = new double[] {5.0, 3.0, 1.0, 3.0, 1.0, 4.0, 0, 0, 0, 0};
+                outline.setPattern(vals);
+            }
+        }
+
+
     }
 
     /**
@@ -180,31 +207,6 @@
             style.setOutlinewidth(Double.parseDouble(
                 symbolElement.getAttribute("outline_size")));
         }
-        if(symbolElement.hasAttribute("linestyle")) {
-            String ls = symbolElement.getAttribute("linestyle");
-            double[] vals;
-            if(ls.equals("dash")) {
-                style.setPatternlength(2);
-                vals = new double[] {2.0, 2.0};
-                style.setPattern(vals);
-            }
-            else if(ls.equals("dot")) {
-                style.setPatternlength(2);
-                vals = new double[] {1.0, 2.0};
-                style.setPattern(vals);
-            }
-            else if(ls.equals("dashdot")) {
-                style.setPatternlength(4);
-                vals = new double[] {2.0, 2.0, 1.0, 2.0};
-                style.setPattern(vals);
-            }
-            else if (ls.equals("dashdotdot")) {
-                style.setPatternlength(6);
-                vals = new double[] {2.0, 2.0, 1.0, 2.0, 1.0, 2.0};
-                style.setPattern(vals);
-            }
-        }
-
         if(type.equals("marker")) {
             style.setSymbolByName(map, name);
             SymbolWriter sw = new SymbolWriter(this.map, this.cl);
@@ -215,6 +217,30 @@
             SymbolWriter sw = new SymbolWriter(this.map, this.cl);
             symbolElement.setAttribute("name", "hatch");
             sw.write(symbolElement);
+            if(symbolElement.hasAttribute("linestyle")) {
+                String ls = symbolElement.getAttribute("linestyle");
+                double[] vals;
+                if(ls.equals("dash")) {
+                    style.setPatternlength(2);
+                    vals = new double[] {4.0, 4.0, 0, 0, 0, 0, 0, 0, 0, 0};
+                    style.setPattern(vals);
+                }
+                else if(ls.equals("dot")) {
+                    style.setPatternlength(2);
+                    vals = new double[] {1.0, 3.0, 0, 0, 0, 0, 0, 0, 0, 0};
+                    style.setPattern(vals);
+                }
+                else if(ls.equals("dashdot")) {
+                    style.setPatternlength(4);
+                    vals = new double[] {4.0, 3.0, 1.0, 3.0, 0, 0, 0, 0, 0, 0, 0};
+                    style.setPattern(vals);
+                }
+                else if (ls.equals("dashdotdot")) {
+                    style.setPatternlength(6);
+                    vals = new double[] {5.0, 3.0, 1.0, 3.0, 1.0, 4.0, 0, 0, 0, 0};
+                    style.setPattern(vals);
+                }
+            }
         }
     }
 
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)