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