Mercurial > dive4elements > river
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); + } } }