annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartThemePanel.java @ 1514:b6af10d5f3da

Partial flys/issue441. flys-client/trunk@3663 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 12 Jan 2012 12:33:25 +0000
parents 0ba23e6fef0c
children a9388fba0b46
rev   line source
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.chart;
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
5 import com.google.gwt.user.client.rpc.AsyncCallback;
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
7 import com.smartgwt.client.types.ListGridFieldType;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
8
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
9 import com.smartgwt.client.widgets.grid.ListGridField;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
10 import com.smartgwt.client.widgets.grid.ListGridRecord;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
11 import com.smartgwt.client.widgets.layout.VLayout;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
12 import com.smartgwt.client.widgets.menu.events.ClickHandler;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
13
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
14 import com.smartgwt.client.widgets.menu.Menu;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
15 import com.smartgwt.client.widgets.menu.MenuItem;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
16 import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
17
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
18 import com.smartgwt.client.util.SC;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
19
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
20 import de.intevation.flys.client.shared.model.Artifact;
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.client.shared.model.Collection;
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
22 import de.intevation.flys.client.shared.model.Data;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
23 import de.intevation.flys.client.shared.model.DefaultData;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
24 import de.intevation.flys.client.shared.model.DefaultArtifact;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
25 import de.intevation.flys.client.shared.model.FacetRecord;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
26 import de.intevation.flys.client.shared.model.OutputMode;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
27 import de.intevation.flys.client.shared.model.Recommendation;
524
ba238f917b94 The theme list information stored in the attribute of a collection is read and added in form of Themes and ThemeLists to the Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 523
diff changeset
28 import de.intevation.flys.client.shared.model.Theme;
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
29 import de.intevation.flys.client.shared.model.ThemeList;
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
31 import de.intevation.flys.client.client.Config;
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 import de.intevation.flys.client.client.FLYSConstants;
1474
0ba23e6fef0c Refactored, set collectionview in Themepanels constructors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1469
diff changeset
33 import de.intevation.flys.client.client.ui.CollectionView;
805
f43d06d6a4a2 Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 804
diff changeset
34 import de.intevation.flys.client.client.ui.ThemePanel;
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
854
67c678903280 Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 805
diff changeset
36 import de.intevation.flys.client.client.services.FeedService;
67c678903280 Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 805
diff changeset
37 import de.intevation.flys.client.client.services.FeedServiceAsync;
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
39 import de.intevation.flys.client.client.services.LoadArtifactService;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
40 import de.intevation.flys.client.client.services.LoadArtifactServiceAsync;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
41
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
42
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 /**
1430
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
44 * ThemePanel on the left in CollectionView.
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
45 * Contains control widgets for "themes", which are plotted in a diagram (chart).
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
46 *
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 */
805
f43d06d6a4a2 Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 804
diff changeset
49 public class ChartThemePanel extends ThemePanel {
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
50 /** Artifact Clone/Creation service. */
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
51 protected LoadArtifactServiceAsync loadService =
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
52 GWT.create(LoadArtifactService.class);
805
f43d06d6a4a2 Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 804
diff changeset
53
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 /** The interface that provides i18n messages. */
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 854
diff changeset
55 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
526
96e60e0a4345 Added a service stub to update/modify the attribute of a collection (used in the theme control panel).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 524
diff changeset
56
1286
b643622d77fe Added context menu to themes list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 891
diff changeset
57 /** The collection */
b643622d77fe Added context menu to themes list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 891
diff changeset
58 protected Collection collection;
b643622d77fe Added context menu to themes list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 891
diff changeset
59
854
67c678903280 Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 805
diff changeset
60 public static final String GRID_FIELD_ACTIVE = "active";
67c678903280 Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 805
diff changeset
61 public static final String GRID_FIELD_NAME = "name";
67c678903280 Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 805
diff changeset
62 public static final String GRID_FIELD_ACTIONS = "actions";
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
854
67c678903280 Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 805
diff changeset
64 FeedServiceAsync feedService = GWT.create(
67c678903280 Refactored to allow specialized controls within the ChartThemePanel, stubby
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 805
diff changeset
65 de.intevation.flys.client.client.services.FeedService.class);
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
67
1474
0ba23e6fef0c Refactored, set collectionview in Themepanels constructors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1469
diff changeset
68 public ChartThemePanel(
0ba23e6fef0c Refactored, set collectionview in Themepanels constructors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1469
diff changeset
69 Collection collection,
0ba23e6fef0c Refactored, set collectionview in Themepanels constructors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1469
diff changeset
70 OutputMode mode,
0ba23e6fef0c Refactored, set collectionview in Themepanels constructors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1469
diff changeset
71 CollectionView view
0ba23e6fef0c Refactored, set collectionview in Themepanels constructors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1469
diff changeset
72 ) {
0ba23e6fef0c Refactored, set collectionview in Themepanels constructors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1469
diff changeset
73 super(collection, mode, view);
1286
b643622d77fe Added context menu to themes list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 891
diff changeset
74 this.collection = collection;
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 initGrid();
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 initLayout();
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 updateGrid();
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 }
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82
1514
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
83 /** Creates Layout with theme list and navigation bar inside. */
1430
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
84 protected VLayout createLayout() {
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
85 VLayout layout = new VLayout();
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
86 layout.setWidth100();
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
87 layout.setHeight100();
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
88
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
89 layout.addMember(list);
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
90 layout.addMember(navigation);
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
91
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
92 return layout;
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
93 }
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
94
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
95
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 /**
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 * Initializes the layout of this panel.
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 */
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 protected void initLayout() {
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 setWidth100();
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 setHeight100();
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102
1430
6bb6d43eeb2d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1309
diff changeset
103 addChild(createLayout());
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 }
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 /**
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 * Initializes the components (columns) of the theme grid.
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 */
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 protected void initGrid() {
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 list.setCanEdit(true);
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 list.setCanSort(false);
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 854
diff changeset
113 list.setShowRecordComponents(false);
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 list.setShowRecordComponentsByCell(true);
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 list.setShowHeader(true);
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 list.setShowHeaderContextMenu(false);
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 list.setWidth100();
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 list.setHeight100();
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 list.addEditCompleteHandler(this);
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121
1288
17bff7b27052 Bugfix: #357 Removed header title of selection column.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
122 ListGridField active = new ListGridField(GRID_FIELD_ACTIVE, " ", 20);
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 active.setType(ListGridFieldType.BOOLEAN);
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 ListGridField name = new ListGridField(
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 GRID_FIELD_NAME, MSG.chart_themepanel_header_themes());
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 name.setType(ListGridFieldType.TEXT);
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 854
diff changeset
129 list.setFields(active, name);
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 }
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132
1460
dfe884cc24a4 Allow other.wkms facets to be created areas with.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1457
diff changeset
133 /** Set theme active/inactive. */
805
f43d06d6a4a2 Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 804
diff changeset
134 @Override
f43d06d6a4a2 Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 804
diff changeset
135 public void activateTheme(Theme theme, boolean active) {
f43d06d6a4a2 Refactored code of theme panel and added a MapThemePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 804
diff changeset
136 theme.setActive(active ? 1 : 0);
527
902609b5cc79 Added a navigation panel to the bottom of the theme control panel to move themes up/down (function not implemented yet).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 526
diff changeset
137 }
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
138
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
139
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1456
diff changeset
140 /** Returns name of longitudinal section area facets. */
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1456
diff changeset
141 protected String getAreaFacetName() {
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1456
diff changeset
142 return "longitudinal_section.area";
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1456
diff changeset
143 }
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1456
diff changeset
144
1514
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
145 public static String areaKey(Theme theme) {
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
146 return theme.getArtifact() + ":" + theme.getFacet() + ":"
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
147 + theme.getIndex();
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
148 }
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
149
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1456
diff changeset
150
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
151 /**
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
152 * Tell an area artifact where to get the upper and lower curve from.
1462
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
153 * @param artifact UUID of area-artifact.
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
154 */
1462
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
155 public void feedTellArea(
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
156 final String artifact,
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
157 Theme under,
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
158 Theme over,
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
159 boolean between
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
160 ) {
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
161
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
162 Data[] feedData;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
163
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
164 if (over != null && under != null) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
165 feedData = new Data[] {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
166 DefaultData.createSimpleStringData("area.curve_under",
1514
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
167 areaKey(under)),
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
168 DefaultData.createSimpleStringData("area.curve_over",
1514
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
169 areaKey(over)),
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
170 DefaultData.createSimpleStringData("area.name",
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
171 over.getDescription() + " / " + under.getDescription()),
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
172 DefaultData.createSimpleStringData("area.facet",
1462
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
173 getAreaFacetName()),
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
174 DefaultData.createSimpleStringData("area.between",
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
175 (between)? "true" : "false")
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
176 };
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
177 GWT.log("Have over and under");
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
178 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
179 else if (over == null && under != null) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
180 feedData = new Data[] {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
181 DefaultData.createSimpleStringData("area.curve_under",
1514
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
182 areaKey(under)),
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
183 DefaultData.createSimpleStringData("area.name",
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
184 under.getDescription() + " / " + MSG.getString("x_axis")),
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
185 DefaultData.createSimpleStringData("area.facet",
1462
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
186 getAreaFacetName()),
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
187 DefaultData.createSimpleStringData("area.between",
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
188 (between)? "true" : "false")
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
189 };
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
190 GWT.log("Have under only");
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
191 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
192 else if (over != null && under == null) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
193 feedData = new Data[] {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
194 DefaultData.createSimpleStringData("area.curve_over",
1514
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
195 areaKey(over)),
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
196 DefaultData.createSimpleStringData("area.name",
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
197 MSG.getString("x_axis") + " / " + over.getDescription()),
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
198 DefaultData.createSimpleStringData("area.facet",
1462
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
199 getAreaFacetName()),
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
200 DefaultData.createSimpleStringData("area.between",
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
201 (between)? "true" : "false")
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
202 };
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
203 GWT.log("Have over only");
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
204 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
205 else {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
206 GWT.log("Missing Data for area painting.");
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
207 return;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
208 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
209
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
210
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
211 feedService.feed(
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
212 Config.getInstance().getLocale(),
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
213 new DefaultArtifact(artifact, "TODO:hash"),
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
214 feedData,
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
215 new AsyncCallback<Artifact>() {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
216 public void onFailure(Throwable caught) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
217 GWT.log("Could not feed artifact (" + artifact
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
218 + ") with area info: " + caught.getMessage());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
219 SC.warn(MSG.getString(caught.getMessage()));
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
220 enable();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
221 }
1514
b6af10d5f3da Partial flys/issue441.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
222 public void onSuccess(Artifact fartifact) {
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
223 GWT.log("Successfully set area params to " + artifact);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
224 requestRedraw();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
225 updateCollection();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
226 updateGrid();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
227 enable();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
228 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
229 });
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
230 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
231
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
232
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
233 /**
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
234 * Create and parameterize a new area artifact.
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
235 * @param under
1462
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
236 * @param over if null, against axis.
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
237 * @param between if true, ignore under/over order.
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
238 */
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
239 public void createAreaArtifact(
1462
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
240 final Theme over,
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
241 final Theme under,
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
242 final boolean between
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
243 ) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
244 Config config = Config.getInstance();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
245 String locale = config.getLocale();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
246
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
247 Recommendation area = new Recommendation(
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
248 "area",
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
249 "",
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
250 "",
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
251 null);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
252 Recommendation[] recommendations = new Recommendation[] {area};
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
253
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
254 loadService.loadMany(
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
255 this.collection,
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
256 recommendations,
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
257 null, //use individual factories.
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
258 locale,
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
259 new AsyncCallback<Artifact[]>() {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
260 public void onFailure(Throwable caught) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
261 GWT.log("Failed, no area artifact: " + caught.getMessage());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
262 enable();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
263 // TODO SC.warn
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
264 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
265 public void onSuccess(Artifact[] artifacts) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
266 GWT.log("Success, created area artifact: "
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
267 + artifacts[0].getUuid());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
268 // Now, feed the artifact with the relevant data.
1462
a346db45c830 Feed new parameter to area artifact, fix reversed assignment of under/over curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1460
diff changeset
269 feedTellArea(artifacts[0].getUuid(), under, over, between);
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
270 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
271 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
272 );
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
273 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
274
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
275
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
276 /**
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
277 * Return true if two themes are canditates for an area being
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
278 * rendered between them.
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
279 * TODO join with canArea, generalize to allow easier modification
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
280 * in subclasses.
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
281 */
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
282 protected boolean areAreaCompatible(Theme a, Theme b) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
283 if (a.equals(b)) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
284 return false;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
285 }
1460
dfe884cc24a4 Allow other.wkms facets to be created areas with.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1457
diff changeset
286 if (a.getFacet().equals("longitudinal_section.w") ||
dfe884cc24a4 Allow other.wkms facets to be created areas with.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1457
diff changeset
287 a.getFacet().equals("other.wkms")) {
dfe884cc24a4 Allow other.wkms facets to be created areas with.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1457
diff changeset
288 return b.getFacet().equals("longitudinal_section.w")
dfe884cc24a4 Allow other.wkms facets to be created areas with.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1457
diff changeset
289 || b.getFacet().equals("other.wkms");
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
290 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
291 else if (a.getFacet().equals("longitudinal_section.q")) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
292 return b.getFacet().equals("longitudinal_section.q");
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
293 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
294 return false;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
295 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
296
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
297
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
298 /**
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
299 * True if context menu should contain 'create area' submenu on
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
300 * this theme.
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
301 */
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
302 protected boolean canArea(Theme a) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
303 return a.getFacet().equals("longitudinal_section.q")
1460
dfe884cc24a4 Allow other.wkms facets to be created areas with.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1457
diff changeset
304 || a.getFacet().equals("longitudinal_section.w")
dfe884cc24a4 Allow other.wkms facets to be created areas with.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1457
diff changeset
305 || a.getFacet().equals("other.wkms");
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
306 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
307
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
308
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
309 /**
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
310 * Include area specific menu items.
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
311 */
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
312 protected Menu getSingleContextMenu(final ListGridRecord[] records) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
313 Menu menu = super.getSingleContextMenu(records);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
314
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
315 final Theme facetTheme = ((FacetRecord)records[0]).getTheme();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
316 String thisItem = facetTheme.getDescription();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
317 if (!canArea(facetTheme)) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
318 return menu;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
319 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
320
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
321 menu.addItem(createSeparator());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
322
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
323 MenuItem areaMenuItem = new MenuItem(MSG.chart_themepanel_new_area());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
324 Menu areaMenu = new Menu();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
325
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
326 ThemeList themes = getThemeList();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
327 int nThemes = themes.getThemeCount();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
328
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
329 MenuItem underMenuItem = new MenuItem(MSG.chart_themepanel_area_under());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
330 Menu underMenu = new Menu();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
331 for (int i = 0; i < nThemes; i++) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
332 final Theme theme = themes.getThemeAt(i+1);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
333 if (!areAreaCompatible(facetTheme, theme)) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
334 continue;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
335 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
336 MenuItem againster = new MenuItem(theme.getDescription());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
337 underMenu.addItem(againster);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
338
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
339 againster.addClickHandler(new ClickHandler() {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
340 public void onClick(MenuItemClickEvent evt) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
341 disable();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
342 createAreaArtifact(theme, facetTheme, false);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
343 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
344 });
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
345 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
346
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
347 MenuItem overMenuItem = new MenuItem(MSG.chart_themepanel_area_over());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
348 Menu overMenu = new Menu();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
349 for (int i = 0; i < nThemes; i++) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
350 final Theme theme = themes.getThemeAt(i+1);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
351 if (!areAreaCompatible(facetTheme, theme)) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
352 continue;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
353 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
354 MenuItem againster = new MenuItem(theme.getDescription());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
355 overMenu.addItem(againster);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
356
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
357 againster.addClickHandler(new ClickHandler() {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
358 public void onClick(MenuItemClickEvent evt) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
359 disable();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
360 createAreaArtifact(facetTheme, theme, false);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
361 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
362 });
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
363 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
364 overMenu.addItem(createSeparator());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
365 MenuItem againstAxis = new MenuItem(MSG.getString("x_axis"));
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
366 againstAxis.addClickHandler(new ClickHandler() {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
367 public void onClick(MenuItemClickEvent evt) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
368 disable();
1469
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
369 createAreaArtifact(null, facetTheme, false);
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
370 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
371 });
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
372 overMenu.addItem(againstAxis);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
373
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
374 MenuItem betweenMenuItem = new MenuItem(MSG.chart_themepanel_area_between());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
375 Menu betweenMenu = new Menu();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
376 for (int i = 0; i < nThemes; i++) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
377 final Theme theme = themes.getThemeAt(i+1);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
378 if (!areAreaCompatible(facetTheme, theme)) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
379 continue;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
380 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
381 MenuItem againster = new MenuItem(theme.getDescription());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
382 betweenMenu.addItem(againster);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
383
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
384 againster.addClickHandler(new ClickHandler() {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
385 public void onClick(MenuItemClickEvent evt) {
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
386 disable();
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
387 createAreaArtifact(facetTheme, theme, true);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
388 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
389 });
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
390 }
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
391 betweenMenu.addItem(createSeparator());
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
392 betweenMenu.addItem(againstAxis);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
393
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
394 overMenuItem.setSubmenu(overMenu);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
395 underMenuItem.setSubmenu(underMenu);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
396 betweenMenuItem.setSubmenu(betweenMenu);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
397
1469
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
398 areaMenu.addItem(betweenMenuItem);
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
399 areaMenu.addItem(overMenuItem);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
400 areaMenu.addItem(underMenuItem);
1469
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
401 areaMenu.addItem(createSeparator());
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
402 MenuItem standAloneAgainstAxis = new MenuItem(MSG.getString("against_x_axis"));
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
403 standAloneAgainstAxis.addClickHandler(new ClickHandler() {
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
404 public void onClick(MenuItemClickEvent evt) {
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
405 disable();
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
406 createAreaArtifact(null, facetTheme, false);
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
407 }
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
408 });
31d0557f31a2 Fix over axis menu item, added standalone 'over axis' menu item.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1462
diff changeset
409 areaMenu.addItem(standAloneAgainstAxis);
1456
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
410
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
411 areaMenuItem.setSubmenu(areaMenu);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
412 menu.addItem(areaMenuItem);
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
413
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
414 return menu;
1c2cd46d526d Have 'area' context menu in Longitudinal-Section diagrams themepanels, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1430
diff changeset
415 }
523
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
416 }
0785a8ba5e6d Implemented the first step of a theme control panel for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
417 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org