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

http://dive4elements.wald.intevation.org