Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/map/WMSLayersTree.java @ 1412:659a488243da
Added code to trigger loading selected WMS layers from ExternalWMSWindow. Note: no code for loading/adding layers to the current map existing yet.
flys-client/trunk@3299 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 22 Nov 2011 13:04:46 +0000 |
parents | 63be3137abac |
children | 750a53950e9f |
line wrap: on
line source
package de.intevation.flys.client.client.ui.map; import java.util.ArrayList; import java.util.List; import com.smartgwt.client.types.TreeModelType; import com.smartgwt.client.widgets.tree.Tree; import com.smartgwt.client.widgets.tree.TreeGrid; import com.smartgwt.client.widgets.tree.TreeNode; import de.intevation.flys.client.shared.model.Capabilities; import de.intevation.flys.client.shared.model.WMSLayer; public class WMSLayersTree extends TreeGrid { /** * An internal TreeNode that stores besides some string attribute a WMSLayer * object. */ public static class WMSLayerNode extends TreeNode { protected WMSLayer wms; public WMSLayerNode(WMSLayer wms) { super(); this.wms = wms; setAttribute("name", wms.getName()); setAttribute("title", wms.getTitle()); } public WMSLayer getWMSLayer() { return wms; } } // end of class WMSLayerNode protected Capabilities capabilites; public WMSLayersTree(Capabilities capabilites) { super(); this.capabilites = capabilites; initTree(); } protected void initTree() { setLoadDataOnDemand(false); setWidth100(); setHeight100(); setShowRoot(false); setShowConnectors(true); setNodeIcon("[SKIN]/images/blank.gif"); Tree tree = new Tree(); tree.setChildrenProperty("children-nodes"); tree.setNameProperty("title"); tree.setIdField("title"); tree.setModelType(TreeModelType.CHILDREN); tree.setShowRoot(false); TreeNode root = new TreeNode("Root"); TreeNode[] layers = buildTree(capabilites.getLayers()); root.setAttribute("children-nodes", layers); tree.setRoot(root); setData(tree); if (layers != null && layers.length == 1) { tree.openFolder(layers[0]); } } protected TreeNode[] buildTree(List<WMSLayer> layers) { List<TreeNode> layerNodes = new ArrayList<TreeNode>(); for (WMSLayer layer: layers) { WMSLayerNode tn = buildTreeNode(layer); TreeNode[] tns = buildTree(layer.getLayers()); if (tns != null && tns.length > 0) { tn.setAttribute("children-nodes", tns); } layerNodes.add(tn); } return (TreeNode[]) layerNodes.toArray(new TreeNode[layerNodes.size()]); } protected static WMSLayerNode buildTreeNode(WMSLayer wms) { return new WMSLayerNode(wms); } }