Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageWindow.java @ 7867:5ec28ef7026b
Removed step back button for river selection. Fix/Workarround for issue 1203/1714.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 13 May 2014 17:07:26 +0200 |
parents | ea9eef426962 |
children | 5e38e2924c07 |
rev | line source |
---|---|
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5993
ea9eef426962
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5861
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5993
ea9eef426962
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5861
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
9 package org.dive4elements.river.client.client.ui; |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
11 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
|
12 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
|
13 |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 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
|
15 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
|
16 |
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
|
17 import com.smartgwt.client.util.SC; |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 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
|
19 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
20 import org.dive4elements.river.client.client.Config; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
21 import org.dive4elements.river.client.client.FLYSConstants; |
816
dc7b1ba05cd4
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
815
diff
changeset
|
22 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
23 import org.dive4elements.river.client.client.event.DatacageHandler; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
24 import org.dive4elements.river.client.client.event.DatacageDoubleClickHandler; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
25 import org.dive4elements.river.client.client.event.HasRedrawRequestHandlers; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
26 import org.dive4elements.river.client.client.event.RedrawRequestHandler; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
27 import org.dive4elements.river.client.client.event.RedrawRequestEvent; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
28 import org.dive4elements.river.client.client.event.RedrawRequestEvent.Type; |
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
|
29 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
30 import org.dive4elements.river.client.client.services.LoadArtifactService; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
31 import org.dive4elements.river.client.client.services.LoadArtifactServiceAsync; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
32 |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
33 import org.dive4elements.river.client.shared.model.Artifact; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
34 import org.dive4elements.river.client.shared.model.ArtifactDescription; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
35 import org.dive4elements.river.client.shared.model.Collection; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
36 import org.dive4elements.river.client.shared.model.Data; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
37 import org.dive4elements.river.client.shared.model.DataItem; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
38 import org.dive4elements.river.client.shared.model.DataList; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
39 import org.dive4elements.river.client.shared.model.ToLoad; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
40 import org.dive4elements.river.client.shared.model.User; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
41 import org.dive4elements.river.client.shared.model.Recommendation; |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 |
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
|
43 |
4869
d5f5bdaca316
DatacageWindow: Doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4381
diff
changeset
|
44 /** Window that access the datacageservice and shows a datacagewidget. */ |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 public class DatacageWindow |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 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
|
47 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
|
48 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
|
49 HasRedrawRequestHandlers |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 { |
1442
4a6814be92ba
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
51 /** i18ner. */ |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 protected FLYSConstants messages = |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 GWT.create(FLYSConstants.class); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 |
1442
4a6814be92ba
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
55 /** 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
|
56 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
|
57 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
|
58 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
59 protected CollectionView view; |
278
f33af25b7490
Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
276
diff
changeset
|
60 |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
61 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
|
62 |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
63 protected int inProgress; |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
64 |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
65 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
66 public DatacageWindow( |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1442
diff
changeset
|
67 Artifact artifact, |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
68 User user, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
69 String outs, |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
70 CollectionView view |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
71 ) { |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
72 this.view = view; |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
73 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
|
74 this.inProgress = 0; |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
75 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
76 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
|
77 setHeight(500); |
278
f33af25b7490
Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
276
diff
changeset
|
78 |
1374
7fc8b2a81463
Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1267
diff
changeset
|
79 DatacageWidget dw = new DatacageWidget( |
7fc8b2a81463
Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1267
diff
changeset
|
80 artifact, |
7fc8b2a81463
Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1267
diff
changeset
|
81 user, |
7fc8b2a81463
Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1267
diff
changeset
|
82 outs, |
7fc8b2a81463
Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1267
diff
changeset
|
83 "load-system:true", |
7fc8b2a81463
Let Datacage from toolbar show 'static' parts of data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1267
diff
changeset
|
84 true); |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
85 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
|
86 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
|
87 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
88 addItem(dw); |
278
f33af25b7490
Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
276
diff
changeset
|
89 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
90 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
|
91 // TODO: i18n |
615
ba1b27b7d282
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
582
diff
changeset
|
92 setTitle("Datenkorb: " + river); |
ba1b27b7d282
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
582
diff
changeset
|
93 setShowMinimizeButton(false); |
ba1b27b7d282
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
582
diff
changeset
|
94 setIsModal(true); |
ba1b27b7d282
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
582
diff
changeset
|
95 setShowModalMask(true); |
278
f33af25b7490
Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
276
diff
changeset
|
96 setCanDragResize(true); |
f33af25b7490
Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
276
diff
changeset
|
97 |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 centerInPage(); |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
821
diff
changeset
|
99 } |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
821
diff
changeset
|
100 |
864
c0e13cf826d7
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
101 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
102 @Override |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
103 public void toLoad(ToLoad toLoad) { |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
104 destroy(); |
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
105 List<Recommendation> recs = toLoad.toRecommendations(); |
4381
80f5d1f2d4fd
Converting from list to array doesn't make sence here
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2905
diff
changeset
|
106 loadArtifacts(recs); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 |
864
c0e13cf826d7
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
848
diff
changeset
|
109 |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
110 @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
|
111 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
|
112 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
|
113 List<Recommendation> recs = toLoad.toRecommendations(); |
4381
80f5d1f2d4fd
Converting from list to array doesn't make sence here
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2905
diff
changeset
|
114 loadArtifacts(recs); |
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
|
115 } |
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
|
116 |
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
|
117 |
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
|
118 @Override |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
119 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
|
120 if (handler != null) { |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
121 handlers.add(handler); |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
122 } |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
123 } |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
124 |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
125 |
848
9ecd58f619a4
Moved datacage into a separated widget.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
837
diff
changeset
|
126 protected String findRiver(Artifact artifact) { |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
127 ArtifactDescription adescr = artifact.getArtifactDescription(); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
128 DataList [] data = adescr.getOldData(); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
129 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
130 if (data != null && data.length > 0) { |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
131 for (int i = 0; i < data.length; i++) { |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
132 DataList dl = data[i]; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
133 if (dl.getState().equals("state.winfo.river")) { |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
134 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
|
135 Data d = dl.get(j); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
136 DataItem [] di = d.getItems(); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
137 if (di != null && di.length == 1) { |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
138 return d.getItems()[0].getStringValue(); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
139 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
140 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
141 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
142 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
143 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
144 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
145 return ""; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
146 } |
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
|
147 |
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
|
148 |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
149 protected void decreateInProgress() { |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
150 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
|
151 this.inProgress--; |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
152 } |
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 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
|
155 fireRedrawRequest(); |
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 |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
160 protected void fireRedrawRequest() { |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
161 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
|
162 |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
163 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
|
164 handler.onRedrawRequest(evt); |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
165 } |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
166 } |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
167 |
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
168 |
4381
80f5d1f2d4fd
Converting from list to array doesn't make sence here
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2905
diff
changeset
|
169 protected void loadArtifacts(List<Recommendation> recommendations) { |
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
|
170 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
|
171 |
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 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
|
173 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
|
174 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
|
175 |
4381
80f5d1f2d4fd
Converting from list to array doesn't make sence here
Björn Ricks <bjoern.ricks@intevation.de>
parents:
2905
diff
changeset
|
176 this.inProgress = recommendations.size(); |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
910
diff
changeset
|
177 |
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
|
178 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
|
179 // 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
|
180 // 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
|
181 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
|
182 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
|
183 } |
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 |
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 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
|
186 |
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
|
187 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
|
188 |
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 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
|
190 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
|
191 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
|
192 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
|
193 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
|
194 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
|
195 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
|
196 decreateInProgress(); |
1442
4a6814be92ba
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
197 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
|
198 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
|
199 } |
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
|
200 |
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
|
201 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
|
202 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
|
203 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
|
204 } |
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
|
205 }); |
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
|
206 } |
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
|
207 } |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
208 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
209 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |