changeset 2672:5afccab9aac1

Modified floodmap specific datacage configuration and improved WMS hws layer. flys-artifacts/trunk@4361 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 08 May 2012 13:55:59 +0000
parents 055315495f8d
children 0143b44631cc
files flys-artifacts/ChangeLog flys-artifacts/doc/conf/meta-data.xml flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSCatchmentArtifact.java flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSHwsArtifact.java
diffstat 5 files changed, 47 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/flys-artifacts/ChangeLog	Tue May 08 12:14:55 2012 +0000
+++ b/flys-artifacts/ChangeLog	Tue May 08 13:55:59 2012 +0000
@@ -1,3 +1,14 @@
+2012-05-08  Ingo Weinzierl <ingo@intevation.de>
+
+	* doc/conf/meta-data.xml: Moved the hws layers out to an own node.
+
+	* src/main/java/de/intevation/flys/artifacts/WMSCatchmentArtifact.java,
+	  src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java: Moved the
+	  'name' property from WMSCatchmentArtifact to WMSDBArtifact.
+
+	* src/main/java/de/intevation/flys/artifacts/WMSHwsArtifact.java: Create
+	  more specific filter and extent that takes the 'name' into account.
+
 2012-05-08  Ingo Weinzierl <ingo@intevation.de>
 
 	* doc/conf/meta-data.xml: Moved the catchments out to an own node.
--- a/flys-artifacts/doc/conf/meta-data.xml	Tue May 08 12:14:55 2012 +0000
+++ b/flys-artifacts/doc/conf/meta-data.xml	Tue May 08 13:55:59 2012 +0000
@@ -608,14 +608,15 @@
               <dc:macro name="flood-map-hws">
                 <dc:context>
                   <dc:statement>
-                    SELECT count(*) as km_exists
-                    FROM hws WHERE river_id = ${river_id}
+                    SELECT count(*) as km_exists, name as name
+                    FROM hws WHERE river_id = ${river_id} GROUP BY name
                   </dc:statement>
                    <dc:elements>
                     <dc:if test="$km_exists>0">
                       <hws>
                         <dc:attribute name="factory" value="wmshwsfactory"/>
-                        <dc:attribute name="ids" value="${river_id}"/>
+                        <dc:attribute name="ids" value="${river_id};${name}"/>
+                        <dc:attribute name="name" value="${name}"/>
                       </hws>
                     </dc:if>
                   </dc:elements>
@@ -796,7 +797,6 @@
                       </riveraxis>
                     <dc:call-macro name="flood-map-km"/>
                     <dc:call-macro name="flood-map-qps"/>
-                    <dc:call-macro name="flood-map-hws"/>
                     <dc:call-macro name="flood-map-floodplain"/>
                     <dc:call-macro name="flood-map-lines"/>
                     <dc:call-macro name="flood-map-buildings"/>
@@ -806,6 +806,9 @@
                   <catchments>
                     <dc:call-macro name="flood-map-catchments"/>
                   </catchments>
+                  <hws>
+                    <dc:call-macro name="flood-map-hws"/>
+                  </hws>
                   <rastermap>
                       <background>
                           <dc:attribute name="factory" value="wmsbackground"/>
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSCatchmentArtifact.java	Tue May 08 12:14:55 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSCatchmentArtifact.java	Tue May 08 13:55:59 2012 +0000
@@ -78,12 +78,10 @@
             Logger.getLogger(CatchmentState.class);
 
         protected int riverId;
-        protected String name;
 
         public CatchmentState(WMSDBArtifact artifact) {
             super(artifact);
             riverId = 0;
-            name    = null;
         }
 
         public int getRiverId() {
@@ -102,17 +100,6 @@
             return riverId;
         }
 
-        public String getName() {
-            if (name == null) {
-                String ids = artifact.getDataAsString("ids");
-
-                String parts[] = ids.split(";");
-                name = parts[1];
-            }
-
-            return name;
-        }
-
         @Override
         protected String getFacetType() {
             return FLOODMAP_CATCHMENT;
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java	Tue May 08 12:14:55 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java	Tue May 08 13:55:59 2012 +0000
@@ -105,10 +105,14 @@
 
         protected FLYSArtifact artifact;
 
+        protected String name;
+
+
         public WMSDBState() {}
 
         public WMSDBState(FLYSArtifact artifact) {
             this.artifact = artifact;
+            this.name     = null;
         }
 
         @Override
@@ -223,6 +227,24 @@
             return null;
         }
 
+        /**
+         * Returns the name of the WMS layer. This method extracts the name
+         * from 'ids' data string. It is expected, that the 'ids' string is
+         * seperated by ';' and that the name is placed at index 1.
+         *
+         * @return the name of the WMS layer.
+         */
+        public String getName() {
+            if (name == null) {
+                String ids = artifact.getDataAsString("ids");
+
+                String parts[] = ids.split(";");
+                name = parts[1];
+            }
+
+            return name;
+        }
+
         protected abstract String getFacetType();
 
         protected abstract String getTitle(CallMeta meta);
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSHwsArtifact.java	Tue May 08 12:14:55 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSHwsArtifact.java	Tue May 08 13:55:59 2012 +0000
@@ -86,13 +86,14 @@
 
         public int getRiverId() {
             if (riverId == 0) {
-                String ids = artifact.getDataAsString("ids");
+                String   ids   = artifact.getDataAsString("ids");
+                String[] parts = ids.split(";");
 
                 try {
-                    riverId = Integer.valueOf(ids);
+                    riverId = Integer.valueOf(parts[0]);
                 }
                 catch (NumberFormatException nfe) {
-                    logger.error("Cannot parse river id from '" + ids + "'");
+                    logger.error("Cannot parse river id from '" + parts[0] + "'");
                 }
             }
 
@@ -125,7 +126,7 @@
 
         @Override
         protected Envelope getExtent() {
-            List<Hws> hws = Hws.getHws(getRiverId());
+            List<Hws> hws = Hws.getHws(getRiverId(), getName());
 
             Envelope max = null;
 
@@ -145,7 +146,8 @@
 
         @Override
         protected String getFilter() {
-            return "river_id=" + String.valueOf(getRiverId());
+            return "river_id=" + String.valueOf(getRiverId())
+                + " AND name='" + getName() + "'";
         }
 
         @Override

http://dive4elements.wald.intevation.org