comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/map/WMSLayersTree.java @ 1411:63be3137abac

Parse and display WMS layers supported by a user specified WMS service. flys-client/trunk@3298 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 21 Nov 2011 21:00:03 +0000
parents
children 659a488243da
comparison
equal deleted inserted replaced
1410:6bb2c1ffab2b 1411:63be3137abac
1 package de.intevation.flys.client.client.ui.map;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import com.smartgwt.client.types.TreeModelType;
7 import com.smartgwt.client.widgets.tree.Tree;
8 import com.smartgwt.client.widgets.tree.TreeGrid;
9 import com.smartgwt.client.widgets.tree.TreeNode;
10
11 import de.intevation.flys.client.shared.model.Capabilities;
12 import de.intevation.flys.client.shared.model.WMSLayer;
13
14
15 public class WMSLayersTree extends TreeGrid {
16
17 protected Capabilities capabilites;
18
19 public WMSLayersTree(Capabilities capabilites) {
20 super();
21 this.capabilites = capabilites;
22
23 initTree();
24 }
25
26
27 protected void initTree() {
28 setLoadDataOnDemand(false);
29 setWidth100();
30 setHeight100();
31 setShowRoot(false);
32 setShowConnectors(true);
33 setNodeIcon("[SKIN]/images/blank.gif");
34
35 Tree tree = new Tree();
36 tree.setChildrenProperty("children-nodes");
37 tree.setNameProperty("title");
38 tree.setIdField("title");
39 tree.setModelType(TreeModelType.CHILDREN);
40 tree.setShowRoot(false);
41
42 TreeNode root = new TreeNode("Root");
43 TreeNode[] layers = buildTree(capabilites.getLayers());
44
45 root.setAttribute("children-nodes", layers);
46 tree.setRoot(root);
47
48 setData(tree);
49
50 if (layers != null && layers.length == 1) {
51 tree.openFolder(layers[0]);
52 }
53 }
54
55
56 protected TreeNode[] buildTree(List<WMSLayer> layers) {
57 List<TreeNode> layerNodes = new ArrayList<TreeNode>();
58
59 for (WMSLayer layer: layers) {
60 TreeNode tn = new TreeNode();
61 tn.setAttribute("name", layer.getName());
62 tn.setAttribute("title", layer.getTitle());
63
64 TreeNode[] tns = buildTree(layer.getLayers());
65
66 if (tns != null && tns.length > 0) {
67 tn.setAttribute("children-nodes", tns);
68 }
69
70 layerNodes.add(tn);
71 }
72
73 return (TreeNode[]) layerNodes.toArray(new TreeNode[layerNodes.size()]);
74 }
75 }

http://dive4elements.wald.intevation.org