diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/MapserverStyle.java @ 1876:dd467951335c

Added support for labels in Mapserver layers and options to modify its style. flys-artifacts/trunk@3234 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 11 Nov 2011 09:43:36 +0000
parents 5364b86a0880
children 1a6018d5f0b7
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/MapserverStyle.java	Fri Nov 11 07:59:42 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/MapserverStyle.java	Fri Nov 11 09:43:36 2011 +0000
@@ -7,15 +7,45 @@
 public class MapserverStyle {
 
     public static class Clazz {
-        protected String name;
+        protected List<ClazzItem> items;
+        protected String    name;
+
+        public Clazz(String name) {
+            this.name  = name;
+            this.items = new ArrayList<ClazzItem>();
+        }
+
+        public void addItem(ClazzItem item) {
+            if (item != null) {
+                items.add(item);
+            }
+        }
+
+        @Override
+        public String toString() {
+            StringBuilder sb = new StringBuilder();
+            sb.append("CLASS\n");
+            sb.append("NAME \"" + name + "\"\n");
+
+            for (ClazzItem item: items) {
+                item.toString(sb);
+            }
+
+            sb.append("END");
+
+            return sb.toString();
+        }
+    }
+
+    public interface ClazzItem {
+        void toString(StringBuilder sb);
+    }
+
+    public static class Style implements ClazzItem {
         protected String outlinecolor;
         protected String symbol;
         protected int    size;
 
-        public Clazz(String name) {
-            this.name = name;
-        }
-
         public void setOutlineColor(String outlinecolor) {
             this.outlinecolor = outlinecolor;
         }
@@ -30,10 +60,7 @@
             }
         }
 
-        public String toString() {
-            StringBuilder sb = new StringBuilder();
-            sb.append("CLASS\n");
-            sb.append("NAME \"" + name + "\"\n");
+        public void toString(StringBuilder sb) {
             sb.append("STYLE\n");
             sb.append("SIZE " + String.valueOf(size) + "\n");
             sb.append("OUTLINECOLOR " + outlinecolor + "\n");
@@ -43,11 +70,34 @@
             }
 
             sb.append("END\n");
-            sb.append("END\n");
+        }
+    } // end of Style
 
-            return sb.toString();
+    public static class Label implements ClazzItem {
+        protected String color;
+        protected int    size;
+
+        public void setColor(String color) {
+            this.color = color;
         }
-    } // end of Clazz
+
+        public void setSize(int size) {
+            this.size = size;
+        }
+
+        @Override
+        public void toString(StringBuilder sb) {
+            sb.append("LABEL\n");
+            sb.append("ANGLE auto\n");
+            sb.append("SIZE " + String.valueOf(size) + "\n");
+            sb.append("COLOR " + color + "\n");
+            sb.append("TYPE truetype\n");
+            sb.append("FONT DefaultFont\n");
+            sb.append("POSITION ur\n");
+            sb.append("OFFSET 2 2\n");
+            sb.append("END\n");
+        }
+    }
 
 
     protected List<Clazz> classes;

http://dive4elements.wald.intevation.org