Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWidget.java @ 896:fe23bbf0ea11
Fixed a problem with renaming collection view title and duplicating projects.
flys-client/trunk@2741 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 14 Sep 2011 12:00:22 +0000 |
parents | 63b258bf365c |
children | 2b6efb8b2301 |
rev | line source |
---|---|
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.client.ui; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 import de.intevation.flys.client.client.event.DatacageHandler; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 import com.google.gwt.core.client.GWT; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 import com.google.gwt.user.client.rpc.AsyncCallback; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 import com.smartgwt.client.util.SC; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 import com.smartgwt.client.widgets.Button; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 import com.smartgwt.client.widgets.tree.Tree; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 import com.smartgwt.client.widgets.tree.TreeGrid; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 import com.smartgwt.client.widgets.tree.TreeNode; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 import com.smartgwt.client.types.TreeModelType; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 import com.smartgwt.client.widgets.layout.VLayout; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 import com.smartgwt.client.widgets.events.ClickHandler; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 import com.smartgwt.client.widgets.events.ClickEvent; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 import com.smartgwt.client.widgets.grid.ListGridRecord; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 import com.smartgwt.client.widgets.grid.events.RecordDoubleClickEvent; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 import com.smartgwt.client.widgets.grid.events.RecordDoubleClickHandler; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.flys.client.shared.model.Artifact; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.flys.client.shared.model.User; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.flys.client.shared.model.ToLoad; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 import de.intevation.flys.client.client.FLYSConstants; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.flys.client.client.Config; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 import de.intevation.flys.client.client.services.MetaDataService; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.flys.client.client.services.MetaDataServiceAsync; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 import de.intevation.flys.client.shared.model.DataCageTree; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 import de.intevation.flys.client.shared.model.DataCageNode; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 import de.intevation.flys.client.shared.model.AttrList; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 import java.util.ArrayList; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 import java.util.List; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 import java.util.Stack; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 public class DatacageWidget |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 extends VLayout |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 protected MetaDataServiceAsync metaDataService = |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 GWT.create(MetaDataService.class); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 protected FLYSConstants messages = |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 GWT.create(FLYSConstants.class); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 protected Artifact artifact; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 protected User user; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 protected String outs; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
59 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 protected TreeGrid treeGrid; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
61 protected Tree tree; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
62 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
63 protected ToLoad toLoad; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 protected List<DatacageHandler> handlers; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 |
868
439068365cde
Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
67 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 public DatacageWidget() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 handlers = new ArrayList<DatacageHandler>(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 |
868
439068365cde
Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
72 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
73 public DatacageWidget(Artifact artifact, User user) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
74 this(artifact, user, null); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
75 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
76 |
868
439068365cde
Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
77 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
78 public DatacageWidget(Artifact artifact, User user, String outs) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 this(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
80 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
81 this.artifact = artifact; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
82 this.user = user; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
83 this.outs = outs; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
84 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
85 toLoad = new ToLoad(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
86 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
87 setWidth100(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
88 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
89 tree = new Tree(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
90 tree.setModelType(TreeModelType.PARENT); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
91 tree.setNameProperty("name"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
92 tree.setIdField("id"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
93 tree.setParentIdField("parent-id"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
95 treeGrid = new TreeGrid(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
96 treeGrid.setLoadDataOnDemand(false); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
97 treeGrid.setWidth100(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 treeGrid.setHeight100(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
99 treeGrid.setShowRoot(false); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
101 treeGrid.addRecordDoubleClickHandler(new RecordDoubleClickHandler() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 @Override |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
103 public void onRecordDoubleClick(RecordDoubleClickEvent event) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
104 doubleClickedOnTree(event); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 }); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 addMember(treeGrid); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
109 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
110 // TODO: i18n + icon |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
111 Button plusBtn = new Button("+"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
112 plusBtn.addClickHandler(new ClickHandler() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
113 @Override |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
114 public void onClick(ClickEvent event) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
115 plusClicked(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
116 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
117 }); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
118 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
119 addMember(plusBtn); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
120 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
121 triggerTreeBuilding(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
122 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
123 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
124 public void addDatacageHandler(DatacageHandler handler) { |
884
ace7e9cfbb7f
Fixed some bugs that avoided datacage usage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
868
diff
changeset
|
125 if (!handlers.contains(handler)) { |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
126 handlers.add(handler); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
127 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
128 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
129 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
130 public void removeDatacageHandler(DatacageHandler handler) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
131 handlers.remove(handler); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
132 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
133 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
134 public ToLoad getToLoad() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
135 return toLoad; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
136 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
137 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
138 public void plusClicked() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
139 if (treeGrid == null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
140 return; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
141 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
142 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
143 ListGridRecord [] selection = treeGrid.getSelection(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
144 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
145 if (selection != null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
146 for (ListGridRecord record: selection) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
147 if (record instanceof TreeNode) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
148 collectToLoads((TreeNode)record); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
149 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
150 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
151 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
152 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
153 if (!toLoad.isEmpty()) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
154 fireToLoad(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
155 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
156 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
157 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
158 protected void fireToLoad() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
159 for (DatacageHandler handler: handlers) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
160 handler.toLoad(toLoad); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
161 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
162 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
163 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
164 protected void doubleClickedOnTree(RecordDoubleClickEvent event) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
165 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
166 TreeNode node = (TreeNode)event.getRecord(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
167 collectToLoads(node); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
168 destroy(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
169 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
170 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
171 protected void collectToLoads(TreeNode node) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
172 Stack<TreeNode> stack = new Stack<TreeNode>(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
173 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
174 stack.push(node); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
175 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
176 while (!stack.isEmpty()) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
177 node = stack.pop(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
178 String factory = node.getAttribute("factory"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
179 if (factory != null) { // we need at least a factory |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
180 String artifact = node.getAttribute("artifact-id"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
181 String out = node.getAttribute("out"); |
892
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
884
diff
changeset
|
182 String name = node.getAttribute("facet"); |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
183 String ids = node.getAttribute("ids"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
184 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
185 toLoad.add(artifact, factory, out, name, ids); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
186 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
187 TreeNode [] children = tree.getChildren(node); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
188 if (children != null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
189 for (TreeNode child: children) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
190 stack.push(child); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
191 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
192 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
193 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
194 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
195 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
196 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
197 protected void triggerTreeBuilding() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
198 Config config = Config.getInstance(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
199 String url = config.getServerUrl(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
200 String locale = config.getLocale(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
201 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
202 String artifactId = artifact.getUuid(); |
868
439068365cde
Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
203 String userId = (user != null) ? user.identifier() : null; |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
204 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
205 metaDataService.getMetaData( |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
206 url, locale, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
207 artifactId, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
208 userId, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
209 outs, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
210 new AsyncCallback<DataCageTree>() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
211 public void onFailure(Throwable caught) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
212 GWT.log("Could not load meta data."); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
213 SC.warn(caught.getMessage()); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
214 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
215 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
216 public void onSuccess(DataCageTree dcTree) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
217 GWT.log("Successfully loaded meta data."); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
218 tree.setData(treeToData(dcTree)); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
219 treeGrid.setData(tree); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
220 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
221 }); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
222 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
223 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
224 private static class IdGenerator { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
225 protected int current; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
226 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
227 public IdGenerator() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
228 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
229 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
230 public IdGenerator(int start) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
231 current = start; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
232 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
233 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
234 public int next() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
235 return current++; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
236 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
237 } // class IdGenerator |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
238 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
239 protected static void buildRecursive( |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
240 DataCageNode node, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
241 int parentId, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
242 IdGenerator idGenerator, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
243 List<TreeNode> nodes |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
244 ) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
245 TreeNode tn = new TreeNode(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
246 int id = idGenerator.next(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
247 tn.setAttribute("parent-id", parentId); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
248 tn.setAttribute("id", id); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
249 // TODO: i18n |
892
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
884
diff
changeset
|
250 tn.setAttribute("name", node.getDescription()); |
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
884
diff
changeset
|
251 tn.setAttribute("facet", node.getName()); |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
252 nodes.add(tn); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
253 AttrList attrs = node.getAttributes(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
254 if (attrs != null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
255 for (int i = 0, N = attrs.size(); i < N; ++i) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
256 String key = attrs.getKey(i); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
257 String value = attrs.getValue(i); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
258 tn.setAttribute(key, value); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
259 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
260 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
261 List<DataCageNode> children = node.getChildren(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
262 if (children != null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
263 for (DataCageNode child: children) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
264 buildRecursive(child, id, idGenerator, nodes); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
265 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
266 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
267 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
268 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
269 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
270 protected static TreeNode [] treeToData(DataCageTree tree) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
271 List<TreeNode> nodes = new ArrayList<TreeNode>(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
272 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
273 DataCageNode root = tree.getRoot(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
274 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
275 IdGenerator idGenerator = new IdGenerator(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
276 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
277 buildRecursive(root, idGenerator.next(), idGenerator, nodes); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
278 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
279 return nodes.toArray(new TreeNode[nodes.size()]); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
280 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
281 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
282 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |