comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java @ 250:27f12703937e

Enable or disable table rows depending on the WQ selection. flys-client/trunk@1841 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Thu, 05 May 2011 15:42:38 +0000
parents 6c7133eb8c4c
children 337f5a7c7160
comparison
equal deleted inserted replaced
249:6c7133eb8c4c 250:27f12703937e
19 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; 19 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
20 import com.smartgwt.client.widgets.layout.HLayout; 20 import com.smartgwt.client.widgets.layout.HLayout;
21 import com.smartgwt.client.widgets.layout.VLayout; 21 import com.smartgwt.client.widgets.layout.VLayout;
22 import com.smartgwt.client.widgets.grid.ListGrid; 22 import com.smartgwt.client.widgets.grid.ListGrid;
23 import com.smartgwt.client.widgets.grid.ListGridField; 23 import com.smartgwt.client.widgets.grid.ListGridField;
24 import com.smartgwt.client.widgets.grid.ListGridRecord;
24 import com.smartgwt.client.widgets.grid.events.CellClickHandler; 25 import com.smartgwt.client.widgets.grid.events.CellClickHandler;
25 import com.smartgwt.client.widgets.grid.events.CellClickEvent; 26 import com.smartgwt.client.widgets.grid.events.CellClickEvent;
26 27
27 import de.intevation.flys.client.shared.model.Data; 28 import de.intevation.flys.client.shared.model.Data;
28 import de.intevation.flys.client.shared.model.DataItem; 29 import de.intevation.flys.client.shared.model.DataItem;
255 addWQ.setType(ListGridFieldType.ICON); 256 addWQ.setType(ListGridFieldType.ICON);
256 addWQ.setWidth(30); 257 addWQ.setWidth(30);
257 258
258 CellClickHandler cch = new CellClickHandler() { 259 CellClickHandler cch = new CellClickHandler() {
259 public void onCellClick(CellClickEvent e) { 260 public void onCellClick(CellClickEvent e) {
260 if (e.getColNum() == 0 && !e.getRecord().getEnabled ()) { 261 if (e.getColNum() == 0 && e.getRecord().getEnabled ()) {
261 Record r = e.getRecord (); 262 Record r = e.getRecord ();
262 double val = r.getAttributeAsDouble("value"); 263 double val = r.getAttributeAsDouble("value");
263 if(isWMode() && !isRangeMode()) { 264 if(isWMode() && !isRangeMode()) {
264 double[] in = wArrayPanel.getInputValues(); 265 double[] in = wArrayPanel.getInputValues();
265 int size = 0; 266 int size = 0;
302 } 303 }
303 }; 304 };
304 305
305 CellClickHandler cchRange = new CellClickHandler() { 306 CellClickHandler cchRange = new CellClickHandler() {
306 public void onCellClick(CellClickEvent e) { 307 public void onCellClick(CellClickEvent e) {
307 if (e.getColNum() == 0 && !e.getRecord().getEnabled ()) { 308 if (e.getColNum() == 0 && e.getRecord().getEnabled ()) {
308 Record r = e.getRecord (); 309 Record r = e.getRecord ();
309 double val = r.getAttributeAsDouble("value"); 310 double val = r.getAttributeAsDouble("value");
310 if(isWMode() && isRangeMode()) { 311 if(isWMode() && isRangeMode()) {
311 wRangePanel.setValues( 312 wRangePanel.setValues(
312 val, 313 val,
318 val, 319 val,
319 qRangePanel.getTo(), 320 qRangePanel.getTo(),
320 qRangePanel.getStep()); 321 qRangePanel.getStep());
321 } 322 }
322 } 323 }
323 if (e.getColNum() == 1 && !e.getRecord().getEnabled()) { 324 if (e.getColNum() == 1 && e.getRecord().getEnabled()) {
324 Record r = e.getRecord (); 325 Record r = e.getRecord ();
325 double val = r.getAttributeAsDouble("value"); 326 double val = r.getAttributeAsDouble("value");
326 if (isWMode() && isRangeMode()) { 327 if (isWMode() && isRangeMode()) {
327 wRangePanel.setValues( 328 wRangePanel.setValues(
328 wRangePanel.getFrom(), 329 wRangePanel.getFrom(),
787 else { 788 else {
788 wqMode = (String) event.getValue(); 789 wqMode = (String) event.getValue();
789 inputMode = form.getValueAsString(FIELD_MODE); 790 inputMode = form.getValueAsString(FIELD_MODE);
790 } 791 }
791 792
793 updatePanels(wqMode, inputMode);
794 }
795
796
797 protected void updatePanels(String wqMode, String inputMode) {
792 container.removeMembers(container.getMembers()); 798 container.removeMembers(container.getMembers());
793 799 GWT.log("updating Panel and Table");
794 Canvas newPanel = null;
795
796 if (wqMode.equals(FIELD_WQ_W)) { 800 if (wqMode.equals(FIELD_WQ_W)) {
797 if (inputMode.equals(FIELD_MODE_SINGLE)) { 801 if (inputMode.equals(FIELD_MODE_SINGLE)) {
798 // Single W mode 802 // Single W mode
799 double[] values = getSingleW(); 803 double[] values = getSingleW();
800 804
801 wArrayPanel = new DoubleArrayPanel( 805 wArrayPanel = new DoubleArrayPanel(
802 MESSAGE.unitWSingle(), values, this); 806 MESSAGE.unitWSingle(), values, this);
803 807
804 container.addMember(wArrayPanel); 808 container.addMember(wArrayPanel);
805 container.addMember(wqTable); 809 container.addMember(wqTable);
810 int size = wqTable.getRecords().length;
811 for(int i = 0; i < size; i++) {
812 ListGridRecord r = wqTable.getRecord(i);
813 String type = r.getAttributeAsString("type");
814 if (type.equals("W")) {
815 wqTable.getRecord(i).setEnabled(true);
816 }
817 else if(type.equals("D") || type.equals("Q")) {
818 wqTable.getRecord(i).setEnabled(false);
819 }
820 }
806 } 821 }
807 else { 822 else {
808 // Range W mode 823 // Range W mode
809 double from = getFromW(); 824 double from = getFromW();
810 double to = getToW(); 825 double to = getToW();
815 from, to, step, 830 from, to, step,
816 250, 831 250,
817 this); 832 this);
818 container.addMember(wRangePanel); 833 container.addMember(wRangePanel);
819 container.addMember(wqRangeTable); 834 container.addMember(wqRangeTable);
835 int size = wqRangeTable.getRecords().length;
836 for(int i = 0; i < size; i++) {
837 ListGridRecord r = wqRangeTable.getRecord(i);
838 String type = r.getAttributeAsString("type");
839 if (type.equals("W")) {
840 wqRangeTable.getRecord(i).setEnabled(true);
841 }
842 else if(type.equals("D") || type.equals("Q")) {
843 wqRangeTable.getRecord(i).setEnabled(false);
844 }
845 }
820 } 846 }
821 } 847 }
822 else { 848 else {
823 if (inputMode.equals(FIELD_MODE_SINGLE)) { 849 if (inputMode.equals(FIELD_MODE_SINGLE)) {
824 // Single Q mode 850 // Single Q mode
826 852
827 qArrayPanel = new DoubleArrayPanel( 853 qArrayPanel = new DoubleArrayPanel(
828 MESSAGE.unitQSingle(), values, this); 854 MESSAGE.unitQSingle(), values, this);
829 container.addMember(qArrayPanel); 855 container.addMember(qArrayPanel);
830 container.addMember(wqTable); 856 container.addMember(wqTable);
857 int size = wqTable.getRecords().length;
858 for(int i = 0; i < size; i++) {
859 ListGridRecord r = wqTable.getRecord(i);
860 String type = r.getAttributeAsString("type");
861 if (type.equals("W")) {
862 wqTable.getRecord(i).setEnabled(false);
863 }
864 else if(type.equals("D") || type.equals("Q")) {
865 wqTable.getRecord(i).setEnabled(true);
866 }
867 }
868
831 } 869 }
832 else { 870 else {
833 // Range Q mode 871 // Range Q mode
834 double from = getFromQ(); 872 double from = getFromQ();
835 double to = getToQ(); 873 double to = getToQ();
840 from, to, step, 878 from, to, step,
841 250, 879 250,
842 this); 880 this);
843 container.addMember(qRangePanel); 881 container.addMember(qRangePanel);
844 container.addMember(wqRangeTable); 882 container.addMember(wqRangeTable);
845 } 883 int size = wqRangeTable.getRecords().length;
846 } 884 for(int i = 0; i < size; i++) {
847 885 ListGridRecord r = wqRangeTable.getRecord(i);
848 } 886 String type = r.getAttributeAsString("type");
849 887 if (type.equals("W")) {
888 wqRangeTable.getRecord(i).setEnabled(false);
889 }
890 else if(type.equals("D") || type.equals("Q")) {
891 wqRangeTable.getRecord(i).setEnabled(true);
892 }
893 }
894 }
895 }
896 }
850 897
851 /** 898 /**
852 * This method is called if the value of one of the input fields might have 899 * This method is called if the value of one of the input fields might have
853 * changed. The entered values are validated and stored. 900 * changed. The entered values are validated and stored.
854 * 901 *
1093 if (num == 0) { 1140 if (num == 0) {
1094 return; 1141 return;
1095 } 1142 }
1096 tableData = wqi; 1143 tableData = wqi;
1097 addWQInfo(wqi); 1144 addWQInfo(wqi);
1145 updatePanels(FIELD_WQ_W, FIELD_MODE_SINGLE);
1098 } 1146 }
1099 } 1147 }
1100 ); 1148 );
1101 } 1149 }
1102 1150

http://dive4elements.wald.intevation.org