annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ManualDatePointsEditor.java @ 4205:0dd8963cec9c

Set also the width of the GaugeTree when resizing the GaugePanel GWT is no longer able to calculate and set the correct width of the GaugeTree since the GaugeTree is added via a Canvas wrapper. Therefore set the width manually when resizing the GaugeTree.
author Björn Ricks <bjoern.ricks@intevation.de>
date Mon, 22 Oct 2012 15:33:16 +0200
parents 51ed89b754ae
children bbd82bd8e541
rev   line source
2479
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.chart;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import java.util.List;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import java.util.Date;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 import com.google.gwt.json.client.JSONArray;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 import com.google.gwt.json.client.JSONBoolean;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import com.google.gwt.json.client.JSONNumber;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import com.google.gwt.json.client.JSONParser;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import com.google.gwt.json.client.JSONString;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import com.google.gwt.core.client.GWT;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import com.google.gwt.i18n.client.DateTimeFormat;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.util.SC;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.layout.VLayout;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.layout.HLayout;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.IButton;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import com.smartgwt.client.widgets.Button;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.grid.ListGrid;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import com.smartgwt.client.widgets.grid.ListGridField;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import com.smartgwt.client.widgets.grid.ListGridRecord;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import com.smartgwt.client.types.ListGridFieldType;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 import com.smartgwt.client.widgets.grid.CellFormatter;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 import com.google.gwt.i18n.client.NumberFormat;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 import com.smartgwt.client.widgets.grid.CellEditValueParser;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 import com.smartgwt.client.widgets.grid.CellEditValueFormatter;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import com.smartgwt.client.widgets.events.ClickEvent;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 import com.smartgwt.client.widgets.events.ClickHandler;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 import com.smartgwt.client.types.Alignment;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 import de.intevation.flys.client.client.Config;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 import de.intevation.flys.client.shared.model.Collection;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 import de.intevation.flys.client.shared.model.CollectionItem;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 import de.intevation.flys.client.shared.model.Settings;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 import de.intevation.flys.client.shared.model.Property;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 import de.intevation.flys.client.shared.model.PropertyGroup;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 import de.intevation.flys.client.shared.model.StringProperty;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 import de.intevation.flys.client.client.event.RedrawRequestHandler;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 /**
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 * UI to enter point data and save it to an PointArtifact.
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 */
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 public class ManualDatePointsEditor
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 extends ManualPointsEditor
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 public ManualDatePointsEditor(Collection collection,
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 RedrawRequestHandler handler, String outputModeName
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 ) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 super (collection, handler, outputModeName);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 /** Create and setup/add the ui. */
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 public void createUI() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 Config config = Config.getInstance();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 Button accept = new Button(MSG.label_ok());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 Button cancel = new Button(MSG.label_cancel());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 cancel.addClickHandler(this);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 accept.addClickHandler(new ClickHandler() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 public void onClick(ClickEvent e) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 okClicked();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 });
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 HLayout buttons = new HLayout();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 buttons.addMember(accept);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 buttons.addMember(cancel);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 buttons.setAlign(Alignment.CENTER);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 buttons.setHeight(30);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 VLayout layout = new VLayout();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 listGrid = new ListGrid();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 listGrid.setWidth100();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 listGrid.setHeight("*");
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 listGrid.setCanSort(false);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 listGrid.setCanEdit(true);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 listGrid.setShowHeaderContextMenu(false);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 CellFormatter doubleFormat = new CellFormatter() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 if(value != null) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 NumberFormat nf = NumberFormat.getDecimalFormat();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 try {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 double d = Double.valueOf(value.toString()).doubleValue();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 return nf.format(d);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 } catch (Exception e) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 return value.toString();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 } else {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 return null;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 }};
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 CellFormatter dateFormat = new CellFormatter() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 if(value != null && !value.toString().equals("")) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 try {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 DateTimeFormat df =
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 DateTimeFormat.getFormat("dd.MM.yyyy");
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 Date d = df.parse(value.toString());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 DateTimeFormat df2 =
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 DateTimeFormat.getFormat(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 DateTimeFormat.PredefinedFormat.DATE_MEDIUM);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113 return df2.format(d);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 catch(IllegalArgumentException iae) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 SC.warn(MSG.error_invalid_date());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118 record.setAttribute(DatePointRecord.ATTRIBUTE_X, "");
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 return "";
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 else {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 return null;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 }};
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128 CellEditValueParser cevp = new CellEditValueParser() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 public Object parse(Object value, ListGridRecord record, int rowNum, int colNum) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 if (value == null)
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131 return null;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132 try {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 NumberFormat nf = NumberFormat.getDecimalFormat();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 double d = nf.parse(value.toString());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 return (new Double(d)).toString();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 catch(NumberFormatException nfe) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 return value;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 };
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 CellEditValueFormatter cevf = new CellEditValueFormatter() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144 public Object format(Object value, ListGridRecord record, int rowNum, int colNum) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 if (value != null) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 NumberFormat nf = NumberFormat.getDecimalFormat();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 try {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148 double d = Double.valueOf(value.toString()).doubleValue();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149 return nf.format(d);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 } catch (Exception e) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151 return value.toString();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 return null;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 };
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 // Use X and Y as default fallback.
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 String xAxis = "X";
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 String yAxis = "Y";
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 // Get header text from collection settings.
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 Settings settings = this.collection.getSettings(outputModeName);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 List<Property> axes = settings.getSettings("axes");
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
165 if(axes != null) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
166 for (Property p: axes) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 PropertyGroup pg = (PropertyGroup)p;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168 StringProperty id =
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
169 (StringProperty)pg.getPropertyByName("id");
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
170 if(id.getValue().equals("X")) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
171 StringProperty name =
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172 (StringProperty)pg.getPropertyByName("label");
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
173 xAxis = name.getValue();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
174 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
175 else if (yAxis.equals("Y")) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
176 StringProperty name =
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177 (StringProperty)pg.getPropertyByName("label");
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178 yAxis = name.getValue();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
179 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 ListGridField xField =
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183 new ListGridField(PointRecord.ATTRIBUTE_X, xAxis);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 xField.setType(ListGridFieldType.TEXT);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 xField.setCellFormatter(dateFormat);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
187 ListGridField yField =
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 new ListGridField(PointRecord.ATTRIBUTE_Y, yAxis);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
189 yField.setType(ListGridFieldType.FLOAT);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190 yField.setCellFormatter(doubleFormat);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
191 yField.setEditValueParser(cevp);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
192 yField.setEditValueFormatter(cevf);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
193
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194 ListGridField nameField = new ListGridField(PointRecord.ATTRIBUTE_NAME,
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195 MSG.pointname());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196 final ListGridField removeField =
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
197 new ListGridField("_removeRecord", MSG.removepoint()){{
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 setType(ListGridFieldType.ICON);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
199 setIcon(GWT.getHostPageBaseURL() + MSG.removeFeature());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
200 setCanEdit(false);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
201 setCanFilter(false);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
202 setCanSort(false);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203 setCanGroupBy(false);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204 setCanFreeze(false);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
205 setWidth(25);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
206 }};
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
207
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
208 ListGridField activeField = new ListGridField(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
209 PointRecord.ATTRIBUTE_ACTIVE, MSG.selection());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
210 activeField.setType(ListGridFieldType.BOOLEAN);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
211 activeField.setDefaultValue(true);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
212
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
213 listGrid.setFields(new ListGridField[] {activeField, xField, yField,
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214 nameField, removeField});
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
215
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216 listGrid.addRecordClickHandler(new RecordClickHandler() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
217 public void onRecordClick(final RecordClickEvent event) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218 // Just handle remove-clicks
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 if(!event.getField().getName().equals(removeField.getName())) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
220 return;
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2486
diff changeset
221 }
2479
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
222 event.getViewer().removeData(event.getRecord());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
223 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
224 });
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226 // Find the artifacts uuid.
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
227 findManualPointsUUID();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228 CollectionItem item = collection.getItem(uuid);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230 // Add points to grid.
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
231 if (item != null) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 String jsonData = item.getData().get(outputModeName + "." + POINT_DATA);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 JSONArray jsonArray = (JSONArray) JSONParser.parse(jsonData);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
234 for (int i = 0; i < jsonArray.size(); i++) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235 JSONArray point = (JSONArray) jsonArray.get(i);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
236 listGrid.addData(datePointRecordFromJSON(point));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
237 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
238 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
239 else {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
240 // TODO proper log
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
241 System.out.println("No item found for " + uuid);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
242 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
243
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
244 IButton button = new IButton(MSG.newpoint());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
245 button.setTop(250);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
246 button.addClickHandler(new ClickHandler() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
247 public void onClick(ClickEvent event) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
248 listGrid.startEditingNew();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
249 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
250 });
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
251
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
252 layout.addMember(listGrid);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
253 layout.addMember(button);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
254
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
255 addItem(layout);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
256
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
257 addItem(buttons);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
258 setWidth(380);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
259 setHeight(470);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
260 centerInPage();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
261 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
262
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
263
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
264 /** Create JSON representation of the points present in the list grid. */
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
265 protected JSONArray jsonArrayFromListGrid() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
266 JSONArray list = new JSONArray();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
267 int idx = 0;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
268
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
269 for(ListGridRecord record : listGrid.getRecords()) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
270 if (record instanceof DatePointRecord) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
271 JSONArray data = new JSONArray();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
272
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
273 DatePointRecord point = (DatePointRecord) record;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
274 String dateString = point.getX();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
275 DateTimeFormat df = DateTimeFormat.getFormat(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
276 DateTimeFormat.PredefinedFormat.DATE_MEDIUM);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
277
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
278 Date d = df.parse(dateString);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
279 double dv = (double)d.getTime();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
280
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
281 data.set(0, new JSONNumber(dv));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
282 data.set(1, new JSONNumber(point.getY()));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
283 data.set(2, new JSONString(point.getName()));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
284 data.set(3, JSONBoolean.getInstance(point.isActive()));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
285
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
286 list.set(idx, data);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
287 idx++;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
288 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
289 else {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
290 JSONArray data = new JSONArray();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
291
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
292 String nameString = record.getAttributeAsString(PointRecord.ATTRIBUTE_NAME);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
293 // Apply default name if none set.
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
294 if (nameString == null || nameString.equals("")) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
295 String xString = record.getAttributeAsString(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
296 PointRecord.ATTRIBUTE_X);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
297 String yString = record.getAttributeAsString(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
298 PointRecord.ATTRIBUTE_Y);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
299 nameString = xString + "/" + yString;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
300 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
301
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
302 String dateString = record.getAttributeAsString(PointRecord.ATTRIBUTE_X);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
303 DateTimeFormat df = DateTimeFormat.getFormat(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
304 DateTimeFormat.PredefinedFormat.DATE_MEDIUM);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
305
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
306 Date d = df.parse(dateString);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
307 double dv = (double)d.getTime();
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
308 data.set(0, new JSONNumber(dv));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
309 data.set(1, new JSONNumber(record.
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
310 getAttributeAsDouble(PointRecord.ATTRIBUTE_Y)));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
311 data.set(2, new JSONString(nameString));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
312 data.set(3, JSONBoolean.getInstance(record.getAttributeAsBoolean(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
313 PointRecord.ATTRIBUTE_ACTIVE)));
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
314
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
315 list.set(idx, data);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
316 idx++;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
317 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
318 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
319 return list;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
320 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
321
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
322 /** From a JSON-encoded point, create a PointRecord. */
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
323 public DatePointRecord datePointRecordFromJSON(JSONArray jsonArray) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
324 JSONNumber x = (JSONNumber) jsonArray.get(0);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
325 JSONNumber y = (JSONNumber) jsonArray.get(1);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
326 JSONString s = (JSONString) jsonArray.get(2);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
327 JSONBoolean b = (JSONBoolean) jsonArray.get(3);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
328
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
329 Date d = new Date (Long.valueOf(x.toString()).longValue());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
330 DateTimeFormat df = DateTimeFormat.getFormat(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
331 DateTimeFormat.PredefinedFormat.DATE_MEDIUM);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
332
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
333 return new DatePointRecord(b.booleanValue(), df.format(d),
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
334 y.doubleValue(), s.stringValue());
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
335 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
336
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
337
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
338 /** Return false if x or y attribute is missing. */
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
339 @Override
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
340 protected boolean isDialogValid() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
341 boolean valid = true;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
342 for (ListGridRecord record : listGrid.getRecords()) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
343 if (record.getAttributeAsString(PointRecord.ATTRIBUTE_X) == null ||
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
344 record.getAttributeAsString(
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
345 DatePointRecord.ATTRIBUTE_X).equals("") ||
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
346 record.getAttributeAsDouble(PointRecord.ATTRIBUTE_Y) == null) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
347 return false;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
348 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
349 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
350 if (listGrid.hasErrors()) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
351 valid = false;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
352 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
353 return valid;
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
354 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
355
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
356
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
357 /** Simple record to store points. */
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
358 public class DatePointRecord extends ListGridRecord {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
359 protected static final String ATTRIBUTE_X = "X";
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
360 protected static final String ATTRIBUTE_Y = "Y";
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
361 protected static final String ATTRIBUTE_NAME = "name";
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
362 protected static final String ATTRIBUTE_ACTIVE = "active";
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
363
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
364 private DatePointRecord() {;}
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
365
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
366 public DatePointRecord(boolean b, String x, double y, String name) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
367 setActive(b);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
368 setName(name);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
369 setX(x);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
370 setY(y);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
371 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
372
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
373 public void setActive(boolean b) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
374 setAttribute(ATTRIBUTE_ACTIVE, b);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
375 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
376
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
377 public boolean isActive() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
378 return getAttributeAsBoolean(ATTRIBUTE_ACTIVE);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
379 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
380
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
381 public void setName(String name) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
382 setAttribute(ATTRIBUTE_NAME, name);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
383 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
384
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
385 public String getName() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
386 return getAttributeAsString(ATTRIBUTE_NAME);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
387 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
388
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
389 public void setX(String x) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
390 setAttribute(ATTRIBUTE_X, x);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
391 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
392
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
393 public void setY(double y) {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
394 setAttribute(ATTRIBUTE_Y, y);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
395 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
396
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
397 public String getX() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
398 return getAttributeAsString(ATTRIBUTE_X);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
399 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
400
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
401 public double getY() {
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
402 return getAttributeAsDouble(ATTRIBUTE_Y);
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
403 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
404 }
057021593625 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
405 }

http://dive4elements.wald.intevation.org