annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWindow.java @ 4253:a1bc5b8cff0f

Refactor GaugePanel to create it's own SectionStackSection The GaugePanel constructor now creates a SectionStackSection instead of using a provided one. Improve the rendering of the GaugePanel by having access to the SmartGWT wrapper (WidgetCanvas) object for the GWT Tree (GaugeTree) directly. Add methods to close and open the section. Also add a getter for the section.
author Björn Ricks <bjoern.ricks@intevation.de>
date Thu, 25 Oct 2012 13:52:58 +0200
parents 51ed89b754ae
children 80f5d1f2d4fd
rev   line source
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
3 import java.util.ArrayList;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
4 import java.util.List;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
5
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 import com.google.gwt.core.client.GWT;
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
7 import com.google.gwt.user.client.rpc.AsyncCallback;
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
9 import com.smartgwt.client.util.SC;
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.Window;
821
56069d236afa Datacage: Build UI tree in a more compatible style
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 817
diff changeset
11
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
12 import de.intevation.flys.client.client.Config;
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
13 import de.intevation.flys.client.client.FLYSConstants;
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
15 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: 911
diff changeset
16 import de.intevation.flys.client.client.event.DatacageDoubleClickHandler;
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
17 import de.intevation.flys.client.client.event.HasRedrawRequestHandlers;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
18 import de.intevation.flys.client.client.event.RedrawRequestHandler;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
19 import de.intevation.flys.client.client.event.RedrawRequestEvent;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
20 import de.intevation.flys.client.client.event.RedrawRequestEvent.Type;
816
dc7b1ba05cd4 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 815
diff changeset
21
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
22 import de.intevation.flys.client.client.services.LoadArtifactService;
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
23 import de.intevation.flys.client.client.services.LoadArtifactServiceAsync;
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
24
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 import de.intevation.flys.client.shared.model.Artifact;
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 import de.intevation.flys.client.shared.model.ArtifactDescription;
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
27 import de.intevation.flys.client.shared.model.Collection;
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 import de.intevation.flys.client.shared.model.Data;
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
29 import de.intevation.flys.client.shared.model.DataItem;
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 import de.intevation.flys.client.shared.model.DataList;
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
31 import de.intevation.flys.client.shared.model.ToLoad;
811
8fa303586f14 Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 615
diff changeset
32 import de.intevation.flys.client.shared.model.User;
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
33 import de.intevation.flys.client.shared.model.Recommendation;
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34
814
6db4839e0ba1 Datacage: Added a subclass of TreeNode to carry the informations needed by the loading listeners.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 812
diff changeset
35
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 public class DatacageWindow
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 extends Window
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: 911
diff changeset
38 implements 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: 911
diff changeset
39 DatacageDoubleClickHandler,
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: 911
diff changeset
40 HasRedrawRequestHandlers
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 {
1442
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
42 /** i18ner. */
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 protected FLYSConstants messages =
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 GWT.create(FLYSConstants.class);
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45
1442
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
46 /** Service to create/clone artifacts. */
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
47 protected LoadArtifactServiceAsync loadService =
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
48 GWT.create(LoadArtifactService.class);
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
49
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
50 protected CollectionView view;
278
f33af25b7490 Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 276
diff changeset
51
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
52 protected List<RedrawRequestHandler> handlers;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
53
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
54 protected int inProgress;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
55
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
56
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
57 public DatacageWindow(
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1442
diff changeset
58 Artifact artifact,
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
59 User user,
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
60 String outs,
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
61 CollectionView view
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
62 ) {
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
63 this.view = view;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
64 this.handlers = new ArrayList<RedrawRequestHandler>();
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
65 this.inProgress = 0;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
66
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
67 setWidth(400);
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 821
diff changeset
68 setHeight(500);
278
f33af25b7490 Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 276
diff changeset
69
1374
7fc8b2a81463 Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1267
diff changeset
70 DatacageWidget dw = new DatacageWidget(
7fc8b2a81463 Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1267
diff changeset
71 artifact,
7fc8b2a81463 Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1267
diff changeset
72 user,
7fc8b2a81463 Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1267
diff changeset
73 outs,
7fc8b2a81463 Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1267
diff changeset
74 "load-system:true",
7fc8b2a81463 Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1267
diff changeset
75 true);
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
76 dw.addDatacageHandler(this);
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: 911
diff changeset
77 dw.addDatacageDoubleClickHandler(this);
821
56069d236afa Datacage: Build UI tree in a more compatible style
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 817
diff changeset
78
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
79 addItem(dw);
278
f33af25b7490 Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 276
diff changeset
80
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
81 String river = findRiver(artifact);
811
8fa303586f14 Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 615
diff changeset
82 // TODO: i18n
615
ba1b27b7d282 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 582
diff changeset
83 setTitle("Datenkorb: " + river);
ba1b27b7d282 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 582
diff changeset
84 setShowMinimizeButton(false);
ba1b27b7d282 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 582
diff changeset
85 setIsModal(true);
ba1b27b7d282 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 582
diff changeset
86 setShowModalMask(true);
278
f33af25b7490 Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 276
diff changeset
87 setCanDragResize(true);
f33af25b7490 Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 276
diff changeset
88
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
89 centerInPage();
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 821
diff changeset
90 }
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 821
diff changeset
91
864
c0e13cf826d7 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 848
diff changeset
92
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
93 @Override
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
94 public void toLoad(ToLoad toLoad) {
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
95 destroy();
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
96 List<Recommendation> recs = toLoad.toRecommendations();
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
97 loadArtifacts(recs.toArray(new Recommendation[recs.size()]));
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98 }
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99
864
c0e13cf826d7 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 848
diff changeset
100
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
101 @Override
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: 911
diff changeset
102 public void onDoubleClick(ToLoad 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: 911
diff changeset
103 destroy();
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: 911
diff changeset
104 List<Recommendation> recs = toLoad.toRecommendations();
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: 911
diff changeset
105 loadArtifacts(recs.toArray(new Recommendation[recs.size()]));
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: 911
diff changeset
106 }
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: 911
diff changeset
107
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: 911
diff changeset
108
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: 911
diff changeset
109 @Override
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
110 public void addRedrawRequestHandler(RedrawRequestHandler handler) {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
111 if (handler != null) {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
112 handlers.add(handler);
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
113 }
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
114 }
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
115
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
116
848
9ecd58f619a4 Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
117 protected String findRiver(Artifact artifact) {
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
118 ArtifactDescription adescr = artifact.getArtifactDescription();
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119 DataList [] data = adescr.getOldData();
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 if (data != null && data.length > 0) {
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 for (int i = 0; i < data.length; i++) {
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123 DataList dl = data[i];
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124 if (dl.getState().equals("state.winfo.river")) {
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 for (int j = dl.size()-1; j >= 0; --j) {
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 Data d = dl.get(j);
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127 DataItem [] di = d.getItems();
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128 if (di != null && di.length == 1) {
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
129 return d.getItems()[0].getStringValue();
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130 }
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131 }
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132 }
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133 }
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134 }
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
135
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136 return "";
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 }
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
138
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
139
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
140 protected void decreateInProgress() {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
141 if (this.inProgress > 0) {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
142 this.inProgress--;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
143 }
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
144
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
145 if (this.inProgress == 0) {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
146 fireRedrawRequest();
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
147 }
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
148 }
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
149
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
150
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
151 protected void fireRedrawRequest() {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
152 RedrawRequestEvent evt = new RedrawRequestEvent(Type.DEFAULT);
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
153
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
154 for (RedrawRequestHandler handler: handlers) {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
155 handler.onRedrawRequest(evt);
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
156 }
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
157 }
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
158
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
159
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
160 protected void loadArtifacts(Recommendation[] recommendations) {
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
161 Config cfg = Config.getInstance();
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
162
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
163 final Collection collection = view.getCollection();
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
164 final Artifact masterArtifact = view.getArtifact();
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
165 final String locale = cfg.getLocale();
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
166
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
167 this.inProgress = recommendations.length;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
168
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
169 for (final Recommendation recommendation: recommendations) {
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
170 // XXX: UGLY! If no reference artifact given use uuid of
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
171 // current artifact as reference.
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
172 if (recommendation.getMasterArtifact() == null) {
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
173 recommendation.setMasterArtifact(masterArtifact.getUuid());
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
174 }
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
175
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
176 final String factory = recommendation.getFactory();
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
177
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
178 GWT.log("Load new artifact with factory: " + factory);
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
179
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
180 loadService.load(
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
181 collection,
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
182 recommendation,
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
183 factory,
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
184 locale,
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
185 new AsyncCallback<Artifact>() {
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
186 public void onFailure(Throwable caught) {
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
187 decreateInProgress();
1442
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
188 GWT.log("Create-artifact failed: " + caught.getMessage());
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
189 SC.warn(caught.getMessage());
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
190 }
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
191
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
192 public void onSuccess(Artifact artifact) {
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 910
diff changeset
193 decreateInProgress();
910
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
194 GWT.log("Created new artifact: " + artifact.getUuid());
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
195 }
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
196 });
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
197 }
7f72239e56c8 #259 Use the LoadArtifactService to clone Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 864
diff changeset
198 }
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
199 }
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
200 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org