annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/PanelHelper.java @ 9237:972e10522ed6

salix.supraregional ui
author gernotbelger
date Tue, 10 Jul 2018 11:24:12 +0200
parents 431f1c269be5
children d89976700474
rev   line source
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
2 * Software engineering by
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
5 *
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
9 */
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.client.client.ui;
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
11
9237
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
12 import com.smartgwt.client.types.Alignment;
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
13 import com.smartgwt.client.types.ListGridFieldType;
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9079
diff changeset
14 import com.smartgwt.client.widgets.form.fields.IntegerItem;
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
15 import com.smartgwt.client.widgets.form.fields.TextItem;
9237
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
16 import com.smartgwt.client.widgets.form.validator.IntegerRangeValidator;
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
17 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
18 import com.smartgwt.client.widgets.form.validator.Validator;
9237
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
19 import com.smartgwt.client.widgets.grid.ListGrid;
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
20 import com.smartgwt.client.widgets.grid.ListGridField;
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
21 import com.smartgwt.client.widgets.grid.SortNormalizer;
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
22 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
23 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
24 import com.smartgwt.client.widgets.layout.VLayout;
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
25
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
26 /**
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
27 * @author Domenico Nardi Tironi
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
28 *
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
29 */
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
30 public class PanelHelper {
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
31
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
32 public PanelHelper() {
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
33
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
34 }
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
35
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9107
diff changeset
36 public static final TextItem createItem(final String identifier, final String title, final String width, final Validator... validator) {
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
37 final TextItem item = new TextItem(identifier, title);
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
38 item.setWidth(width);
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
39 item.setWrapTitle(false);
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
40 item.setValidators(validator);
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
41 return item;
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
42 }
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
43
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9107
diff changeset
44 public static final IntegerItem createIntegerItem(final String identifier, final String title, final String width, final Validator... validator) {
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9079
diff changeset
45 final IntegerItem item = new IntegerItem(identifier, title);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9079
diff changeset
46 item.setWidth(width);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9079
diff changeset
47 item.setWrapTitle(false);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9079
diff changeset
48 item.setValidators(validator);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9079
diff changeset
49 return item;
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9079
diff changeset
50 }
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9079
diff changeset
51
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
52 public static VLayout getSpacer(final int height) {
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
53 final VLayout spacer = new VLayout();
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
54 spacer.setHeight(height);
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
55 return spacer;
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
56 }
9079
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
57
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
58 public static TextItem createItem(final String title) {
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
59 final TextItem inputItem = new TextItem(title);
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
60
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
61 final boolean hideTitle = title == null || title.isEmpty();
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
62 inputItem.setShowTitle(!hideTitle);
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
63 // final CustomValidator validator = new CustomValidator() {
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
64 // @Override
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
65 // protected boolean condition(final Object value) {
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
66 // return validate().size() > 0 ? false : true;
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
67 // }
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
68 // };
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
69 inputItem.setValidators(new IsIntegerValidator()); // Validator hat keinen sichtbaren Effekt.
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
70 inputItem.setWidth(60);
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
71 return inputItem;
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
72
aafae1ab25f0 epoch-panels, single-input-panels
gernotbelger
parents: 9066
diff changeset
73 }
9237
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
74
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
75 public static final ListGridField createRemoveField(final ListGrid table, final String icon) {
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
76 final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") {
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
77 {
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
78 setType(ListGridFieldType.ICON);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
79 setIcon(icon);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
80 setCanEdit(false);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
81 setCanFilter(false);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
82 setCanSort(false);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
83 setCanGroupBy(false);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
84 setCanFreeze(false);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
85 setWidth(25);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
86 setCanDragResize(false);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
87 super.setCanToggle(false);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
88 }
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
89 };
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
90 table.addRecordClickHandler(new RecordClickHandler() {
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
91 @Override
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
92 public void onRecordClick(final RecordClickEvent event) {
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
93 // Just handle remove-clicks
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
94 if (!event.getField().getName().equals(removeField.getName())) {
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
95 return;
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
96 }
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
97 event.getViewer().removeData(event.getRecord());
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
98 }
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
99 });
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
100
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
101 return removeField;
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
102 }
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
103
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
104 public static final ListGridField createIntTableField(final String key, final String msg, final boolean canSort, final SortNormalizer normalizer,
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
105 final IntegerRangeValidator validators) {
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
106 final ListGridField intField = new ListGridField(key, msg);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
107 intField.setType(ListGridFieldType.INTEGER);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
108 intField.setValidators(validators);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
109 intField.setWidth(90);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
110 intField.setAlign(Alignment.RIGHT);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
111 intField.setSortNormalizer(normalizer);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
112 intField.setCanSort(canSort);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
113 intField.setCanDragResize(false);
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
114
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
115 return intField;
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
116 }
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9118
diff changeset
117
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
118 }

http://dive4elements.wald.intevation.org