annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/CrossSectionChartThemePanel.java @ 2490:4d93f9255caa

Improve km-Spinner behaviour, allow text input (alpha). flys-client/trunk@4283 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 20 Apr 2012 09:29:03 +0000
parents 8d27d2d33d70
children 18e59b0b4a71
rev   line source
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.chart;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
3 import java.util.ArrayList;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
4 import java.util.HashMap;
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
5 import java.util.HashSet;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
6 import java.util.Map;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
7 import java.util.LinkedHashMap;
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
8 import java.util.List;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
9
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10 import com.google.gwt.core.client.GWT;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
12 import com.google.gwt.user.client.rpc.AsyncCallback;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
13
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
14 import com.smartgwt.client.util.SC;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
15
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
16 import com.smartgwt.client.types.ListGridFieldType;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
17
2484
6f30bbd98618 Small fix for retrieving closest km.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2482
diff changeset
18 import com.smartgwt.client.widgets.Button;
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.Canvas;
2484
6f30bbd98618 Small fix for retrieving closest km.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2482
diff changeset
20 import com.smartgwt.client.widgets.Label;
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 import com.smartgwt.client.widgets.grid.ListGrid;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 import com.smartgwt.client.widgets.grid.ListGridField;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 import com.smartgwt.client.widgets.grid.ListGridRecord;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24 import com.smartgwt.client.widgets.layout.HLayout;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
25 import com.smartgwt.client.widgets.layout.VLayout;
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 import com.smartgwt.client.widgets.form.fields.SpinnerItem;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27 import com.smartgwt.client.widgets.form.DynamicForm;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
28
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
29 import com.smartgwt.client.widgets.form.fields.SelectItem;
2490
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
30 import com.smartgwt.client.widgets.form.fields.TextItem;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
31 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
34 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
36 import com.smartgwt.client.widgets.menu.Menu;
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
37 import com.smartgwt.client.widgets.menu.MenuItem;
2484
6f30bbd98618 Small fix for retrieving closest km.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2482
diff changeset
38
6f30bbd98618 Small fix for retrieving closest km.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2482
diff changeset
39 import com.smartgwt.client.widgets.events.ClickEvent;
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
40 import com.smartgwt.client.widgets.menu.events.ClickHandler;
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
41 import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent;
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
42
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43 import de.intevation.flys.client.client.Config;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 import de.intevation.flys.client.shared.model.Artifact;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45 import de.intevation.flys.client.shared.model.Data;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46 import de.intevation.flys.client.shared.model.DefaultArtifact;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 import de.intevation.flys.client.shared.model.DefaultData;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 import de.intevation.flys.client.shared.model.FacetRecord;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
49 import de.intevation.flys.client.shared.model.OutputMode;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
50 import de.intevation.flys.client.shared.model.Theme;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
51 import de.intevation.flys.client.shared.model.ThemeList;
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
53 import de.intevation.flys.client.client.services.CrossSectionKMServiceAsync;
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
54 import de.intevation.flys.client.client.services.LoadArtifactService;
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
55 import de.intevation.flys.client.client.services.LoadArtifactServiceAsync;
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
56
1472
a2b0b2af529f Tell master-artifact of collection when cross-section-master changed kilometer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1470
diff changeset
57 import de.intevation.flys.client.client.ui.CollectionView;
a2b0b2af529f Tell master-artifact of collection when cross-section-master changed kilometer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1470
diff changeset
58
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
59
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60 /**
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 * ThemePanel much like ChartThemePanel, but shows an "Actions" column,
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
62 * needed for interaction in the CrossSection Charts and a selector to
2481
37438d7228b4 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2464
diff changeset
63 * declare which cross section profile is "master" (waterlevels refer to the
37438d7228b4 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2464
diff changeset
64 * chosen kilometer of that cross section profile).
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
65 * Also can show 'area creation' context menus.
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66 */
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67 public class CrossSectionChartThemePanel
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 extends ChartThemePanel {
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
69 /** Artifact Clone/Creation service. */
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
70 protected LoadArtifactServiceAsync loadService =
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
71 GWT.create(LoadArtifactService.class);
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
73 /** Service to query measurement points of cross sections. */
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
74 CrossSectionKMServiceAsync kmService = GWT.create(
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
75 de.intevation.flys.client.client.services.CrossSectionKMService.class);
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
76
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
77 /** UUID of the current "master" cross section. */
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
78 protected String currentCSMasterUUID;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
79
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
80 /** The layout (used for visual active/inactive feedback). */
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
81 protected VLayout layout;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
82
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
83 /** Data item name for CrossSections selected km. */
1476
edf18a9dfd8b Uncommented some code paths to avoid unwanted side effects, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1475
diff changeset
84 protected static String CS_KM = "cross_section.km";
edf18a9dfd8b Uncommented some code paths to avoid unwanted side effects, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1475
diff changeset
85
edf18a9dfd8b Uncommented some code paths to avoid unwanted side effects, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1475
diff changeset
86 /** Data item name for CrossSections selected km. */
edf18a9dfd8b Uncommented some code paths to avoid unwanted side effects, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1475
diff changeset
87 protected static String CS_IS_MASTER = "cross_section.master?";
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
88
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
89 /** List of cross-section themes through which is moved through synchronously. */
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
90 protected HashSet synchronCrossSectionThemes = new HashSet();
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
91
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
92 /** Data for master artifact combobox.*/
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
93 protected LinkedHashMap<String, String> masters;
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
94
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
95 /** Combobox for master artifacts.*/
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
96 protected SelectItem masterCb;
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
97
1573
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
98
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 /**
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100 * Trivial constructor.
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
101 */
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102 public CrossSectionChartThemePanel(
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
103 OutputMode mode,
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
104 CollectionView view)
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
105 {
1555
c057ef91b268 Refactored Collection reference out of Panels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1533
diff changeset
106 super(mode, view);
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
107 }
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
108
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
109
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
110 /** Create DefaultArtifact. */
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
111 public static DefaultArtifact artifactReference(String uuid) {
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
112 return new DefaultArtifact(uuid, "TODO:hash");
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
113 }
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
114
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
115
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
116 /** Access data of collection item of theme. */
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
117 public static String dataOf(Theme theme, String dataItemName) {
1578
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
118 if (theme != null && theme.getCollectionItem() != null
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
119 && theme.getCollectionItem().getData() != null
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
120 ) {
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
121 return theme.getCollectionItem().getData().get(dataItemName);
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
122 }
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
123
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
124 return null;
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
128 /**
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
129 * Feed an artifact to let it know that it is master wrt cross-sections.
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
130 * @param artifact uuid of an artifact.
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
131 */
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
132 public void feedTellMaster(final String artifact) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
133 Data[] feedData = DefaultData.createSimpleStringDataArray(
1476
edf18a9dfd8b Uncommented some code paths to avoid unwanted side effects, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1475
diff changeset
134 CS_IS_MASTER, "1");
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
135
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
136 feedService.feed(
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
137 Config.getInstance().getLocale(),
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
138 artifactReference(artifact),
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
139 feedData,
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
140 new AsyncCallback<Artifact>() {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
141 public void onFailure(Throwable caught) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
142 GWT.log("Could not feed artifact (" + artifact
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
143 + ") with master marker: " + caught.getMessage());
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
144 SC.warn(MSG.getString(caught.getMessage()));
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
145 enable();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
146 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
147 public void onSuccess(Artifact artifact) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
148 GWT.log("Successfully injected master mark to " + artifact);
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
149 setCurrentCSMaster(artifact.getUuid());
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
150 requestRedraw();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
151 enable();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
152 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
153 });
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
154 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
155
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
156
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
157 /**
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
158 * Sets currentCSMasterUUID.
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
159 */
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
160 public String findCurrentCSMaster() {
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
161 ThemeList themeList = getThemeList();
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
162 int count = getThemeList().getThemeCount();
1445
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
163 String firstCSUuid = null;
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
164 Theme firstCS = null;
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
165 for (int i = 1; i <= count; i++) {
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
166 Theme theme = themeList.getThemeAt(i);
1476
edf18a9dfd8b Uncommented some code paths to avoid unwanted side effects, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1475
diff changeset
167 String value = dataOf(theme, CS_IS_MASTER);
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
168
1445
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
169 if (value != null) {
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
170 if (firstCSUuid == null) {
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
171 firstCSUuid = theme.getArtifact();
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
172 firstCS = theme;
1445
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
173 }
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
174 if (!value.equals("0")) {
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
175 setCurrentCSMaster(theme.getArtifact());
1472
a2b0b2af529f Tell master-artifact of collection when cross-section-master changed kilometer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1470
diff changeset
176 GWT.log("found a master: " + currentCSMasterUUID
a2b0b2af529f Tell master-artifact of collection when cross-section-master changed kilometer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1470
diff changeset
177 + "/" + theme.getDescription());
1445
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
178 return theme.getDescription();
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
179 }
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
180 }
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
181 }
1445
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
182 // There is none selected. Take the first one.
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
183 if (firstCSUuid != null) {
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
184 setCurrentCSMaster(firstCSUuid);
1445
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
185 feedTellMaster(firstCSUuid);
df7ebcbff984 Bugfixing and feature-adding for cross-sections/areas.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1444
diff changeset
186 }
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
187 return null;
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
188 }
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
189
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
190
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
191 /**
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
192 * Create Layout, add a master selection box beneath.
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
193 */
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
194 @Override
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
195 protected VLayout createLayout() {
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
196 layout = super.createLayout();
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
197
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
198 // Create "set master" combobox.
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
199 masterCb = new SelectItem();
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
200
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
201 masterCb.setTitle(MSG.chart_themepanel_set_master());
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
202 masterCb.setType("comboBox");
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
203 masters = getThemeList().toMapArtifactUUIDDescription("cross_section");
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
204 masterCb.setValueMap(masters);
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
205
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
206 final DynamicForm form = new DynamicForm();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
207 form.setWidth(200);
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
208 form.setFields(masterCb);
2462
d45059aa8507 i18n and moved reference selectbox for cross section master to top.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2453
diff changeset
209 layout.addMember(form, 0);
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
210
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
211 Config config = Config.getInstance();
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
212 final String locale = config.getLocale();
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
213 findCurrentCSMaster();
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
214 masterCb.setValue(getCurrentCSMaster());
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
215
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
216 // Add Change Handler to first unset the old master and then set the
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
217 // new master.
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
218 masterCb.addChangeHandler(new ChangeHandler() {
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
219 public void onChange(ChangeEvent event) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
220 String selectedItem = (String) event.getValue();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
221 final String artifact = selectedItem;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
222
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
223 disable();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
224
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
225 // Tell current master that he is not master anymore.
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
226 if (getCurrentCSMaster() != null) {
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
227 Data[] feedData = DefaultData.createSimpleStringDataArray(
1476
edf18a9dfd8b Uncommented some code paths to avoid unwanted side effects, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1475
diff changeset
228 CS_IS_MASTER, "0");
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
229 feedService.feed(
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
230 locale,
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
231 artifactReference(getCurrentCSMaster()),
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
232 feedData,
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
233 new AsyncCallback<Artifact>() {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
234 public void onFailure(Throwable caught) {
1573
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
235 GWT.log("Could not un-master artifact ("
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
236 + getCurrentCSMaster() + "): " +
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
237 caught.getMessage());
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
238 SC.warn(MSG.getString(caught.getMessage()));
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
239 enable();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
240 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
241 public void onSuccess(Artifact oldMaster) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
242 GWT.log("Successfully un-mastered artifact.");
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
243 feedTellMaster(artifact);
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
244 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
245 });
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
246 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
247 else {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
248 feedTellMaster(artifact);
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
249 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
250 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
251 });
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
252
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
253 return layout;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
254 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
255
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
256
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
257 /** Disable the UI (becomes gray, inresponsive to user input). */
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
258 public void disable() {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
259 this.layout.setDisabled(true);
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
260 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
261
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
262
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
263 /** DisDisable the UI (becomes ungray, responsive to user input). */
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
264 public void enable() {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
265 this.layout.setDisabled(false);
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
266 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
267
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
268
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
269 /**
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
270 * Returns a double from the list that has the smallest distance to the
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
271 * given to value. In case of multiple values with the same difference,
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
272 * the last one is taken.
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
273 * @param in possible return values.
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
274 * @param to the value to be as close to as possible.
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
275 * @return value from in that is closest to to, -1 if none.
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
276 */
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
277 public static double closest(Double[] in, double to) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
278 if (in == null || in.length == 0) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
279 return -1;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
280 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
281 if (in[0] == to) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
282 return to;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
283 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
284 double minDiff = Math.abs(to - in[0]);
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
285 double bestMatch = in[0];
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
286 for (int i = 1; i < in.length; i++) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
287 if (in[i] == to) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
288 return to;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
289 }
2484
6f30bbd98618 Small fix for retrieving closest km.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2482
diff changeset
290 double diff = Math.abs(to - in[i]);
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
291 if (diff < minDiff) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
292 minDiff = diff;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
293 bestMatch = in[i];
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
294 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
295 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
296 return bestMatch;
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
297 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
298
1573
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
299
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
300 /**
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
301 * Feed a single artifact with the km of the crosssection to display.
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
302 * If its the selected master, also feed the collectionmaster.
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
303 *
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
304 * @param artifacts List of artifacts to feed.
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
305 * @param kmD The km to set.
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
306 */
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
307 public void sendFeed(final List<Artifact> artifacts, final double kmD) {
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
308 Config config = Config.getInstance();
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
309 final String locale = config.getLocale();
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
310
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
311 Data[] feedData =
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
312 DefaultData.createSimpleStringDataArray(CS_KM,
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
313 Double.valueOf(kmD).toString());
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
314
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
315 disable();
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
316 feedService.feedMany(
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
317 locale,
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
318 artifacts,
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
319 feedData,
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
320 new AsyncCallback<List<Artifact>>() {
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
321 @Override
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
322 public void onFailure(Throwable caught) {
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
323 GWT.log("Could not feed many artifacts " + caught.getMessage());
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
324 SC.warn(MSG.getString(caught.getMessage()));
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
325 enable();
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
326 }
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
327 @Override
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
328 public void onSuccess(List<Artifact> artifact) {
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
329 GWT.log("Successfully fed many with km");
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
330 requestRedraw();
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
331 enable();
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
332 }
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
333 });
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
334 }
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
335
1573
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
336
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
337 /**
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
338 * Feed a single artifact with the km of the crosssection to display.
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
339 * If its the selected master, also feed the collectionmaster.
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
340 * @param artUUID The UUID of the artifact to feed.
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
341 * @param kmD The km to set.
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
342 */
1472
a2b0b2af529f Tell master-artifact of collection when cross-section-master changed kilometer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1470
diff changeset
343 public void sendFeed(final String artUUID, final double kmD) {
a2b0b2af529f Tell master-artifact of collection when cross-section-master changed kilometer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1470
diff changeset
344 Config config = Config.getInstance();
a2b0b2af529f Tell master-artifact of collection when cross-section-master changed kilometer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1470
diff changeset
345 final String locale = config.getLocale();
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
346
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
347 Data[] feedData =
1476
edf18a9dfd8b Uncommented some code paths to avoid unwanted side effects, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1475
diff changeset
348 DefaultData.createSimpleStringDataArray(CS_KM,
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
349 Double.valueOf(kmD).toString());
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
350
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
351 disable();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
352 feedService.feed(
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
353 locale,
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
354 artifactReference(artUUID),
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
355 feedData,
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
356 new AsyncCallback<Artifact>() {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
357 @Override
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
358 public void onFailure(Throwable caught) {
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
359 GWT.log("Could not feed artifact " + caught.getMessage());
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
360 SC.warn(MSG.getString(caught.getMessage()));
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
361 enable();
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
362 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
363 @Override
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
364 public void onSuccess(Artifact artifact) {
1472
a2b0b2af529f Tell master-artifact of collection when cross-section-master changed kilometer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1470
diff changeset
365 GWT.log("Successfully fed with km");
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
366 requestRedraw();
1496
a882297ce63d Changed CrossSection spinner-stepsize, adjusted km- and mastersetting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1476
diff changeset
367 enable();
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
368 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
369 });
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
370 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
371
1573
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
372
2443
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
373 /** Remove the themes, also from the master (reference) select box. */
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
374 @Override
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
375 protected void removeThemes(final ListGridRecord[] records) {
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
376 // TODO take care of what happens if that was the last
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
377 // cross section and/or the cross section currently selected as master.
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
378 for (ListGridRecord record: records) {
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
379 FacetRecord facet = (FacetRecord) record;
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
380 Theme theme = facet.getTheme();
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
381 masters.remove(theme.getArtifact());
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
382 }
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
383 masterCb.setValueMap(masters);
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
384 super.removeThemes(records);
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
385 }
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
386
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
387
2482
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
388 /**
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
389 * Callback for when a value has been accepted in the km-spinner
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
390 * of a Cross-Section Profile theme.
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
391 * @param item The SpinnerItem which was manipulated.
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
392 * @param enteredKm The double-parsed value that has been entered.
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
393 * @param facetRecord The underlying datastores record.
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
394 */
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
395 public void spinnerValueEntered(final SpinnerItem item,
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
396 final double enteredKm, final FacetRecord facetRecord
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
397 ) {
1573
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
398 disable();
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
399 Config config = Config.getInstance();
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
400 final String locale = config.getLocale();
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
401
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
402 Map<Integer, Double> map = new HashMap<Integer,Double>();
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
403 int _dbid = -1;
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
404 try {
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
405 _dbid = Integer.valueOf(facetRecord.getTheme()
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
406 .getCollectionItem()
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
407 .getData().get("cross_section.dbid"));
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
408 }
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
409 catch (NumberFormatException nfe) {
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
410 GWT.log("Could not extract cross-section db id from data.");
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
411 }
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
412 final int dbid = _dbid;
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
413
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
414 map.put(dbid, enteredKm);
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
415
2482
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
416 // Query the available cross section measurements.
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
417 kmService.getCrossSectionKMs(locale, map, 2,
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
418 new AsyncCallback<Map<Integer, Double[]>>() {
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
419 @Override
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
420 public void onFailure(Throwable caught) {
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
421 GWT.log("Could not get single km for "
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
422 + dbid + ": "+ caught.getMessage());
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
423 SC.warn(MSG.getString(caught.getMessage()));
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
424 updateCollection();
1573
0fbbcec35462 Improved spinner-behaviour in cross section km control.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1572
diff changeset
425 //updateGrid();
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
426 enable();
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
427 }
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
428 @Override
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
429 public void onSuccess(Map<Integer, Double[]> obj) {
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
430 Double[] kms = obj.get(dbid);
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
431 double closest =
1574
465f72f68cee Fix strange javascript side effects.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1573
diff changeset
432 CrossSectionChartThemePanel.closest(kms, enteredKm);
2484
6f30bbd98618 Small fix for retrieving closest km.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2482
diff changeset
433 GWT.log("Got single km close to " + enteredKm + " for " + dbid + ", it is "
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
434 + closest);
1574
465f72f68cee Fix strange javascript side effects.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1573
diff changeset
435
465f72f68cee Fix strange javascript side effects.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1573
diff changeset
436 // Do not set value, as it will trigger strange
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
437 // "javascript" bugs. /*item.setValue(closest);*/
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
438 if (synchronCrossSectionThemes.contains (themeHash
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
439 (facetRecord.getTheme()))) {
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
440 // Move all other synchrons
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
441 ThemeList themes = getThemeList();
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
442 int nThemes = themes.getThemeCount();
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
443 List<Artifact> artifacts = new ArrayList<Artifact>();
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
444 for (int i = 0; i < nThemes; i++) {
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
445 final Theme theme = themes.getThemeAt(i+1);
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
446 if (theme.getFacet().equals("cross_section") &&
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
447 theme.getActive() == 1 &&
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
448 synchronCrossSectionThemes.contains(themeHash(theme))
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
449 ) {
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
450 artifacts.add(artifactReference(theme.getArtifact()));
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
451 }
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
452 }
1574
465f72f68cee Fix strange javascript side effects.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1573
diff changeset
453 sendFeed(artifacts, closest);
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
454 }
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
455 else {
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
456 sendFeed(facetRecord.getTheme().getArtifact(),
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
457 closest);
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
458 }
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
459 }
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
460 });
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
461 }
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
462
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
463
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
464 /**
1379
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
465 * Create the handler for ChangeEvents on the Spinner in the
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
466 * facets that control km of cross section.
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
467 *
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
468 * @param facetRecord The FacetRecord (~row in table) where this
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
469 * handler is added to (to a child, to be exact).
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
470 */
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
471 // TODO obsolete?
1379
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
472 public final ChangedHandler createSpinnerHandler(
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
473 final FacetRecord facetRecord)
1379
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
474 {
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
475 ChangedHandler handler = new ChangedHandler()
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
476 {
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
477 @Override
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
478 public void onChanged(final ChangedEvent ce) {
1379
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
479 if (ce.getValue() == null) {
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
480 return;
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
481 }
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
482 String value = ce.getValue().toString();
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
483
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
484 // Now, query the value with the kmService.
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
485 final double selected_km =
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
486 Double.parseDouble(value);
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
487 final SpinnerItem item = (SpinnerItem) ce.getItem();
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
488
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
489 spinnerValueEntered(item, selected_km, facetRecord);
1379
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
490 }
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
491 };
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
492 return handler;
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
493 }
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
494
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
495
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
496 /**
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
497 * Create a "kilometer spinner" for CrossSection Facets.
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
498 * @param facetRecord The respective Facet/Theme.
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
499 * @return label, intialized SpinnerItem.
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
500 */
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
501 public SpinnerItem createSpinnerItem(FacetRecord facetRecord) {
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
502 SpinnerItem spinnerItem = new SpinnerItem();
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
503 spinnerItem.setShowTitle(false);
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
504 spinnerItem.setTitle("Waterlevel-Spinner");
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
505 spinnerItem.setWidth(45);
1496
a882297ce63d Changed CrossSection spinner-stepsize, adjusted km- and mastersetting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1476
diff changeset
506 spinnerItem.setDefaultValue(Double.valueOf(facetRecord.getTheme()
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
507 .getCollectionItem()
1496
a882297ce63d Changed CrossSection spinner-stepsize, adjusted km- and mastersetting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1476
diff changeset
508 .getData().get(CS_KM)));
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
509
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
510 spinnerItem.setMin(0);
1475
fb2fefe0325f Improvements in CrossSectionChartThemePanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1472
diff changeset
511 spinnerItem.setMax(2000);
1572
60f8edc7a6f0 Slightly improved Spinner- behaviour in CrossSectionControl, but regress in other case.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
512 spinnerItem.setStep(0.1d);
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
513 spinnerItem.setChangeOnKeypress(true);
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
514 return spinnerItem;
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
515 }
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
516
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
517
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
518 /**
2485
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
519 * SpinnerItem-like element with text label and up/down buttons.
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
520 */
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
521 public class KmSpinner extends HLayout {
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
522 protected Label label;
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
523
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
524 protected FacetRecord facetRecord;
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
525
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
526 protected double currentValue;
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
527
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
528 public KmSpinner(FacetRecord facetRecord) {
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
529 super(2);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
530 this.facetRecord = facetRecord;
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
531 final FacetRecord _facetRecord = facetRecord;
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
532 currentValue = Double.valueOf(facetRecord.getTheme()
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
533 .getCollectionItem().getData().get(CS_KM));
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
534 // Buttons and labels.
2490
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
535 int height = 18;
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
536 // minusButton shall ask service for previous available cs.
2485
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
537 Button minusButton = new Button("-");
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
538 minusButton.setWidth(10);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
539 minusButton.setHeight(height);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
540 minusButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
541 public void onClick(ClickEvent evt) {
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
542 spinnerValueEntered(null, currentValue - 0.1d, _facetRecord);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
543 }
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
544 });
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
545 // TODO i18n
2490
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
546 DynamicForm form = new DynamicForm();
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
547 final TextItem kmField = new TextItem();
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
548 kmField.setValue(currentValue);
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
549 kmField.setWidth(35);
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
550 kmField.setTitle("");
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
551 kmField.setHeight(height);
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
552 // Update on focus lost and enter-pressed.
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
553 kmField.addBlurHandler(new BlurHandler() {
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
554 @Override
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
555 public void onBlur(BlurEvent be) {
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
556 spinnerValueEntered(null,
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
557 Double.parseDouble(kmField.getValue().toString()),
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
558 _facetRecord);
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
559 }
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
560 });
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
561 kmField.addKeyPressHandler(new KeyPressHandler(){
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
562 @Override
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
563 public void onKeyPress(KeyPressEvent kpe) {
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
564 if (kpe.getKeyName().equals("Enter")) {
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
565 kmField.blurItem();
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
566 }
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
567 }
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
568 });
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
569 // TODO: i18n Now add all the validators, formatters, editors/parsers etc.
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
570 form.setFields(kmField);
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
571 form.setTitle("");
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
572 form.setTitlePrefix("");
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
573 form.setTitleSuffix("");
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
574 form.setTitleWidth(0);
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
575 form.setWidth(40);
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
576 form.setHeight(height);
2485
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
577 // PlusButton shall ask service for next available cs.
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
578 Button plusButton = new Button("+");
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
579 plusButton.setWidth(10);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
580 plusButton.setHeight(height);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
581 plusButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
582 public void onClick(ClickEvent evt) {
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
583 spinnerValueEntered(null, currentValue + 0.1d, _facetRecord);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
584 }
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
585 });
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
586 this.addMember(minusButton);
2490
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
587 this.addMember(form);
2485
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
588 this.addMember(plusButton);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
589
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
590 this.setHeight(height*2);
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
591 }
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
592 }
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
593
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
594
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
595 /**
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
596 * Create and configure the Grid to display.
1438
432180235caf Minor refactoring and fix initial settings when creating ui.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1436
diff changeset
597 * @return ListGrid with Themes and related controls inside.
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
598 */
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
599 @Override
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
600 protected ListGrid createGrid() {
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
601 ListGrid list = new ListGrid() {
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
602 @Override
1379
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
603 protected Canvas createRecordComponent(
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
604 final ListGridRecord record,
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
605 Integer colNum)
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
606 {
861
65204f30877b Display Action Widget only for cross_section theme/facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 858
diff changeset
607 // Only cross_section Facets display an action widget.
65204f30877b Display Action Widget only for cross_section theme/facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 858
diff changeset
608 final FacetRecord facetRecord = (FacetRecord) record;
65204f30877b Display Action Widget only for cross_section theme/facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 858
diff changeset
609 if (!facetRecord.getTheme().getFacet().equals(
1379
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
610 "cross_section"))
546f7f890ffa Cosmetics, refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1378
diff changeset
611 {
861
65204f30877b Display Action Widget only for cross_section theme/facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 858
diff changeset
612 return null;
65204f30877b Display Action Widget only for cross_section theme/facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 858
diff changeset
613 }
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
614
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
615 String fieldName = this.getFieldName(colNum);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
616
888
d6b88f8f88dd Fix issue flys/issue311 (i18n crossection).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 861
diff changeset
617 if (fieldName.equals(GRID_FIELD_ACTIONS)) {
2485
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
618 /*
2490
4d93f9255caa Improve km-Spinner behaviour, allow text input (alpha).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2486
diff changeset
619 TODO:
2464
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
620 if (facetRecord.getTheme().getActive() != 1) {
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
621 spinnerItem.disable();
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
622 }
2485
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
623 */
2464
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
624
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
625 /*
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
626 // To have visual representation of synchronous
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
627 // navigation or not per theme, snip:
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
628 if (synchronCrossSectionThemes.contains (themeHash
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
629 (facetRecord.getTheme()))) {
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
630 spinnerItem.setTextBoxStyle("bgBlueDark");
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
631 }
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
632 */
7568d97d74ce Disable spinnerbox if theme is disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2463
diff changeset
633
2485
26fc6163643d Replace spinnerItem by custom implementation to switch km in cross sections, but regress.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2484
diff changeset
634 return new KmSpinner(facetRecord);
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
635 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
636 else {
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
637 return null;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
638 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
639 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
640 };
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
641 list.setCanResizeFields(true);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
642 list.setShowRecordComponents(true);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
643 list.setShowRecordComponentsByCell(true);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
644 list.setShowAllRecords(true);
1378
ebba8a8618e6 Fix flys/issue306 (CrossSections: Remove table header context menu).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 891
diff changeset
645 list.setShowHeaderContextMenu(false);
2445
1de15a7bfc59 Removed the scrollbar gap in the theme panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2443
diff changeset
646 list.setLeaveScrollbarGap(false);
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
647 return list;
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
648 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
649
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
650
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
651 /**
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
652 * Initializes the components (columns) of the theme grid.
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
653 */
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
654 @Override
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
655 protected void initGrid() {
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
656 list.setCanEdit(true);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
657 list.setCanSort(false);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
658 list.setShowRecordComponents(true);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
659 list.setShowRecordComponentsByCell(true);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
660 list.setShowHeader(true);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
661 list.setWidth100();
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
662 list.setHeight100();
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
663
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
664 list.addEditCompleteHandler(this);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
665
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
666 ListGridField active = new ListGridField(GRID_FIELD_ACTIVE, " ", 20);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
667 active.setType(ListGridFieldType.BOOLEAN);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
668
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
669 ListGridField name = new ListGridField(
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
670 GRID_FIELD_NAME, MSG.chart_themepanel_header_themes());
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
671 name.setType(ListGridFieldType.TEXT);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
672
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
673 ListGridField actions = new ListGridField(GRID_FIELD_ACTIONS,
891
f6c14ffdfd07 Rest for fix for flys/issue311 .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 890
diff changeset
674 MSG.chart_themepanel_header_actions(), 50);
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
675
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
676 list.setFields(active, name, actions);
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
677 }
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
678
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
679
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
680 /** Get Current Cross-section Masters uuid. */
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
681 public String getCurrentCSMaster() {
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
682 return currentCSMasterUUID;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
683 }
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
684
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
685
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
686 /** Set Current Cross-section Masters uuid. */
1470
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
687 public void setCurrentCSMaster(String currentMasterUuid) {
eef55d18f424 Cosmetics, refactoring, renamed Master to CSMaster to avoid confusion.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1458
diff changeset
688 this.currentCSMasterUUID = currentMasterUuid;
1436
29fc2d1dfe9b Client side of interactive cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
689 }
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
690
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
691
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
692 /** Returns name of cross section area facets. */
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
693 protected String getAreaFacetName() {
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
694 return "cross_section.area";
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
695 }
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
696
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
697
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
698 /**
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
699 * Return true if two themes are canditates for an area being
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
700 * rendered between them.
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
701 * TODO join with canArea, generalize to allow easier modification
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
702 * in subclasses.
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
703 */
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
704 protected boolean areAreaCompatible(Theme a, Theme b) {
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
705 if (a.equals(b)) {
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
706 return false;
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
707 }
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
708 return (a.getFacet().equals("cross_section")
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
709 || a.getFacet().equals("cross_section_water_line"))
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
710 && (b.getFacet().equals("cross_section")
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
711 || b.getFacet().equals("cross_section_water_line"));
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
712 }
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
713
1452
fa63366ba115 Improved area creation GUI.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1449
diff changeset
714
1457
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
715 /**
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
716 * True if context menu should contain 'create area' submenu on
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
717 * this theme.
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
718 */
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
719 protected boolean canArea(Theme a) {
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
720 return a.getFacet().equals("cross_section")
3d9f81c3f00d Refactored to use existing code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1452
diff changeset
721 || a.getFacet().equals("cross_section_water_line");
1444
bdac8a72f7e6 Area creation UI update.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1438
diff changeset
722 }
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
723
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
724
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
725 protected String themeHash(Theme theme) {
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
726 return theme.getArtifact() + theme.getFacet() + theme.getIndex();
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
727 }
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
728
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
729
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
730 /**
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
731 * Include synchron navigation item.
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
732 */
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
733 @Override
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
734 protected Menu getSingleContextMenu(final ListGridRecord[] records) {
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
735 Menu contextMenu = super.getSingleContextMenu(records);
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
736
2453
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
737 Theme facetTheme = ((FacetRecord)records[0]).getTheme();
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
738 String item = facetTheme.getFacet();
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
739
2482
cef4c624c68c Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2481
diff changeset
740 if (item.equals("cross_section")) {
2453
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
741 // Synchron checking.
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
742 MenuItem synchronNavigationMenuItem = new MenuItem();
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
743 final String themeHash = themeHash(facetTheme);
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
744 if (synchronCrossSectionThemes.contains(themeHash)) {
2462
d45059aa8507 i18n and moved reference selectbox for cross section master to top.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2453
diff changeset
745 synchronNavigationMenuItem.setTitle(MSG.chart_themepanel_asynchron());
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
746 synchronNavigationMenuItem.addClickHandler(new ClickHandler() {
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
747 public void onClick(MenuItemClickEvent evt) {
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
748 synchronCrossSectionThemes.remove (themeHash);
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
749 }
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
750 });
2453
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
751 }
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
752 else {
2462
d45059aa8507 i18n and moved reference selectbox for cross section master to top.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2453
diff changeset
753 synchronNavigationMenuItem.setTitle(MSG.chart_themepanel_synchron());
2463
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
754 synchronNavigationMenuItem.addClickHandler(new ClickHandler() {
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
755 public void onClick(MenuItemClickEvent evt) {
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
756 synchronCrossSectionThemes.add (themeHash);
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
757 }
0eeceffd50e3 Make synchron navigation of CrossSections a per-theme option, not global one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2462
diff changeset
758 });
2453
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
759 }
ec120dc6279b Issue 616.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2445
diff changeset
760 contextMenu.addItem(synchronNavigationMenuItem);
1519
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
761 }
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
762
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
763 return contextMenu;
a6f6c61b18be Implemented synchronous navigation through cross section profiles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1496
diff changeset
764 }
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
765
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
766
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
767 /**
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
768 * This method is used to clear the current theme grid and add new updated
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
769 * data.
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
770 */
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
771 @Override
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
772 protected void updateGrid() {
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
773 GWT.log("CrossSectionChartThemePanel.updateGrid");
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
774
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
775 ListGridRecord[] selected = list.getSelectedRecords();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
776
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
777 clearGrid();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
778
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
779 ThemeList themeList = getThemeList();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
780
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
781 if (themeList == null) {
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
782 GWT.log("ERROR: No theme list.");
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
783 return;
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
784 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
785
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
786 int count = themeList.getThemeCount();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
787
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
788 for (int i = 1; i <= count; i++) {
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
789 Theme theme = themeList.getThemeAt(i);
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
790
1578
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
791 if (theme == null) {
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
792 continue;
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
793 }
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
794
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
795 if (theme.getFacet().equals("empty.facet")) {
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
796 theme.setVisible(0);
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
797 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
798
1578
df11c4c8c578 Avoid certain npes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1574
diff changeset
799 if (theme.getVisible() == 0) {
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
800 continue;
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
801 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
802
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
803 if (theme.getFacet().equals("cross_section")) {
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
804 addToReferences(theme);
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
805 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
806
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
807 FacetRecord newRecord = createRecord(theme);
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
808 addFacetRecord(newRecord);
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
809
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
810 String newArtifact = theme.getArtifact();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
811 String newFacet = theme.getFacet();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
812 int newIndex = theme.getIndex();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
813
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
814 for (ListGridRecord r: selected) {
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
815 FacetRecord sel = (FacetRecord) r;
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
816 Theme oldTheme = sel.getTheme();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
817
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
818 if (oldTheme.getArtifact().equals(newArtifact)
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
819 && oldTheme.getFacet().equals(newFacet)
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
820 && oldTheme.getIndex() == newIndex) {
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
821 list.selectRecord(newRecord);
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
822 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
823 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
824 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
825
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
826 fireOutputParameterChanged();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
827
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
828 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
829
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
830
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
831 /**
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
832 * Adds a cross section theme to the master artifacts combobox and finds
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
833 * a new master if necessary.
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
834 *
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
835 * @param theme The cross section theme.
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
836 */
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
837 protected void addToReferences(Theme theme) {
2443
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
838 if (theme.getVisible() != 0) {
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
839 masters.put(theme.getArtifact(), theme.getDescription());
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
840 masterCb.setValueMap(masters);
993871f8e2f2 Partial fix flys/issue624 (removing cross section).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1588
diff changeset
841 }
1533
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
842 findCurrentCSMaster();
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
843 if (masterCb.getSelectedRecord() == null) {
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
844 masterCb.setValue(getCurrentCSMaster());
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
845 }
7fcec57c2f2c Add cross sections loaded from datacage to the master artifacts list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1519
diff changeset
846 }
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
847 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
848 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org