annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/sinfo/CollisionLoadEpochPanel.java @ 9079:aafae1ab25f0

epoch-panels, single-input-panels
author gernotbelger
date Wed, 23 May 2018 17:30:24 +0200
parents fc02833dbcc1
children
rev   line source
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
3 *
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
7 */
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
8
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.client.client.ui.sinfo;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
10
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
11 import org.dive4elements.river.client.client.ui.AbstractEpochPanel;
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
12 import org.dive4elements.river.client.shared.model.DataList;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
13
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
14 import com.google.gwt.core.client.GWT;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
15 import com.smartgwt.client.types.ListGridFieldType;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
16 import com.smartgwt.client.widgets.Button;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
17 import com.smartgwt.client.widgets.Canvas;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
18 import com.smartgwt.client.widgets.Label;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
19 import com.smartgwt.client.widgets.events.ClickEvent;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
20 import com.smartgwt.client.widgets.events.ClickHandler;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
21 import com.smartgwt.client.widgets.form.DynamicForm;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
22 import com.smartgwt.client.widgets.form.fields.TextItem;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
23 import com.smartgwt.client.widgets.grid.ListGrid;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
24 import com.smartgwt.client.widgets.grid.ListGridField;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
25 import com.smartgwt.client.widgets.grid.ListGridRecord;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
26 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
27 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
28 import com.smartgwt.client.widgets.layout.HLayout;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
29 import com.smartgwt.client.widgets.layout.VLayout;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
30
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
31 public class CollisionLoadEpochPanel extends AbstractEpochPanel {
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
32
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
33 private static final long serialVersionUID = 1L;
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
34
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
35 @Override
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
36 protected String getDatakey() {
9078
fc02833dbcc1 SingleInputItem abstract
gernotbelger
parents: 9076
diff changeset
37 return "epochs";
fc02833dbcc1 SingleInputItem abstract
gernotbelger
parents: 9076
diff changeset
38 }
fc02833dbcc1 SingleInputItem abstract
gernotbelger
parents: 9076
diff changeset
39
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
40 public CollisionLoadEpochPanel() {
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
41 super(Type.multi);
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
42 }
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
43
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
44 @Override
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
45 protected Canvas createWidget(final DataList data) {
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
46 final HLayout input = new HLayout();
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
47 final VLayout root = new VLayout();
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
48 final VLayout grid = new VLayout();
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
49 final VLayout intFields = new VLayout();
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
50 final Button add = new Button(this.MSG.add_date());
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
51 final ListGrid elements = createListGrid();
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
52 elements.setWidth(185);
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
53 elements.setHeight(120);
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
54
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
55 final Label title = new Label(data.get(0).getDescription());
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
56 title.setHeight("25px");
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
57
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
58 final DynamicForm form = new DynamicForm();
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
59 form.setNumCols(4);
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
60 final TextItem start = createStartInputItem(this.MSG.from());
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
61 final TextItem end = createEndInputItem(this.MSG.to());
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
62
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
63 form.setFields(start, end);
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
64 add.addClickHandler(new ClickHandler() {
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
65 @Override
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
66 public void onClick(final ClickEvent ce) {
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
67 final String v1 = start.getValueAsString();
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
68 final String v2 = end.getValueAsString();
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
69 if (v1 == null || v2 == null) {
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
70 return;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
71 }
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
72 if (!isValidEpoch(v1, v2)) {
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
73 return;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
74 }
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
75 final ListGridRecord r = new ListGridRecord();
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
76 r.setAttribute("from", v1);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
77 r.setAttribute("to", v2);
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
78 elements.addData(r);
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
79 }
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
80 });
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
81
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
82 final Label sel = new Label(this.MSG.select());
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
83 sel.setHeight(25);
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
84
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
85 final ListGridField from = new ListGridField("from", this.MSG.from());
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
86 final ListGridField to = new ListGridField("to", this.MSG.to());
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
87 from.setWidth(70);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
88 to.setWidth(70);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
89
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
90 final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") {
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
91 {
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
92 setType(ListGridFieldType.ICON);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
93 setIcon(GWT.getHostPageBaseURL() + CollisionLoadEpochPanel.this.MSG.removeFeature());
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
94 setCanEdit(false);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
95 setCanFilter(false);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
96 setCanSort(false);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
97 setCanGroupBy(false);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
98 setCanFreeze(false);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
99 setWidth(25);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
100 }
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
101 };
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
102
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
103 elements.addRecordClickHandler(new RecordClickHandler() {
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
104 @Override
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
105 public void onRecordClick(final RecordClickEvent event) {
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
106 // Just handle remove-clicks
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
107 if (!event.getField().getName().equals(removeField.getName())) {
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
108 return;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
109 }
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
110 event.getViewer().removeData(event.getRecord());
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
111 }
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
112 });
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
113
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
114 elements.setFields(from, to, removeField);
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
115
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
116 intFields.addMember(form);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
117 intFields.addMember(add);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
118 grid.addMember(sel);
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9078
diff changeset
119 grid.addMember(elements);
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
120 input.addMember(intFields);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
121 input.addMember(grid);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
122 root.addMember(title);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
123 root.addMember(input);
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
124
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
125 return root;
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
126 }
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
127
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents:
diff changeset
128 }

http://dive4elements.wald.intevation.org