comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/WMSLayersTree.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-client/src/main/java/org/dive4elements/river/client/client/ui/map/WMSLayersTree.java@821a02bbfb4e
children 172338b1407f
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.client.client.ui.map;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import com.google.gwt.core.client.GWT;
7
8 import com.smartgwt.client.types.TreeModelType;
9 import com.smartgwt.client.widgets.tree.Tree;
10 import com.smartgwt.client.widgets.tree.TreeGrid;
11 import com.smartgwt.client.widgets.tree.TreeNode;
12
13 import org.dive4elements.river.client.shared.model.Capabilities;
14 import org.dive4elements.river.client.shared.model.WMSLayer;
15
16
17 public class WMSLayersTree extends TreeGrid {
18
19 /**
20 * An internal TreeNode that stores besides some string attribute a WMSLayer
21 * object.
22 */
23 public static class WMSLayerNode extends TreeNode {
24
25 protected WMSLayer wms;
26
27 public WMSLayerNode(WMSLayer wms) {
28 super();
29 this.wms = wms;
30
31 setAttribute("name", wms.getName());
32 setAttribute("title", wms.getTitle());
33 }
34
35 public WMSLayer getWMSLayer() {
36 return wms;
37 }
38 } // end of class WMSLayerNode
39
40
41 protected Capabilities capabilites;
42 protected String srs;
43
44
45 public WMSLayersTree(Capabilities capabilites) {
46 super();
47 this.capabilites = capabilites;
48
49 initTree();
50 }
51
52
53 public WMSLayersTree(Capabilities capabilites, String srs) {
54 super();
55
56 this.capabilites = capabilites;
57 this.srs = srs;
58
59 initTree();
60 }
61
62
63 protected void initTree() {
64 setLoadDataOnDemand(false);
65 setWidth100();
66 setHeight100();
67 setShowRoot(false);
68 setShowConnectors(true);
69 setNodeIcon("[SKIN]/images/blank.gif");
70
71 Tree tree = new Tree();
72 tree.setChildrenProperty("children-nodes");
73 tree.setNameProperty("title");
74 tree.setIdField("title");
75 tree.setModelType(TreeModelType.CHILDREN);
76 tree.setShowRoot(false);
77
78 TreeNode root = new TreeNode("Root");
79 TreeNode[] layers = buildTree(capabilites.getLayers());
80
81 root.setAttribute("children-nodes", layers);
82 tree.setRoot(root);
83
84 setData(tree);
85
86 if (layers != null && layers.length == 1) {
87 tree.openFolder(layers[0]);
88 }
89 }
90
91
92 protected TreeNode[] buildTree(List<WMSLayer> layers) {
93 List<TreeNode> layerNodes = new ArrayList<TreeNode>();
94
95 for (WMSLayer layer: layers) {
96 WMSLayerNode tn = buildTreeNode(layer);
97
98 if (tn != null) {
99 TreeNode[] tns = buildTree(layer.getLayers());
100
101 if (tns != null && tns.length > 0) {
102 tn.setAttribute("children-nodes", tns);
103 }
104
105 layerNodes.add(tn);
106 }
107 }
108
109 return layerNodes.toArray(new TreeNode[layerNodes.size()]);
110 }
111
112
113 protected WMSLayerNode buildTreeNode(WMSLayer wms) {
114 if (srs != null && srs.length() > 0) {
115 return wms.supportsSrs(srs) ? new WMSLayerNode(wms) : null;
116 }
117 else {
118 GWT.log("No target SRS specified.");
119 return new WMSLayerNode(wms);
120 }
121 }
122 }

http://dive4elements.wald.intevation.org