comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixEventSelect.java @ 9256:6c24c857ccf9

fixation refactoring and inputItem behaviour to interfaces
author gernotbelger
date Fri, 13 Jul 2018 12:04:21 +0200
parents ea9eef426962
children c7e5285d434f
comparison
equal deleted inserted replaced
9255:9be51f776798 9256:6c24c857ccf9
6 * documentation coming with Dive4Elements River for details. 6 * documentation coming with Dive4Elements River for details.
7 */ 7 */
8 8
9 package org.dive4elements.river.client.client.ui.fixation; 9 package org.dive4elements.river.client.client.ui.fixation;
10 10
11 import java.util.ArrayList;
11 import java.util.List; 12 import java.util.List;
12 import java.util.ArrayList;
13
14 import com.google.gwt.core.client.GWT;
15
16 import com.smartgwt.client.widgets.Canvas;
17 import com.smartgwt.client.widgets.Label;
18
19 import com.smartgwt.client.widgets.layout.HLayout;
20 import com.smartgwt.client.widgets.layout.VLayout;
21 13
22 import org.dive4elements.river.client.client.FLYSConstants; 14 import org.dive4elements.river.client.client.FLYSConstants;
23 15 import org.dive4elements.river.client.client.services.FixingsOverviewService;
16 import org.dive4elements.river.client.client.services.FixingsOverviewServiceAsync;
24 import org.dive4elements.river.client.shared.model.Data; 17 import org.dive4elements.river.client.shared.model.Data;
25 import org.dive4elements.river.client.shared.model.DataItem; 18 import org.dive4elements.river.client.shared.model.DataItem;
26 import org.dive4elements.river.client.shared.model.DataList; 19 import org.dive4elements.river.client.shared.model.DataList;
20 import org.dive4elements.river.client.shared.model.FixingsOverviewInfo;
21 import org.dive4elements.river.client.shared.model.FixingsOverviewInfo.FixEvent;
27 import org.dive4elements.river.client.shared.model.IntDataItem; 22 import org.dive4elements.river.client.shared.model.IntDataItem;
28 import org.dive4elements.river.client.shared.model.IntegerArrayData; 23 import org.dive4elements.river.client.shared.model.IntegerArrayData;
29 import org.dive4elements.river.client.shared.model.FixingsOverviewInfo.FixEvent;
30 24
31 import org.dive4elements.river.client.client.services.FixingsOverviewService; 25 import com.google.gwt.core.client.GWT;
32 import org.dive4elements.river.client.client.services.FixingsOverviewServiceAsync; 26 import com.smartgwt.client.widgets.Canvas;
27 import com.smartgwt.client.widgets.Label;
28 import com.smartgwt.client.widgets.layout.HLayout;
29 import com.smartgwt.client.widgets.layout.VLayout;
33 30
34 /** 31 /**
35 * This UIProvider lets you select events. 32 * This UIProvider lets you select events.
36 * 33 *
37 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> 34 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
38 */ 35 */
39 public class FixEventSelect 36 public class FixEventSelect extends FixationPanel {
40 extends FixationPanel
41 {
42 /** The message class that provides i18n strings. */ 37 /** The message class that provides i18n strings. */
43 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); 38 private final FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
44 39
45 public static final int MAX_DISPLAYED_ITEMS = 5; 40 private static final int MAX_DISPLAYED_ITEMS = 5;
46 41
47 protected FixingsOverviewServiceAsync overviewService = 42 private final FixingsOverviewServiceAsync overviewService = GWT.create(FixingsOverviewService.class);
48 GWT.create(FixingsOverviewService.class);
49 43
50 protected List<String> events; 44 private final List<String> events = new ArrayList<String>();
51 45
52 public FixEventSelect() { 46 @Override
53 htmlOverview = ""; 47 public Canvas createWidget(final DataList data) {
54 events = new ArrayList<String>();
55 }
56
57 public Canvas createWidget(DataList data) {
58 instances.put(this.artifact.getUuid(), this); 48 instances.put(this.artifact.getUuid(), this);
59 49
60 VLayout layout = new VLayout(); 50 final VLayout layout = new VLayout();
61 51
62 Canvas title = new Label(MESSAGES.eventselect()); 52 final Canvas title = new Label(this.MESSAGES.eventselect());
63 title.setHeight("25px"); 53 title.setHeight("25px");
64 54
65 layout.addMember(title); 55 layout.addMember(title);
66 return layout; 56 return layout;
67 } 57 }
68 58
69 @Override 59 @Override
70 public Canvas createOld(DataList dataList) { 60 public Canvas createOld(final DataList dataList) {
71 List<Data> list = dataList.getAll(); 61 final List<Data> list = dataList.getAll();
72 62
73 Data data = getData(list, "events"); 63 final Data data = getData(list, "events");
74 64
75 VLayout dataLayout = new VLayout(); 65 final VLayout dataLayout = new VLayout();
76 dataLayout.setWidth(130); 66 dataLayout.setWidth(130);
77 67
78 DataItem[] items = data.getItems(); 68 final DataItem[] items = data.getItems();
79 69
80 if (items.length > MAX_DISPLAYED_ITEMS) { 70 if (items.length > MAX_DISPLAYED_ITEMS) {
81 for (int i = 0; i < MAX_DISPLAYED_ITEMS-2; ++i) { 71 for (int i = 0; i < MAX_DISPLAYED_ITEMS - 2; ++i) {
82 Label l = new Label(items[i].getLabel()); 72 final Label l = new Label(items[i].getLabel());
83 l.setHeight(25); 73 l.setHeight(25);
84 dataLayout.addMember(l); 74 dataLayout.addMember(l);
85 } 75 }
86 Label l = new Label("..."); 76 Label l = new Label("...");
87 l.setHeight(25); 77 l.setHeight(25);
88 dataLayout.addMember(l); 78 dataLayout.addMember(l);
89 l = new Label(items[items.length-1].getLabel()); 79 l = new Label(items[items.length - 1].getLabel());
90 l.setHeight(25); 80 l.setHeight(25);
91 dataLayout.addMember(l); 81 dataLayout.addMember(l);
92 } 82 } else {
93 else { 83 for (final DataItem item : items) {
94 for (int i = 0; i < items.length; i++) { 84 final Label l = new Label(item.getLabel());
95 Label l = new Label(items[i].getLabel());
96 l.setHeight(25); 85 l.setHeight(25);
97 dataLayout.addMember(l); 86 dataLayout.addMember(l);
98 } 87 }
99 } 88 }
100 89
101 HLayout layout = new HLayout(); 90 final HLayout layout = new HLayout();
102 layout.setWidth("400px"); 91 layout.setWidth("400px");
103 92
104 Label label = new Label(dataList.getLabel()); 93 final Label label = new Label(dataList.getLabel());
105 label.setWidth("200px"); 94 label.setWidth("200px");
106 95
107 Canvas back = getBackButton(dataList.getState()); 96 final Canvas back = getBackButton(dataList.getState());
108 97
109 layout.addMember(label); 98 layout.addMember(label);
110 layout.addMember(dataLayout); 99 layout.addMember(dataLayout);
111 layout.addMember(back); 100 layout.addMember(back);
112 101
113 return layout; 102 return layout;
114 } 103 }
115 104
116
117 /** 105 /**
118 * This method returns the selected data. 106 * This method returns the selected data.
119 * 107 *
120 * @return the selected/inserted data. 108 * @return the selected/inserted data.
121 */ 109 */
110 @Override
122 public Data[] getData() { 111 public Data[] getData() {
123 List<Data> data = new ArrayList<Data>(); 112 final List<Data> data = new ArrayList<Data>();
124 113
125 if (events.size() > 0) { 114 if (this.events.size() > 0) {
126 IntDataItem[] arr = new IntDataItem[events.size()]; 115 final IntDataItem[] arr = new IntDataItem[this.events.size()];
127 for (int i = 0, E = events.size(); i < E; i++) { 116 for (int i = 0, E = this.events.size(); i < E; i++) {
128 try { 117 try {
129 Integer v = new Integer(events.get(i)); 118 final Integer v = new Integer(this.events.get(i));
130 arr[i] = new IntDataItem("id", "id", v.intValue()); 119 arr[i] = new IntDataItem("id", "id", v.intValue());
131 } 120 }
132 catch (NumberFormatException nfe) { 121 catch (final NumberFormatException nfe) {
133 return data.toArray(new Data[data.size()]); 122 return data.toArray(new Data[data.size()]);
134 } 123 }
135 } 124 }
136 125
137 IntegerArrayData iad = 126 final IntegerArrayData iad = new IntegerArrayData("events", "events", arr);
138 new IntegerArrayData("events", "events", arr);
139 127
140 data.add(iad); 128 data.add(iad);
141 } 129 }
142 130
143 return data.toArray(new Data[data.size()]); 131 return data.toArray(new Data[data.size()]);
144 } 132 }
145 133
146
147 @Override 134 @Override
148 public void setValues(String cid, boolean checked) { 135 public void setValues(final String cid, final boolean checked) {
149 if (checked) { 136 if (checked) {
150 events.add(cid); 137 this.events.add(cid);
151 } 138 } else {
152 else { 139 if (this.events.contains(cid)) {
153 if (events.contains(cid)) { 140 this.events.remove(cid);
154 events.remove(cid);
155 } 141 }
156 } 142 }
157 } 143 }
158
159 144
160 @Override 145 @Override
161 public boolean renderCheckboxes() { 146 public boolean renderCheckboxes() {
162 return true; 147 return true;
163 } 148 }
164 149
165 150 @Override
166 public void success() { 151 public void success(final FixingsOverviewInfo fixInfo) {
167 for (FixEvent fe: fixInfo.getEvents()) { 152 for (final FixEvent fe : fixInfo.getEvents()) {
168 events.add(fe.getCId()); 153 this.events.add(fe.getCId());
169 } 154 }
170 } 155 }
171 156
172 public void dumpGWT(String cid) { 157 // public void dumpGWT(String cid) {
173 GWT.log("Setting values for cId: " + cid); 158 // GWT.log("Setting values for cId: " + cid);
174 GWT.log("River: " + fixInfo.getRiver()); 159 // GWT.log("River: " + fixInfo.getRiver());
175 GWT.log("Date: " + fixInfo.getEventByCId(cid).getDate()); 160 // GWT.log("Date: " + fixInfo.getEventByCId(cid).getDate());
176 GWT.log("Name: " + fixInfo.getEventByCId(cid).getDescription()); 161 // GWT.log("Name: " + fixInfo.getEventByCId(cid).getDescription());
177 } 162 // }
178 } 163 }

http://dive4elements.wald.intevation.org