diff flys-client/src/main/java/de/intevation/flys/client/client/ui/map/WMSLayersTree.java @ 1418:750a53950e9f

The WMSLayerTree displays WMS layers that support a given SRS only. flys-client/trunk@3326 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 28 Nov 2011 16:27:36 +0000
parents 659a488243da
children 0de61fc9d281
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/WMSLayersTree.java	Mon Nov 28 15:55:26 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/WMSLayersTree.java	Mon Nov 28 16:27:36 2011 +0000
@@ -3,6 +3,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import com.google.gwt.core.client.GWT;
+
 import com.smartgwt.client.types.TreeModelType;
 import com.smartgwt.client.widgets.tree.Tree;
 import com.smartgwt.client.widgets.tree.TreeGrid;
@@ -37,6 +39,8 @@
 
 
     protected Capabilities capabilites;
+    protected String       srs;
+
 
     public WMSLayersTree(Capabilities capabilites) {
         super();
@@ -46,6 +50,16 @@
     }
 
 
+    public WMSLayersTree(Capabilities capabilites, String srs) {
+        super();
+
+        this.capabilites = capabilites;
+        this.srs         = srs;
+
+        initTree();
+    }
+
+
     protected void initTree() {
         setLoadDataOnDemand(false);
         setWidth100();
@@ -80,20 +94,29 @@
 
         for (WMSLayer layer: layers) {
             WMSLayerNode tn = buildTreeNode(layer);
-            TreeNode[] tns  = buildTree(layer.getLayers());
 
-            if (tns != null && tns.length > 0) {
-                tn.setAttribute("children-nodes", tns);
+            if (tn != null) {
+                TreeNode[] tns  = buildTree(layer.getLayers());
+
+                if (tns != null && tns.length > 0) {
+                    tn.setAttribute("children-nodes", tns);
+                }
+
+                layerNodes.add(tn);
             }
-
-            layerNodes.add(tn);
         }
 
         return (TreeNode[]) layerNodes.toArray(new TreeNode[layerNodes.size()]);
     }
 
 
-    protected static WMSLayerNode buildTreeNode(WMSLayer wms) {
-        return new WMSLayerNode(wms);
+    protected WMSLayerNode buildTreeNode(WMSLayer wms) {
+        if (srs != null && srs.length() > 0) {
+            return wms.supportsSrs(srs) ? new WMSLayerNode(wms) : null;
+        }
+        else {
+            GWT.log("No target SRS specified.");
+            return new WMSLayerNode(wms);
+        }
     }
 }

http://dive4elements.wald.intevation.org