Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWidget.java @ 1267:07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
flys-client/trunk@2820 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 26 Sep 2011 09:08:47 +0000 |
parents | a1a5dc2b9e34 |
children | d0500e993218 |
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; |
1267
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
4 import de.intevation.flys.client.client.event.DatacageDoubleClickHandler; |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 import com.google.gwt.core.client.GWT; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 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
|
9 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 import com.smartgwt.client.util.SC; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 import com.smartgwt.client.widgets.Button; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 import com.smartgwt.client.widgets.tree.Tree; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 import com.smartgwt.client.widgets.tree.TreeGrid; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 import com.smartgwt.client.widgets.tree.TreeNode; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 import com.smartgwt.client.types.TreeModelType; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 import com.smartgwt.client.widgets.layout.VLayout; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 import com.smartgwt.client.widgets.events.ClickHandler; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 import com.smartgwt.client.widgets.events.ClickEvent; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 import com.smartgwt.client.widgets.grid.ListGridRecord; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 |
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.RecordDoubleClickEvent; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 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
|
29 |
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.Artifact; |
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.User; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 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
|
33 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.flys.client.client.FLYSConstants; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.flys.client.client.Config; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 |
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.MetaDataService; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 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
|
39 |
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.DataCageTree; |
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.DataCageNode; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 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
|
43 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 import java.util.ArrayList; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 import java.util.List; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 import java.util.Stack; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
48 // TODO: refactor, extract ~DataCageGrid |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 public class DatacageWidget |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 extends VLayout |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 protected MetaDataServiceAsync metaDataService = |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 GWT.create(MetaDataService.class); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 protected FLYSConstants messages = |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 GWT.create(FLYSConstants.class); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 protected Artifact artifact; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
59 protected User user; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 protected String outs; |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
61 protected String parameters; |
848
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 TreeGrid treeGrid; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 protected Tree tree; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 protected ToLoad toLoad; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
67 |
1267
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
68 protected List<DatacageHandler> handlers; |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
69 protected List<DatacageDoubleClickHandler> doubleHandlers; |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 |
868
439068365cde
Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
71 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 public DatacageWidget() { |
1267
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
73 handlers = new ArrayList<DatacageHandler>(); |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
74 doubleHandlers = new ArrayList<DatacageDoubleClickHandler>(); |
848
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) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 this(artifact, user, null); |
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 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
82 public DatacageWidget(Artifact artifact, User user, String outs) { |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
83 this(artifact, user, outs, true); |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
84 } |
868
439068365cde
Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
85 |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
86 public DatacageWidget( |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
87 Artifact artifact, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
88 User user, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
89 String outs, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
90 boolean showButton |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
91 ) { |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
92 this(artifact, user, outs, null, showButton); |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
93 } |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
94 |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
95 |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
96 public DatacageWidget( |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
97 Artifact artifact, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
98 User user, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
99 String outs, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
100 String parameters, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
101 boolean showButton |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
102 ) { |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
103 this(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
104 |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
105 this.artifact = artifact; |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
106 this.user = user; |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
107 this.outs = outs; |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
108 this.parameters = parameters; |
848
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 toLoad = new ToLoad(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
111 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
112 setWidth100(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
113 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
114 tree = new Tree(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
115 tree.setModelType(TreeModelType.PARENT); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
116 tree.setNameProperty("name"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
117 tree.setIdField("id"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
118 tree.setParentIdField("parent-id"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
119 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
120 treeGrid = new TreeGrid(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
121 treeGrid.setLoadDataOnDemand(false); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
122 treeGrid.setWidth100(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
123 treeGrid.setHeight100(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
124 treeGrid.setShowRoot(false); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
125 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
126 treeGrid.addRecordDoubleClickHandler(new RecordDoubleClickHandler() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
127 @Override |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
128 public void onRecordDoubleClick(RecordDoubleClickEvent event) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
129 doubleClickedOnTree(event); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
130 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
131 }); |
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 addMember(treeGrid); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
134 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
135 if (showButton) { |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
136 addMember(createPlusButton()); |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
137 } |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
138 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
139 triggerTreeBuilding(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
140 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
141 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
142 |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
143 /** |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
144 * @param handler Handler to be added (notified on add-action). |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
145 */ |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
146 public DatacageWidget(Artifact artifact, User user, String outs, |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
147 DatacageHandler handler) { |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
148 this(artifact, user, outs); |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
149 this.addDatacageHandler(handler); |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
150 } |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
151 |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
152 |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
153 public DatacageWidget( |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
154 Artifact artifact, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
155 User user, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
156 String outs, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
157 DatacageHandler handler, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
158 String parameters |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
159 ) { |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
160 this(artifact, user, outs, handler); |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
161 this.parameters = parameters; |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
162 } |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
163 |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
164 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
165 /** |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
166 * @param handler Handler to be added (notified on add-action). |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
167 */ |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
168 public void addDatacageHandler(DatacageHandler handler) { |
884
ace7e9cfbb7f
Fixed some bugs that avoided datacage usage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
868
diff
changeset
|
169 if (!handlers.contains(handler)) { |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
170 handlers.add(handler); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
171 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
172 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
173 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
174 |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
175 /** |
1267
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
176 * @param h Handler to be added (notified on Double click on node). |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
177 */ |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
178 public void addDatacageDoubleClickHandler(DatacageDoubleClickHandler h) { |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
179 if (!doubleHandlers.contains(h)) { |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
180 doubleHandlers.add(h); |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
181 } |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
182 } |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
183 |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
184 |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
185 /** |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
186 * @param handler Handler to remove from list. |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
187 */ |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
188 public void removeDatacageHandler(DatacageHandler handler) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
189 handlers.remove(handler); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
190 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
191 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
192 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
193 public ToLoad getToLoad() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
194 return toLoad; |
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 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
197 |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
198 public ToLoad getSelection() { |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
199 // Reset content of toLoads. |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
200 toLoad = new ToLoad(); |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
201 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
202 if (treeGrid == null) { |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
203 return toLoad; |
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 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
206 ListGridRecord [] selection = treeGrid.getSelection(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
207 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
208 if (selection != null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
209 for (ListGridRecord record: selection) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
210 if (record instanceof TreeNode) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
211 collectToLoads((TreeNode)record); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
212 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
213 } |
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 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
216 return toLoad; |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
217 } |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
218 |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
219 |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
220 /** |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
221 * Callback for add-button. |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
222 * Fires to load for every selected element and handler. |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
223 */ |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
224 public void plusClicked() { |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
225 if (!getSelection().isEmpty()) { |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
226 fireToLoad(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
227 } |
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 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
230 |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
231 protected Button createPlusButton() { |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
232 // TODO: i18n + icon |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
233 Button plusBtn = new Button("+"); |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
234 plusBtn.addClickHandler(new ClickHandler() { |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
235 @Override |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
236 public void onClick(ClickEvent event) { |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
237 plusClicked(); |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
238 } |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
239 }); |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
240 return plusBtn; |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
241 } |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
242 |
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
243 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
244 protected void fireToLoad() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
245 for (DatacageHandler handler: handlers) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
246 handler.toLoad(toLoad); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
247 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
248 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
249 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
250 |
1267
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
251 protected void fireOnDoubleClick() { |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
252 for (DatacageDoubleClickHandler handler: doubleHandlers) { |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
253 handler.onDoubleClick(toLoad); |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
254 } |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
255 } |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
256 |
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
257 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
258 protected void doubleClickedOnTree(RecordDoubleClickEvent event) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
259 TreeNode node = (TreeNode)event.getRecord(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
260 collectToLoads(node); |
1267
07aa1f504491
Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
261 fireOnDoubleClick(); |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
262 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
263 |
897
2b6efb8b2301
Refactored DatacageWidget to allow reuse in other use-cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
892
diff
changeset
|
264 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
265 protected void collectToLoads(TreeNode node) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
266 Stack<TreeNode> stack = new Stack<TreeNode>(); |
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 stack.push(node); |
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 while (!stack.isEmpty()) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
271 node = stack.pop(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
272 String factory = node.getAttribute("factory"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
273 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
|
274 String artifact = node.getAttribute("artifact-id"); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
275 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
|
276 String name = node.getAttribute("facet"); |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
277 String ids = node.getAttribute("ids"); |
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 toLoad.add(artifact, factory, out, name, ids); |
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 TreeNode [] children = tree.getChildren(node); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
282 if (children != null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
283 for (TreeNode child: children) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
284 stack.push(child); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
285 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
286 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
287 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
288 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
289 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
290 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
291 protected void triggerTreeBuilding() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
292 Config config = Config.getInstance(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
293 String url = config.getServerUrl(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
294 String locale = config.getLocale(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
295 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
296 String artifactId = artifact.getUuid(); |
868
439068365cde
Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
297 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
|
298 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
299 metaDataService.getMetaData( |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
300 url, locale, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
301 artifactId, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
302 userId, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
303 outs, |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
897
diff
changeset
|
304 parameters, |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
305 new AsyncCallback<DataCageTree>() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
306 public void onFailure(Throwable caught) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
307 GWT.log("Could not load meta data."); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
308 SC.warn(caught.getMessage()); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
309 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
310 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
311 public void onSuccess(DataCageTree dcTree) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
312 GWT.log("Successfully loaded meta data."); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
313 tree.setData(treeToData(dcTree)); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
314 treeGrid.setData(tree); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
315 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
316 }); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
317 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
318 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
319 private static class IdGenerator { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
320 protected int current; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
321 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
322 public IdGenerator() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
323 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
324 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
325 public IdGenerator(int start) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
326 current = start; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
327 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
328 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
329 public int next() { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
330 return current++; |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
331 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
332 } // class IdGenerator |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
333 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
334 protected static void buildRecursive( |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
335 DataCageNode node, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
336 int parentId, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
337 IdGenerator idGenerator, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
338 List<TreeNode> nodes |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
339 ) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
340 TreeNode tn = new TreeNode(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
341 int id = idGenerator.next(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
342 tn.setAttribute("parent-id", parentId); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
343 tn.setAttribute("id", id); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
344 // 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
|
345 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
|
346 tn.setAttribute("facet", node.getName()); |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
347 nodes.add(tn); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
348 AttrList attrs = node.getAttributes(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
349 if (attrs != null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
350 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
|
351 String key = attrs.getKey(i); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
352 String value = attrs.getValue(i); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
353 tn.setAttribute(key, value); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
354 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
355 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
356 List<DataCageNode> children = node.getChildren(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
357 if (children != null) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
358 for (DataCageNode child: children) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
359 buildRecursive(child, id, idGenerator, nodes); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
360 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
361 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
362 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
363 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
364 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
365 protected static TreeNode [] treeToData(DataCageTree tree) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
366 List<TreeNode> nodes = new ArrayList<TreeNode>(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
367 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
368 DataCageNode root = tree.getRoot(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
369 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
370 IdGenerator idGenerator = new IdGenerator(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
371 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
372 buildRecursive(root, idGenerator.next(), idGenerator, nodes); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
373 |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
374 return nodes.toArray(new TreeNode[nodes.size()]); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
375 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
376 } |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
377 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |