annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ManualWSPEditor.java @ 5462:f2371f3aaf03

Show top level folder icons only if node has no factory If you have an empty folder the folder icon is still shown. This makes it possible to add functional "Top Level" entries in the Datacage
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 26 Mar 2013 18:29:13 +0100
parents bbd82bd8e541
children
rev   line source
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.chart;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
2939
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
3 import com.google.gwt.core.client.GWT;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
4 import com.google.gwt.i18n.client.NumberFormat;
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
5 import com.google.gwt.json.client.JSONArray;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
6 import com.google.gwt.json.client.JSONNumber;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
7 import com.google.gwt.json.client.JSONParser;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
8 import com.google.gwt.json.client.JSONString;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
9 import com.google.gwt.user.client.rpc.AsyncCallback;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
2939
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
11 import com.smartgwt.client.types.Alignment;
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.util.SC;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.Button;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.Label;
2939
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
15 import com.smartgwt.client.widgets.Window;
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.events.ClickEvent;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.events.ClickHandler;
2939
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
18 import com.smartgwt.client.widgets.form.DynamicForm;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
19 import com.smartgwt.client.widgets.form.fields.TextItem;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
20 import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
21 import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
22 import com.smartgwt.client.widgets.layout.HLayout;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
23 import com.smartgwt.client.widgets.layout.VLayout;
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25 import de.intevation.flys.client.client.Config;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 import de.intevation.flys.client.client.FLYSConstants;
2939
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
27 import de.intevation.flys.client.client.event.RedrawRequestEvent;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
28 import de.intevation.flys.client.client.event.RedrawRequestHandler;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
29 import de.intevation.flys.client.client.services.FeedServiceAsync;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
30 import de.intevation.flys.client.client.services.LoadArtifactServiceAsync;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
31 import de.intevation.flys.client.client.utils.DoubleValidator;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
32 import de.intevation.flys.client.shared.model.Artifact;
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 import de.intevation.flys.client.shared.model.Collection;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34 import de.intevation.flys.client.shared.model.CollectionItem;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 import de.intevation.flys.client.shared.model.Data;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 import de.intevation.flys.client.shared.model.DefaultArtifact;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 import de.intevation.flys.client.shared.model.DefaultData;
2939
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
38 import de.intevation.flys.client.shared.model.Property;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
39 import de.intevation.flys.client.shared.model.PropertyGroup;
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 import de.intevation.flys.client.shared.model.Recommendation;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41 import de.intevation.flys.client.shared.model.Settings;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42 import de.intevation.flys.client.shared.model.StringProperty;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43
2939
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
44 import java.util.List;
8e6b1df7c3b0 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2937
diff changeset
45 import java.util.Map;
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 /**
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 * UI to enter point data and save it to an PointArtifact.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 public class ManualWSPEditor
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 extends Window
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52 implements ClickHandler
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54 /** The interface that provides i18n messages. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 /** Name of the main data item to be fed. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58 public static final String LINE_DATA = "manualpoints.lines";
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
60 /** When we change something, we need a RedrawRequest(Handler). */
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 protected RedrawRequestHandler redrawRequestHandler;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 /** The collection */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64 protected Collection collection;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66 /** Service handle to clone and add artifacts to collection. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67 LoadArtifactServiceAsync loadArtifactService = GWT.create(
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 de.intevation.flys.client.client.services.LoadArtifactService.class);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 /** Service to feed the artifact with new point-data. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71 FeedServiceAsync feedService = GWT.create(
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 de.intevation.flys.client.client.services.FeedService.class);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74 /** UUID of artifact to feed. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 protected String uuid;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77 /** Name of the outputmode, important when feeding data. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78 protected String outputModeName;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 /** Name of the data item for lines in this context. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 protected String dataItemName;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83 /** Input Field for y-coor of line. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 protected TextItem valueInputPanel;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 /** Input Field for name of line. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 protected TextItem nameInputPanel;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89 /** Line data that is not added in this session. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90 protected JSONArray oldLines = null;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93 /**
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
94 * Setup editor dialog.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
95 * @param collection The collection to use.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
96 */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97 public ManualWSPEditor(Collection collection,
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
98 RedrawRequestHandler handler, String outputModeName
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 ) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100 this.collection = collection;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
101 this.redrawRequestHandler = handler;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102 this.outputModeName = outputModeName;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
103 this.dataItemName = outputModeName + "." + LINE_DATA;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
104 init();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
105 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
106
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
107
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
108 /** Searches collection for first artifact to serve (manual) line data. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
109 public String findManualPointsUUID() {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
110 int size = collection.getItemLength();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
112 for (int i = 0; i < size; i++) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
113 CollectionItem item = collection.getItem(i);
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
114 String dataValue = item.getData().get(dataItemName);
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
115 if (dataValue != null) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 // Found it.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117 uuid = item.identifier();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 return uuid;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
120 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122 return null;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
123 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
124
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 /**
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127 * Initialize the editor window and its components.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
128 */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
129 protected void init() {
2927
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
130 setTitle(MSG.addWSP());
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131 setCanDragReposition(true);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132 setCanDragResize(true);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
134 if(findManualPointsUUID() == null) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135 addArtifactCreateUI();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
136 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137 else {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
138 createUI();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
142
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
143 /** Create and setup/add the ui. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
144 public void createUI() {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145 Button accept = new Button(MSG.label_ok());
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146 Button cancel = new Button(MSG.label_cancel());
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147 cancel.addClickHandler(this);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
148
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149 accept.addClickHandler(new ClickHandler() {
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
150 @Override
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
151 public void onClick(ClickEvent e) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152 okClicked();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
154 });
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
155
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
156 HLayout buttons = new HLayout();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
157 buttons.addMember(accept);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
158 buttons.addMember(cancel);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
159 buttons.setAlign(Alignment.CENTER);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
160 buttons.setHeight(30);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
162 // Use X and Y as default fallback.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
163 String yAxis = "Y";
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
164
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165 // Get header text from collection settings.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166 Settings settings = this.collection.getSettings(outputModeName);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 List<Property> axes = settings.getSettings("axes");
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 if(axes != null) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169 for (Property p: axes) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
170 PropertyGroup pg = (PropertyGroup)p;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171 StringProperty id =
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172 (StringProperty)pg.getPropertyByName("id");
2927
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
173 if (id.getValue().equals("W")) {
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 StringProperty name =
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 (StringProperty)pg.getPropertyByName("label");
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
176 yAxis = name.getValue();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
177 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
179 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
180
2927
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
181 DynamicForm form = new DynamicForm();
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
182 valueInputPanel = new TextItem();
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
183 valueInputPanel.setTitle(yAxis);
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
184 valueInputPanel.setShowTitle(true);
2928
f0c7c52203c0 Minor Manual WSP editor polish.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2927
diff changeset
185 valueInputPanel.addBlurHandler(new BlurHandler() {
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
186 @Override
2928
f0c7c52203c0 Minor Manual WSP editor polish.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2927
diff changeset
187 public void onBlur(BlurEvent e) {
f0c7c52203c0 Minor Manual WSP editor polish.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2927
diff changeset
188 DoubleValidator validator = new DoubleValidator();
f0c7c52203c0 Minor Manual WSP editor polish.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2927
diff changeset
189 Map errors = e.getForm().getErrors();
3354
22f39c2d7a72 Cosmetic compression.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2939
diff changeset
190 validator.validate(e.getItem(), errors);
22f39c2d7a72 Cosmetic compression.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2939
diff changeset
191 e.getForm().setErrors(errors, true);
2928
f0c7c52203c0 Minor Manual WSP editor polish.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2927
diff changeset
192 }
f0c7c52203c0 Minor Manual WSP editor polish.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2927
diff changeset
193 });
2927
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
194 nameInputPanel = new TextItem();
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
195 nameInputPanel.setTitle(MSG.pointname());
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
196 nameInputPanel.setShowTitle(true);
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
197 form.setFields(valueInputPanel, nameInputPanel);
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
198
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
199 VLayout layout = new VLayout();
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
200 layout.addMember(form);
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
201
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
202 // Find the artifacts uuid.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
203 // TODO this has been called already, why call it again?
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
204 findManualPointsUUID();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
205 CollectionItem item = collection.getItem(uuid);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
206
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
207 // Store the old line data.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
208 if (item != null) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
209 String jsonData = item.getData().get(dataItemName);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
210 oldLines = (JSONArray) JSONParser.parse(jsonData);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
211 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
212 else {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
213 GWT.log("No old lines found for " + uuid);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
214 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
215
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
216 addItem(layout);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
217
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
218 addItem(buttons);
2927
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
219 setWidth(360);
f978058dc835 Nicen Manual WSP editor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2925
diff changeset
220 setHeight(120);
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
221 centerInPage();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
222 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
223
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
224
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
225 /**
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
226 * Create JSON representation of the points present in the form.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
227 * Add old data, too.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
228 * @return a jsonarray with the old and the new lines.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
229 */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
230 protected JSONArray jsonArrayFromForm() {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
231 if (oldLines == null) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
232 oldLines = new JSONArray();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
233 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
234
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
235 double val;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
236 if (valueInputPanel.getValue() == null)
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
237 return oldLines;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
238 try {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
239 NumberFormat nf = NumberFormat.getDecimalFormat();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
240 double d = nf.parse(valueInputPanel.getValue().toString());
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
241 val = d;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
242 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
243 catch(NumberFormatException nfe) {
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
244 GWT.log("fehler... nfe... TODO");
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
245 return oldLines;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
246 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
247
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
248 JSONArray data = new JSONArray();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
249 data.set(0, new JSONNumber(val));
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
250 if (nameInputPanel.getValue() == null) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
251 data.set(1, new JSONString(valueInputPanel.getValue().toString()));
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
252 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
253 else {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
254 data.set(1, new JSONString(nameInputPanel.getValue().toString()));
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
255 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
256 oldLines.set(oldLines.size(), data);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
257
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
258 return oldLines;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
259 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
260
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
261
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
262 /**
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
263 * Called when OK Button was clicked. Then, if entered values are valid,
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
264 * fire a RedrawRequest and destroy.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
265 */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
266 protected void okClicked() {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
267 if (valueInputPanel.getValue() == null) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
268 return;
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
269 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
270 GWT.log(valueInputPanel.getValue().toString());
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
271 if(isDialogValid()) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
272 // Feed JSON-encoded content of form.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
273 JSONArray list = jsonArrayFromForm();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
274
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
275 Data[] feedData = new Data[] {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
276 DefaultData.createSimpleStringData(dataItemName,
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
277 list.toString())
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
278 };
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
279
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
280 feedService.feed(
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
281 Config.getInstance().getLocale(),
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
282 new DefaultArtifact(uuid, "TODO:hash"),
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
283 feedData,
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
284 new AsyncCallback<Artifact>() {
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
285 @Override
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
286 public void onFailure(Throwable caught) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
287 GWT.log("Could not feed artifact with lines.");
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
288 SC.warn(MSG.getString(caught.getMessage()));
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
289 enable();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
290 }
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
291 @Override
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
292 public void onSuccess(Artifact fartifact) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
293 GWT.log("Successfully set lines ");
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
294 redrawRequestHandler.onRedrawRequest(
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
295 new RedrawRequestEvent());
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
296 destroy();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
297 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
298 });
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
299 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
300 else {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
301 GWT.log("Dialog not valid");
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
302 SC.warn(MSG.error_dialog_not_valid());
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
303 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
304 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
305
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
306
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
307 /** Add a ManualPointArtifact to Collection. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
308 public void addArtifactCreateUI() {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
309 final Label standByLabel = new Label(MSG.standby());
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
310 addItem(standByLabel);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
311
2928
f0c7c52203c0 Minor Manual WSP editor polish.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2927
diff changeset
312 setWidth(360);
f0c7c52203c0 Minor Manual WSP editor polish.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2927
diff changeset
313 setHeight(120);
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
314 centerInPage();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
315
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
316 Config config = Config.getInstance();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
317 String locale = config.getLocale();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
318
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
319 loadArtifactService.load(
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
320 this.collection,
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
321 new Recommendation("manualpoints", ""),
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
322 "manualpoints",
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
323 locale,
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
324 new AsyncCallback<Artifact>() {
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
325 @Override
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
326 public void onFailure(Throwable caught) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
327 GWT.log("Creating manualpoint artifact failed!");
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
328 }
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
329 @Override
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
330 public void onSuccess(Artifact artifact) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
331 GWT.log("Successfully created artifact.");
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
332 removeItem(standByLabel);
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
333 uuid = artifact.getUuid();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
334 createUI();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
335 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
336 });
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
337 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
338
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
339
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
340 /**
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
341 * This method is called when the user aborts point editing.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
342 * @param event The event.
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
343 */
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3354
diff changeset
344 @Override
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
345 public void onClick(ClickEvent event) {
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
346 this.destroy();
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
347 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
348
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
349
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
350 /** Return false if x or y attribute is missing. */
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
351 protected boolean isDialogValid() {
2929
0ef4753e5515 Improved manual wsp input validation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2928
diff changeset
352 return (DoubleValidator.isDouble(valueInputPanel.getValue()));
2925
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
353 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
354 }
6461b8dbe093 Added basic GUI for manual WSPs in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
355 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org