annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWindow.java @ 2905:51ed89b754ae

FLYS client: Removed trailing whitespace. flys-client/trunk@4671 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 15 Jun 2012 09:35:37 +0000
parents 4a6814be92ba
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