Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/ThemePanel.java @ 1430:6bb6d43eeb2d
Cosmetics.
flys-client/trunk@3383 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Mon, 12 Dec 2011 07:23:24 +0000 |
parents | bc06a671ef60 |
children | ec0460dbbae2 |
rev | line source |
---|---|
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.client.ui; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import java.util.ArrayList; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 import java.util.List; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import com.google.gwt.core.client.GWT; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import com.google.gwt.user.client.rpc.AsyncCallback; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import com.smartgwt.client.util.SC; |
1422
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
10 import com.smartgwt.client.util.BooleanCallback; |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import com.smartgwt.client.widgets.Canvas; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import com.smartgwt.client.widgets.grid.ListGrid; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import com.smartgwt.client.widgets.grid.ListGridRecord; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import com.smartgwt.client.widgets.grid.events.EditCompleteEvent; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import com.smartgwt.client.widgets.grid.events.EditCompleteHandler; |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
16 import com.smartgwt.client.widgets.grid.events.RowContextClickEvent; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
17 import com.smartgwt.client.widgets.grid.events.RowContextClickHandler; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
18 import com.smartgwt.client.widgets.menu.Menu; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
19 import com.smartgwt.client.widgets.menu.MenuItem; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
20 import com.smartgwt.client.widgets.menu.events.ClickHandler; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
21 import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent; |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.flys.client.shared.model.Collection; |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
24 import de.intevation.flys.client.shared.model.CollectionItemAttribute; |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.flys.client.shared.model.FacetRecord; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.flys.client.shared.model.OutputMode; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.flys.client.shared.model.Theme; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.flys.client.shared.model.ThemeList; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.flys.client.client.Config; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.flys.client.client.FLYSConstants; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.flys.client.client.event.HasOutputParameterChangeHandlers; |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
33 import de.intevation.flys.client.client.event.HasRedrawRequestHandlers; |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.flys.client.client.event.OnMoveEvent; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.flys.client.client.event.OnMoveHandler; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 import de.intevation.flys.client.client.event.OutputParameterChangeEvent; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.flys.client.client.event.OutputParameterChangeHandler; |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
38 import de.intevation.flys.client.client.event.RedrawRequestHandler; |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
858
diff
changeset
|
39 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:
858
diff
changeset
|
40 import de.intevation.flys.client.client.event.RedrawRequestEvent.Type; |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 import de.intevation.flys.client.client.services.CollectionAttributeService; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 import de.intevation.flys.client.client.services.CollectionAttributeServiceAsync; |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
43 import de.intevation.flys.client.client.services.CollectionItemAttributeService; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
44 import de.intevation.flys.client.client.services.CollectionItemAttributeServiceAsync; |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 |
1430
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
46 /** |
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
47 * ThemePanel on the left in CollectionView. |
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
48 * Contains control widgets for "themes", which are plotted in a diagram (chart). |
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
49 * |
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
50 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
51 */ |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 public abstract class ThemePanel |
854
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
53 extends Canvas |
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
54 implements OnMoveHandler, |
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
55 EditCompleteHandler, |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
56 HasOutputParameterChangeHandlers, |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
57 HasRedrawRequestHandlers |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 protected CollectionAttributeServiceAsync updater = |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 GWT.create(CollectionAttributeService.class); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
62 /** The service used to get collection item attributes. */ |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
63 protected CollectionItemAttributeServiceAsync itemAttributeService = |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
64 GWT.create(CollectionItemAttributeService.class); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
65 |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 private FLYSConstants MSG = GWT.create(FLYSConstants.class); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
68 /** List of OutParameterChangedHandler. */ |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 protected List<OutputParameterChangeHandler> outHandlers; |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
70 /** List of ChartShallRedrawHandler. */ |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
71 protected List<RedrawRequestHandler> redrawRequestHandlers; |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 protected Collection collection; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 protected OutputMode mode; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 protected ThemeNavigationPanel navigation; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 protected ListGrid list; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
79 /** The collection view*/ |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
80 protected CollectionView view; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
81 |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 |
854
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
83 /** |
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
84 * Setup Grid, navigation bar. |
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
85 * @param collection Collection for which to show themes. |
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
86 */ |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 public ThemePanel(Collection collection, OutputMode mode) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 this.collection = collection; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 this.mode = mode; |
854
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
90 this.list = createGrid(); |
1358
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
91 list.addRowContextClickHandler(new RowContextClickHandler() { |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
92 public void onRowContextClick(RowContextClickEvent event) { |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
93 ListGridRecord[] records = list.getSelection(); |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
94 |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
95 Menu menu = null; |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
96 |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
97 if (records == null || records.length == 0) { |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
98 return; |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
99 } |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
100 else if (records.length == 1) { |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
101 menu = getSingleContextMenu(records); |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
102 } |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
103 else if (records.length > 1) { |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
104 menu = getMultiContextMenu(records); |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
105 } |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
106 |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
107 if (menu != null) { |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
108 list.setContextMenu(menu); |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
109 menu.showContextMenu(); |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
110 |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
111 event.cancel(); |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
112 } |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
113 } |
c437e4f0f7be
Moved the context menu handler to constructor to have the menu
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1340
diff
changeset
|
114 }); |
854
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
115 |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
116 this.redrawRequestHandlers = new ArrayList<RedrawRequestHandler>(); |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 this.outHandlers = new ArrayList<OutputParameterChangeHandler>(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
118 this.navigation = new ThemeNavigationPanel(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
119 this.navigation.addOnMoveHandler(this); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
120 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
121 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 public abstract void activateTheme(Theme theme, boolean active); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
124 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
125 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
127 * Replace the current collection with a new one. <b>NOTE: this operation |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
128 * triggers updateGrid() which modifies the themes in the grid.</b> |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
129 * |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 * @param collection The new collection object. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
131 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
132 protected void setCollection(Collection collection) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 this.collection = collection; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
134 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
135 updateGrid(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
136 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
137 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
139 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 * Returns the ThemeList of the current collection and output mode. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
141 * |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
142 * @return the current ThemeList. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
143 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
144 public ThemeList getThemeList() { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
145 return collection.getThemeList(mode.getName()); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
146 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
147 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
148 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
149 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
150 * Registers a new OutputParameterChangeHandler. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
151 * |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
152 * @param h The new handler. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
154 public void addOutputParameterChangeHandler(OutputParameterChangeHandler h){ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
155 if (h != null) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
156 outHandlers.add(h); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
158 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
160 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 /** |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
162 * Registers a RedrawRequestHandler. |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
163 * |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
164 * @param h The new handler. |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
165 */ |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
166 public void addRedrawRequestHandler(RedrawRequestHandler h){ |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
167 if (h != null) { |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
168 redrawRequestHandlers.add(h); |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
169 } |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
170 } |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
171 |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
172 |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
173 /** |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
174 * Request a redraw of e.g. a Chart. |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
175 */ |
1379
546f7f890ffa
Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1361
diff
changeset
|
176 final public void requestRedraw() { |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
177 for (RedrawRequestHandler handler: redrawRequestHandlers) { |
911
4668357b255e
#259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
858
diff
changeset
|
178 handler.onRedrawRequest(new RedrawRequestEvent(Type.RESET)); |
858
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
179 } |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
180 } |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
181 |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
182 |
9f07f67f60a5
Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
854
diff
changeset
|
183 /** |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
184 * Called when the attribution of an output changed. It informs the |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
185 * registered handlers about the changes. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
186 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
187 protected void fireOutputParameterChanged() { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
188 OutputParameterChangeEvent evt = new OutputParameterChangeEvent(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
189 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
190 for (OutputParameterChangeHandler handler: outHandlers) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
191 handler.onOutputParameterChanged(evt); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
192 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
193 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
194 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
195 |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
196 public void setCollectionView(CollectionView view) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
197 this.view = view; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
198 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
199 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
200 |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
201 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
202 * This method is used to clear the current theme grid and add new updated |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
203 * data. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
204 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
205 protected void updateGrid() { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
206 GWT.log("ThemePanel.updateGrid"); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
207 |
1361
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
208 ListGridRecord[] selected = list.getSelectedRecords(); |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
209 |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
210 clearGrid(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
211 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
212 ThemeList themeList = getThemeList(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
213 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
214 if (themeList == null) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
215 GWT.log("ERROR: No theme list."); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
216 return; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
217 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
218 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
219 int count = themeList.getThemeCount(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
220 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
221 for (int i = 1; i <= count; i++) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
222 Theme theme = themeList.getThemeAt(i); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
223 |
1340
290d5687f202
#253 Implemented ThemePanel's 'remove' action.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1338
diff
changeset
|
224 if (theme == null || theme.getVisible() == 0) { |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
225 continue; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
226 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
227 |
1361
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
228 FacetRecord newRecord = createRecord(theme); |
1382
78542ff1f562
Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1379
diff
changeset
|
229 addFacetRecord(newRecord); |
1361
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
230 |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
231 String newArtifact = theme.getArtifact(); |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
232 String newFacet = theme.getFacet(); |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
233 int newIndex = theme.getIndex(); |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
234 |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
235 for (ListGridRecord r: selected) { |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
236 FacetRecord sel = (FacetRecord) r; |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
237 Theme oldTheme = sel.getTheme(); |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
238 |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
239 if (oldTheme.getArtifact().equals(newArtifact) |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
240 && oldTheme.getFacet().equals(newFacet) |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
241 && oldTheme.getIndex() == newIndex) { |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
242 list.selectRecord(newRecord); |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
243 } |
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
244 } |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
245 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
246 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
247 fireOutputParameterChanged(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
248 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
249 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
250 |
1430
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
251 /** Adds given Record to the list (table). */ |
1382
78542ff1f562
Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1379
diff
changeset
|
252 protected void addFacetRecord(FacetRecord rec) { |
78542ff1f562
Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1379
diff
changeset
|
253 list.addData(rec); |
78542ff1f562
Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1379
diff
changeset
|
254 } |
78542ff1f562
Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1379
diff
changeset
|
255 |
78542ff1f562
Update map and theme panel when new layers are added via datacage or removed by context menu.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1379
diff
changeset
|
256 |
1430
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
257 /** Create a FacetRecord that wraps given theme. */ |
1361
9d67cd17ab78
Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1358
diff
changeset
|
258 protected FacetRecord createRecord(Theme theme) { |
1327
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
259 return new FacetRecord(theme); |
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
260 } |
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
261 |
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
262 |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
263 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
264 * This method triggers the CollectionAttributeService. Based on the current |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
265 * collectin settings, the attribute of the collection is modified or not. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
266 * But in every case, we will get a new collection object - which might be |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
267 * the same as the current one. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
268 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
269 public void updateCollection() { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
270 final Config config = Config.getInstance(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
271 final String loc = config.getLocale(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
272 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
273 GWT.log("ThemePanel.updateCollection via RPC now"); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
274 |
1430
6bb6d43eeb2d
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
275 // Don't forget to enable the panel after the request has finished! |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
276 disable(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
277 |
1425
bc06a671ef60
Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1422
diff
changeset
|
278 updater.update(collection, loc, new AsyncCallback<Collection>() { |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
279 public void onFailure(Throwable caught) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
280 GWT.log("Could not update collection attributes."); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
281 SC.warn(MSG.getString(caught.getMessage())); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
282 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
283 enable(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
284 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
285 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
286 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
287 public void onSuccess(Collection collection) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
288 setCollection(collection); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
289 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
290 enable(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
291 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
292 }); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
293 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
294 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
295 |
854
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
296 /** |
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
297 * Create and configure the Grid to display. |
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
298 */ |
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
299 protected ListGrid createGrid() { |
1327
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
300 ListGrid grid = createNewGrid(); |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
301 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
302 return grid; |
854
67c678903280
Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
805
diff
changeset
|
303 } |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
304 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
305 |
1327
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
306 protected ListGrid createNewGrid() { |
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
307 return new ListGrid(); |
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
308 } |
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
309 |
8a93fb299e64
#288 Added legend symbols to the MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1310
diff
changeset
|
310 |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
311 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
312 * A method that removes all records from theme grid. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
313 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
314 protected void clearGrid() { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
315 ListGridRecord[] records = list.getRecords(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
316 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
317 if (records == null || records.length == 0) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
318 return; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
319 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
320 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
321 for (ListGridRecord record: records) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
322 list.removeData(record); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
323 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
324 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
325 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
326 |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
327 protected Menu getSingleContextMenu(final ListGridRecord[] records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
328 Menu menu = new Menu(); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
329 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
330 menu.addItem(createActivateItem(records)); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
331 menu.addItem(createDeactivateItem(records)); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
332 menu.addItem(createRemoveItem(records)); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
333 menu.addItem(createPropertiesItem(records)); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
334 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
335 return menu; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
336 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
337 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
338 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
339 protected Menu getMultiContextMenu(final ListGridRecord[] records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
340 Menu menu = new Menu(); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
341 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
342 menu.addItem(createActivateItem(records)); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
343 menu.addItem(createDeactivateItem(records)); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
344 menu.addItem(createRemoveItem(records)); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
345 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
346 return menu; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
347 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
348 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
349 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
350 protected MenuItem createPropertiesItem(final ListGridRecord[] records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
351 MenuItem properties = new MenuItem(MSG.properties()); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
352 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
353 properties.addClickHandler(new ClickHandler() { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
354 public void onClick(MenuItemClickEvent evt) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
355 GWT.log("clicked properties"); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
356 for (ListGridRecord record: records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
357 openStyleEditor((FacetRecord) record); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
358 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
359 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
360 }); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
361 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
362 return properties; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
363 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
364 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
365 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
366 protected MenuItem createActivateItem(final ListGridRecord[] records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
367 MenuItem activate = new MenuItem(MSG.activateTheme()); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
368 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
369 activate.addClickHandler(new ClickHandler() { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
370 public void onClick(MenuItemClickEvent evt) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
371 for (ListGridRecord record: records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
372 FacetRecord facet = (FacetRecord) record; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
373 activateTheme(facet.getTheme(), true); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
374 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
375 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
376 updateCollection(); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
377 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
378 }); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
379 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
380 return activate; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
381 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
382 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
383 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
384 protected MenuItem createDeactivateItem(final ListGridRecord[] records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
385 MenuItem deactivate = new MenuItem(MSG.deactivateTheme()); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
386 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
387 deactivate.addClickHandler(new ClickHandler() { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
388 public void onClick(MenuItemClickEvent evt) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
389 for (ListGridRecord record: records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
390 FacetRecord facet = (FacetRecord) record; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
391 activateTheme(facet.getTheme(), false); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
392 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
393 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
394 updateCollection(); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
395 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
396 }); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
397 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
398 return deactivate; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
399 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
400 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
401 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
402 protected MenuItem createRemoveItem(final ListGridRecord[] records) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
403 MenuItem remove = new MenuItem(MSG.removeTheme()); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
404 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
405 remove.addClickHandler(new ClickHandler() { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
406 public void onClick(MenuItemClickEvent evt) { |
1422
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
407 SC.ask(MSG.askThemeRemove(), new BooleanCallback() { |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
408 @Override |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
409 public void execute(Boolean value) { |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
410 if (value) { |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
411 for (ListGridRecord record: records) { |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
412 FacetRecord facet = (FacetRecord) record; |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
413 Theme theme = facet.getTheme(); |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
414 theme.setVisible(0); |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
415 theme.setActive(0); |
1340
290d5687f202
#253 Implemented ThemePanel's 'remove' action.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1338
diff
changeset
|
416 |
1422
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
417 updateCollection(); |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
418 } |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
419 } |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
420 } |
25be27e33b77
#421 Ask the user before removing themes from chart or map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1382
diff
changeset
|
421 }); |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
422 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
423 }); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
424 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
425 return remove; |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
426 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
427 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
428 |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
429 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
430 * This method is called after a cell in the theme grid has been modified. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
431 * |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
432 * @param event The event that stores information about the modified record. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
433 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
434 @Override |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
435 public void onEditComplete(EditCompleteEvent event) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
436 GWT.log("Edited record."); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
437 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
438 int row = event.getRowNum(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
439 FacetRecord rec = (FacetRecord) list.getRecord(row); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
440 |
1331
aa2313e0f18d
#366 Modifications on theme description in theme panels are now persisted to artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1327
diff
changeset
|
441 Theme theme = rec.getTheme(); |
aa2313e0f18d
#366 Modifications on theme description in theme panels are now persisted to artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1327
diff
changeset
|
442 |
aa2313e0f18d
#366 Modifications on theme description in theme panels are now persisted to artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1327
diff
changeset
|
443 theme.setDescription(rec.getName()); |
aa2313e0f18d
#366 Modifications on theme description in theme panels are now persisted to artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1327
diff
changeset
|
444 activateTheme(theme, rec.getActive()); |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
445 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
446 updateCollection(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
447 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
448 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
449 |
1303
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
450 /** |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
451 * This method should be defined in subclasses that wants to listen to this |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
452 * event. |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
453 * |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
454 * @param theme The theme that is moved. |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
455 * @param oldIdx The index of the theme before it was moved. |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
456 * @param newIdx The index of the theme after it was moved. |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
457 */ |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
458 protected void fireThemeMoved(Theme theme, int oldIdx, int newIdx) { |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
459 // TODO Implement in subclasses |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
460 } |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
461 |
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
462 |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
463 @Override |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
464 public void onMove(OnMoveEvent event) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
465 int type = event.getType(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
466 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
467 GWT.log("ThemePanel.onMove: " + type); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
468 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
469 ListGridRecord[] records = list.getSelection(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
470 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
471 if (records == null || records.length == 0) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
472 GWT.log("ThemePanel.onMove: No records selected."); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
473 return; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
474 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
475 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
476 switch (type) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
477 case 0: moveRecordsTop(records); break; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
478 case 1: moveRecordsUp(records); break; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
479 case 2: moveRecordsDown(records); break; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
480 case 3: moveRecordsBottom(records); break; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
481 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
482 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
483 updateCollection(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
484 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
485 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
486 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
487 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
488 * Moves the selected grid records (themes) to the top of the grid. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
489 * |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
490 * @param records The selected themes in the list. Null not permitted. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
491 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
492 protected void moveRecordsTop(ListGridRecord[] records) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
493 ThemeList themeList = getThemeList(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
494 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
495 int idx = 1; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
496 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
497 for (ListGridRecord record: records) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
498 Theme theme = ((FacetRecord) record).getTheme(); |
1303
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
499 fireThemeMoved(theme, theme.getPosition(), idx); |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
500 themeList.setThemePosition(theme, idx++); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
501 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
502 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
503 updateGrid(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
504 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
505 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
506 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
507 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
508 * Moves the selected grid records (themes) one step up. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
509 * |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
510 * @param records The selected themes in the list. Null not permitted. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
511 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
512 protected void moveRecordsUp(ListGridRecord[] records) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
513 ThemeList themeList = getThemeList(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
514 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
515 int[] newPos = new int[records.length]; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
516 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
517 for (int i = 0; i < records.length ; i++) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
518 Theme theme = ((FacetRecord) records[i]).getTheme(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
519 newPos[i] = theme.getPosition() - 1; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
520 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
521 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
522 for (int i = 0; i < records.length ; i++) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
523 Theme theme = ((FacetRecord) records[i]).getTheme(); |
1303
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
524 fireThemeMoved(theme, theme.getPosition(), newPos[i]); |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
525 themeList.setThemePosition(theme, newPos[i]); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
526 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
527 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
528 updateGrid(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
529 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
530 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
531 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
532 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
533 * Moves the selected grid records (themes) one step down. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
534 * |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
535 * @param records The selected themes in the list. Null not permitted. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
536 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
537 protected void moveRecordsDown(ListGridRecord[] records) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
538 ThemeList themeList = getThemeList(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
539 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
540 int[] newPos = new int[records.length]; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
541 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
542 for (int i = records.length-1; i >= 0; i--) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
543 Theme theme = ((FacetRecord) records[i]).getTheme(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
544 newPos[i] = theme.getPosition()+1; |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
545 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
546 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
547 for (int i = records.length-1; i >= 0; i--) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
548 Theme theme = ((FacetRecord) records[i]).getTheme(); |
1303
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
549 fireThemeMoved(theme, theme.getPosition(), newPos[i]); |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
550 themeList.setThemePosition(theme, newPos[i]); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
551 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
552 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
553 updateGrid(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
554 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
555 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
556 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
557 /** |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
558 * Moves the selected grid records (themes) to the bottom of the grid. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
559 * |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
560 * @param records The selected themes in the list. Null not permitted. |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
561 */ |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
562 protected void moveRecordsBottom(ListGridRecord[] records) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
563 ThemeList themeList = getThemeList(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
564 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
565 int idx = themeList.getThemeCount(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
566 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
567 for (int i = records.length-1; i >= 0; i--) { |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
568 Theme theme = ((FacetRecord) records[i]).getTheme(); |
1303
84c50f1d939b
Added the option for the MapThemePanel to listen to Theme move events.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
911
diff
changeset
|
569 fireThemeMoved(theme, theme.getPosition(), idx); |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
570 themeList.setThemePosition(theme, idx--); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
571 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
572 |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
573 updateGrid(); |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
574 } |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
575 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
576 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
577 protected void openStyleEditor(final FacetRecord record) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
578 Config config = Config.getInstance(); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
579 String locale = config.getLocale(); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
580 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
581 String artifact = record.getTheme().getArtifact(); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
582 |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
583 itemAttributeService.getCollectionItemAttribute( |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
584 this.collection, |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
585 artifact, |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
586 locale, |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
587 new AsyncCallback<CollectionItemAttribute>() { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
588 public void onFailure (Throwable caught) { |
1310
c4c957a9c092
Improved exception handling while fetching theme styles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1309
diff
changeset
|
589 SC.warn(MSG.getString(caught.getMessage())); |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
590 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
591 public void onSuccess(CollectionItemAttribute cia) { |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
592 GWT.log("Successfully loaded collectionitem attributes."); |
1336
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
593 showStyleEditor(cia, record); |
1309
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
594 } |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
595 }); |
a95e82d6bcc1
Refactored the code to create a context menu and a style editor so that it is also available for maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1303
diff
changeset
|
596 } |
1336
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
597 |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
598 |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
599 protected void showStyleEditor( |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
600 CollectionItemAttribute cia, |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
601 FacetRecord record) |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
602 { |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
603 StyleEditorWindow win = new StyleEditorWindow( |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
604 collection, |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
605 cia, |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
606 record); |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
607 win.setThemePanel(this); |
1338
c730f0438510
Set window position to page center.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1336
diff
changeset
|
608 win.centerInPage(); |
1336
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
609 win.show(); |
ceb989d64cd2
Request redraw on style attribute change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1331
diff
changeset
|
610 } |
805
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
611 } |
f43d06d6a4a2
Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
612 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |