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) {

http://dive4elements.wald.intevation.org