Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/WQAdaptedInputPanel.java @ 5195:d07abdb7ed7f
flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 08 Mar 2013 09:17:50 +0100 |
parents | 7b37876b2f51 |
children | 2a5b15e071d8 |
comparison
equal
deleted
inserted
replaced
5194:92c8f8d1a3ba | 5195:d07abdb7ed7f |
---|---|
2 | 2 |
3 import com.google.gwt.core.client.GWT; | 3 import com.google.gwt.core.client.GWT; |
4 import com.google.gwt.i18n.client.NumberFormat; | 4 import com.google.gwt.i18n.client.NumberFormat; |
5 import com.google.gwt.user.client.rpc.AsyncCallback; | 5 import com.google.gwt.user.client.rpc.AsyncCallback; |
6 | 6 |
7 import com.smartgwt.client.data.Record; | |
7 import com.smartgwt.client.types.TitleOrientation; | 8 import com.smartgwt.client.types.TitleOrientation; |
8 import com.smartgwt.client.types.VerticalAlignment; | 9 import com.smartgwt.client.types.VerticalAlignment; |
9 import com.smartgwt.client.util.SC; | 10 import com.smartgwt.client.util.SC; |
10 import com.smartgwt.client.widgets.Canvas; | 11 import com.smartgwt.client.widgets.Canvas; |
11 import com.smartgwt.client.widgets.Label; | 12 import com.smartgwt.client.widgets.Label; |
12 import com.smartgwt.client.widgets.form.DynamicForm; | 13 import com.smartgwt.client.widgets.form.DynamicForm; |
14 import com.smartgwt.client.widgets.form.fields.FormItem; | |
13 import com.smartgwt.client.widgets.form.fields.RadioGroupItem; | 15 import com.smartgwt.client.widgets.form.fields.RadioGroupItem; |
14 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; | 16 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; |
15 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; | 17 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; |
16 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; | 18 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; |
17 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; | 19 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; |
20 import com.smartgwt.client.widgets.form.fields.events.FocusEvent; | |
21 import com.smartgwt.client.widgets.form.fields.events.FocusHandler; | |
22 import com.smartgwt.client.widgets.grid.events.CellClickEvent; | |
23 import com.smartgwt.client.widgets.grid.events.CellClickHandler; | |
18 import com.smartgwt.client.widgets.layout.HLayout; | 24 import com.smartgwt.client.widgets.layout.HLayout; |
19 import com.smartgwt.client.widgets.layout.VLayout; | 25 import com.smartgwt.client.widgets.layout.VLayout; |
20 import com.smartgwt.client.widgets.tab.Tab; | 26 import com.smartgwt.client.widgets.tab.Tab; |
21 import com.smartgwt.client.widgets.tab.TabSet; | 27 import com.smartgwt.client.widgets.tab.TabSet; |
22 | 28 |
50 * | 56 * |
51 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 57 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
52 */ | 58 */ |
53 public class WQAdaptedInputPanel | 59 public class WQAdaptedInputPanel |
54 extends AbstractUIProvider | 60 extends AbstractUIProvider |
55 implements ChangeHandler, BlurHandler | 61 implements ChangeHandler, BlurHandler, FocusHandler |
56 { | 62 { |
57 private static final long serialVersionUID = -3218827566805476423L; | 63 private static final long serialVersionUID = -3218827566805476423L; |
58 | 64 |
59 /** The message class that provides i18n strings.*/ | 65 /** The message class that provides i18n strings.*/ |
60 protected FLYSConstants MESSAGE = GWT.create(FLYSConstants.class); | 66 protected FLYSConstants MESSAGE = GWT.create(FLYSConstants.class); |
101 protected QDTable qdTable; | 107 protected QDTable qdTable; |
102 | 108 |
103 protected WTable wTable; | 109 protected WTable wTable; |
104 | 110 |
105 protected TabSet tabs; | 111 protected TabSet tabs; |
112 | |
113 /** The currently focussed Input element. */ | |
114 protected DoubleArrayPanel itemWithFocus; | |
106 | 115 |
107 | 116 |
108 public WQAdaptedInputPanel() { | 117 public WQAdaptedInputPanel() { |
109 wqranges = new HashMap<String, DoubleArrayPanel>(); | 118 wqranges = new HashMap<String, DoubleArrayPanel>(); |
110 qranges = new HashMap<String, double[]>(); | 119 qranges = new HashMap<String, double[]>(); |
111 wranges = new HashMap<String, double[]>(); | 120 wranges = new HashMap<String, double[]>(); |
112 qdTable = new QDTable(); | 121 qdTable = new QDTable(); |
113 wTable = new WTable(); | 122 wTable = new WTable(); |
123 initTableListeners(); | |
114 } | 124 } |
115 | 125 |
116 | 126 |
117 @Override | 127 @Override |
118 public Canvas create(DataList data) { | 128 public Canvas create(DataList data) { |
144 tabs.setHeight100(); | 154 tabs.setHeight100(); |
145 | 155 |
146 Tab wTab = new Tab(MESSAGE.wq_table_w()); | 156 Tab wTab = new Tab(MESSAGE.wq_table_w()); |
147 Tab qTab = new Tab(MESSAGE.wq_table_q()); | 157 Tab qTab = new Tab(MESSAGE.wq_table_q()); |
148 | 158 |
159 qdTable.showSelect(); | |
149 wTab.setPane(wTable); | 160 wTab.setPane(wTable); |
150 qTab.setPane(qdTable); | 161 qTab.setPane(qdTable); |
151 qdTable.hideIconFields(); | |
152 | 162 |
153 tabs.addTab(wTab, 0); | 163 tabs.addTab(wTab, 0); |
154 tabs.addTab(qTab, 1); | 164 tabs.addTab(qTab, 1); |
155 | 165 |
156 helperContainer.addMember(tabs); | 166 helperContainer.addMember(tabs); |
157 | 167 |
158 fetchWQData(); | 168 fetchWQData(); |
159 } | 169 } |
160 | 170 |
171 | |
172 /** | |
173 * Initializes the listeners of the WQD tables. | |
174 */ | |
175 // TODO dupe from WQInputPanel | |
176 protected void initTableListeners() { | |
177 CellClickHandler handler = new CellClickHandler() { | |
178 @Override | |
179 public void onCellClick(CellClickEvent e) { | |
180 if (isWMode() || qdTable.isLocked()) { | |
181 return; | |
182 } | |
183 | |
184 int idx = e.getColNum(); | |
185 Record r = e.getRecord(); | |
186 double val = r.getAttributeAsDouble("value"); | |
187 | |
188 if (itemWithFocus != null) { | |
189 itemWithFocus.setValues(new double[]{val}); | |
190 } | |
191 } | |
192 }; | |
193 | |
194 qdTable.addCellClickHandler(handler); | |
195 } | |
161 | 196 |
162 @Override | 197 @Override |
163 public Canvas createOld(DataList dataList) { | 198 public Canvas createOld(DataList dataList) { |
164 List<Data> all = dataList.getAll(); | 199 List<Data> all = dataList.getAll(); |
165 Data wqData = getData(all, "wq_values"); | 200 Data wqData = getData(all, "wq_values"); |
424 | 459 |
425 for (DataItem item: items) { | 460 for (DataItem item: items) { |
426 String title = item.getLabel(); | 461 String title = item.getLabel(); |
427 String label = item.getStringValue(); | 462 String label = item.getStringValue(); |
428 DoubleArrayPanel dap = new DoubleArrayPanel( | 463 DoubleArrayPanel dap = new DoubleArrayPanel( |
429 label, null, this, TitleOrientation.LEFT); | 464 label, null, this, this, TitleOrientation.LEFT); |
430 | 465 |
431 wqranges.put(title, dap); | 466 wqranges.put(title, dap); |
432 | 467 |
433 if (item instanceof WQDataItem) { | 468 if (item instanceof WQDataItem) { |
434 WQDataItem wq = (WQDataItem) item; | 469 WQDataItem wq = (WQDataItem) item; |
592 | 627 |
593 | 628 |
594 @Override | 629 @Override |
595 public void onChange(ChangeEvent event) { | 630 public void onChange(ChangeEvent event) { |
596 // TODO IMPLEMENT ME | 631 // TODO IMPLEMENT ME |
632 } | |
633 | |
634 | |
635 /** Store the currently focussed DoubleArrayPanel. */ | |
636 @Override | |
637 public void onFocus(FocusEvent event) { | |
638 itemWithFocus = (DoubleArrayPanel) event.getForm(); | |
597 } | 639 } |
598 | 640 |
599 | 641 |
600 @Override | 642 @Override |
601 public void onBlur(BlurEvent event) { | 643 public void onBlur(BlurEvent event) { |