comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java @ 249:6c7133eb8c4c

Implemented handler for WQ value selection. flys-client/trunk@1837 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Thu, 05 May 2011 13:32:36 +0000
parents ed90309ec608
children 27f12703937e
comparison
equal deleted inserted replaced
248:ed90309ec608 249:6c7133eb8c4c
31 import de.intevation.flys.client.shared.model.DefaultDataItem; 31 import de.intevation.flys.client.shared.model.DefaultDataItem;
32 import de.intevation.flys.client.shared.model.WQInfoObject; 32 import de.intevation.flys.client.shared.model.WQInfoObject;
33 import de.intevation.flys.client.shared.model.WQInfoRecord; 33 import de.intevation.flys.client.shared.model.WQInfoRecord;
34 import de.intevation.flys.client.shared.model.ArtifactDescription; 34 import de.intevation.flys.client.shared.model.ArtifactDescription;
35 import com.smartgwt.client.types.ListGridFieldType; 35 import com.smartgwt.client.types.ListGridFieldType;
36 import com.smartgwt.client.types.SelectionStyle;
36 37
37 import de.intevation.flys.client.client.services.WQInfoService; 38 import de.intevation.flys.client.client.services.WQInfoService;
38 import de.intevation.flys.client.client.services.WQInfoServiceAsync; 39 import de.intevation.flys.client.client.services.WQInfoServiceAsync;
39 import de.intevation.flys.client.client.FLYSConstants; 40 import de.intevation.flys.client.client.FLYSConstants;
40 import de.intevation.flys.client.client.FLYSImages; 41 import de.intevation.flys.client.client.FLYSImages;
122 protected double stepQ; 123 protected double stepQ;
123 124
124 /** The values entered in the single Q mode.*/ 125 /** The values entered in the single Q mode.*/
125 protected double[] valuesQ; 126 protected double[] valuesQ;
126 127
128 /** The input panel for W values*/
129 protected DoubleArrayPanel wArrayPanel;
130
131 /** The input panel for q values*/
132 protected DoubleArrayPanel qArrayPanel;
133
134 /** The input panel for w range*/
135 protected DoubleRangePanel wRangePanel;
136
137 /** The input panel for q range*/
138 protected DoubleRangePanel qRangePanel;
139
127 /** The WQ Data*/ 140 /** The WQ Data*/
128 protected WQInfoObject[] tableData; 141 protected WQInfoObject[] tableData;
129 142
130 /** The WQ Input Table*/ 143 /** The WQ Input Table*/
131 protected ListGrid wqTable; 144 protected ListGrid wqTable;
239 wqRangeTable.setHeight(300); 252 wqRangeTable.setHeight(300);
240 253
241 ListGridField addWQ = new ListGridField("", ""); 254 ListGridField addWQ = new ListGridField("", "");
242 addWQ.setType(ListGridFieldType.ICON); 255 addWQ.setType(ListGridFieldType.ICON);
243 addWQ.setWidth(30); 256 addWQ.setWidth(30);
244 wqTable.addCellClickHandler(new CellClickHandler() { 257
258 CellClickHandler cch = new CellClickHandler() {
245 public void onCellClick(CellClickEvent e) { 259 public void onCellClick(CellClickEvent e) {
246 if (e.getColNum() == 0 && e.getRecord().getEnabled ()) { 260 if (e.getColNum() == 0 && !e.getRecord().getEnabled ()) {
247 Record r = e.getRecord (); 261 Record r = e.getRecord ();
248 double val = r.getAttributeAsDouble("value"); 262 double val = r.getAttributeAsDouble("value");
249 // setValue(val); 263 if(isWMode() && !isRangeMode()) {
264 double[] in = wArrayPanel.getInputValues();
265 int size = 0;
266 if (in == null) {
267 double[] vals = new double[1];
268 vals[0] = val;
269 wArrayPanel.setValues(vals);
270 setSingleW(vals);
271 }
272 else {
273 double[] vals = new double[in.length+1];
274 for(int i = 0; i < in.length; i++) {
275 vals[i] = in[i];
276 }
277 vals[in.length] = val;
278 wArrayPanel.setValues(vals);
279 setSingleW(vals);
280 }
281 }
282 else if (!isWMode() && !isRangeMode()) {
283 double[] in = qArrayPanel.getInputValues();
284 int size = 0;
285 if (in == null) {
286 double[] vals = new double[1];
287 vals[0] = val;
288 qArrayPanel.setValues(vals);
289 setSingleQ(vals);
290 }
291 else {
292 double[] vals = new double[in.length+1];
293 for(int i = 0; i < in.length; i++) {
294 vals[i] = in[i];
295 }
296 vals[in.length] = val;
297 qArrayPanel.setValues(vals);
298 setSingleQ(vals);
299 }
300 }
250 } 301 }
251 } 302 }
252 }); 303 };
304
305 CellClickHandler cchRange = new CellClickHandler() {
306 public void onCellClick(CellClickEvent e) {
307 if (e.getColNum() == 0 && !e.getRecord().getEnabled ()) {
308 Record r = e.getRecord ();
309 double val = r.getAttributeAsDouble("value");
310 if(isWMode() && isRangeMode()) {
311 wRangePanel.setValues(
312 val,
313 wRangePanel.getTo(),
314 wRangePanel. getStep());
315 }
316 else if (!isWMode() && isRangeMode()) {
317 qRangePanel.setValues(
318 val,
319 qRangePanel.getTo(),
320 qRangePanel.getStep());
321 }
322 }
323 if (e.getColNum() == 1 && !e.getRecord().getEnabled()) {
324 Record r = e.getRecord ();
325 double val = r.getAttributeAsDouble("value");
326 if (isWMode() && isRangeMode()) {
327 wRangePanel.setValues(
328 wRangePanel.getFrom(),
329 val,
330 wRangePanel.getStep());
331 }
332 else if(!isWMode() && isRangeMode()) {
333 qRangePanel.setValues(
334 qRangePanel.getFrom(),
335 val,
336 qRangePanel.getStep());
337 }
338 }
339 }
340 };
341 wqTable.addCellClickHandler(cch);
342 wqRangeTable.addCellClickHandler(cchRange);
253 addWQ.setCellIcon (IMAGES.markerGreen().getURL()); 343 addWQ.setCellIcon (IMAGES.markerGreen().getURL());
254 344
255 ListGridField addWQMin = new ListGridField("", ""); 345 ListGridField addWQMin = new ListGridField("", "");
256 addWQMin.setType(ListGridFieldType.ICON); 346 addWQMin.setType(ListGridFieldType.ICON);
257 addWQMin.setWidth(30); 347 addWQMin.setWidth(30);
258 ListGridField addWQMax = new ListGridField("", ""); 348 ListGridField addWQMax = new ListGridField("", "");
259 addWQMax.setType(ListGridFieldType.ICON); 349 addWQMax.setType(ListGridFieldType.ICON);
260 addWQMax.setWidth(30); 350 addWQMax.setWidth(30);
261 351
262 wqRangeTable.addCellClickHandler(new CellClickHandler() { 352 wqRangeTable.addCellClickHandler(cch);
263 public void onCellClick(CellClickEvent e) {
264 if (e.getColNum() == 0 && e.getRecord().getEnabled ()) {
265 Record r = e.getRecord ();
266 double val = r.getAttributeAsDouble("value");
267 // setValue(val);
268 }
269 else if (e.getColNum() == 1 && e.getRecord().getEnabled()) {
270
271 }
272 }
273 });
274 addWQMin.setCellIcon(IMAGES.markerGreen().getURL()); 353 addWQMin.setCellIcon(IMAGES.markerGreen().getURL());
275 addWQMax.setCellIcon(IMAGES.markerRed().getURL()); 354 addWQMax.setCellIcon(IMAGES.markerRed().getURL());
276 355
277 ListGridField name = new ListGridField("name", MESSAGE.name()); 356 ListGridField name = new ListGridField("name", MESSAGE.name());
278 name.setType(ListGridFieldType.TEXT); 357 name.setType(ListGridFieldType.TEXT);
292 type_r.setWidth("50"); 371 type_r.setWidth("50");
293 ListGridField value_r = new ListGridField("value", MESSAGE.wq_value()); 372 ListGridField value_r = new ListGridField("value", MESSAGE.wq_value());
294 value_r.setType(ListGridFieldType.TEXT); 373 value_r.setType(ListGridFieldType.TEXT);
295 type_r.setWidth("50"); 374 type_r.setWidth("50");
296 375
297 376 wqTable.setSelectionType(SelectionStyle.SINGLE);
377 wqRangeTable.setSelectionType(SelectionStyle.SINGLE);
298 wqTable.setFields(addWQ, name, type, value); 378 wqTable.setFields(addWQ, name, type, value);
299 wqRangeTable.setFields(addWQMin, addWQMax, name_r, type_r, value_r); 379 wqRangeTable.setFields(addWQMin, addWQMax, name_r, type_r, value_r);
300 } 380 }
301 381
302 /** 382 /**
388 container.setMembersMargin(30); 468 container.setMembersMargin(30);
389 createWQInputTable(); 469 createWQInputTable();
390 createWQInputPanel(); 470 createWQInputPanel();
391 // the initial panel is the Single-W panel. 471 // the initial panel is the Single-W panel.
392 double[] values = getSingleW(); 472 double[] values = getSingleW();
393 container.addMember(new DoubleArrayPanel( 473 wArrayPanel = new DoubleArrayPanel(
394 MESSAGE.unitWSingle(), values, this)); 474 MESSAGE.unitWSingle(), values, this);
395 475 container.addMember(wArrayPanel);
396 container.addMember(wqTable); 476 container.addMember(wqTable);
397 layout.addMember(modeForm); 477 layout.addMember(modeForm);
398 layout.addMember(container); 478 layout.addMember(container);
399 479
400 return layout; 480 return layout;
716 if (wqMode.equals(FIELD_WQ_W)) { 796 if (wqMode.equals(FIELD_WQ_W)) {
717 if (inputMode.equals(FIELD_MODE_SINGLE)) { 797 if (inputMode.equals(FIELD_MODE_SINGLE)) {
718 // Single W mode 798 // Single W mode
719 double[] values = getSingleW(); 799 double[] values = getSingleW();
720 800
721 newPanel = new DoubleArrayPanel( 801 wArrayPanel = new DoubleArrayPanel(
722 MESSAGE.unitWSingle(), values, this); 802 MESSAGE.unitWSingle(), values, this);
723 803
724 container.addMember(newPanel); 804 container.addMember(wArrayPanel);
725 container.addMember(wqTable); 805 container.addMember(wqTable);
726 } 806 }
727 else { 807 else {
728 // Range W mode 808 // Range W mode
729 double from = getFromW(); 809 double from = getFromW();
730 double to = getToW(); 810 double to = getToW();
731 double step = getStepW(); 811 double step = getStepW();
732 812
733 newPanel = new DoubleRangePanel( 813 wRangePanel = new DoubleRangePanel(
734 MESSAGE.unitWFrom(), MESSAGE.unitWTo(), MESSAGE.unitWStep(), 814 MESSAGE.unitWFrom(), MESSAGE.unitWTo(), MESSAGE.unitWStep(),
735 from, to, step, 815 from, to, step,
736 250, 816 250,
737 this); 817 this);
738 container.addMember(newPanel); 818 container.addMember(wRangePanel);
739 container.addMember(wqRangeTable); 819 container.addMember(wqRangeTable);
740 } 820 }
741 } 821 }
742 else { 822 else {
743 if (inputMode.equals(FIELD_MODE_SINGLE)) { 823 if (inputMode.equals(FIELD_MODE_SINGLE)) {
744 // Single Q mode 824 // Single Q mode
745 double[] values = getSingleQ(); 825 double[] values = getSingleQ();
746 826
747 newPanel = new DoubleArrayPanel( 827 qArrayPanel = new DoubleArrayPanel(
748 MESSAGE.unitQSingle(), values, this); 828 MESSAGE.unitQSingle(), values, this);
749 container.addMember(newPanel); 829 container.addMember(qArrayPanel);
750 container.addMember(wqTable); 830 container.addMember(wqTable);
751 } 831 }
752 else { 832 else {
753 // Range Q mode 833 // Range Q mode
754 double from = getFromQ(); 834 double from = getFromQ();
755 double to = getToQ(); 835 double to = getToQ();
756 double step = getStepQ(); 836 double step = getStepQ();
757 837
758 newPanel = new DoubleRangePanel( 838 qRangePanel = new DoubleRangePanel(
759 MESSAGE.unitQFrom(), MESSAGE.unitQTo(), MESSAGE.unitQStep(), 839 MESSAGE.unitQFrom(), MESSAGE.unitQTo(), MESSAGE.unitQStep(),
760 from, to, step, 840 from, to, step,
761 250, 841 250,
762 this); 842 this);
763 container.addMember(newPanel); 843 container.addMember(qRangePanel);
764 container.addMember(wqRangeTable); 844 container.addMember(wqRangeTable);
765 } 845 }
766 } 846 }
767 847
768 } 848 }
1029 wqRangeTable.addData(rec); 1109 wqRangeTable.addData(rec);
1030 } 1110 }
1031 return; 1111 return;
1032 } 1112 }
1033 } 1113 }
1034
1035
1036
1037 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 1114 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org