# HG changeset patch # User Raimund Renkert # Date 1342628207 0 # Node ID 65b71ddc77165bbd67c8472f8ac1d7084f55bd5c # Parent 2ead3a26d74e9f0a8093c6a61d290ce2285372e7 Show the overview and chart in function select state in fix analysis helper panel. flys-client/trunk@5043 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 2ead3a26d74e -r 65b71ddc7716 flys-client/ChangeLog --- a/flys-client/ChangeLog Wed Jul 18 13:08:57 2012 +0000 +++ b/flys-client/ChangeLog Wed Jul 18 16:16:47 2012 +0000 @@ -1,3 +1,12 @@ +2012-07-13 Raimund Renkert + + * src/main/java/de/intevation/flys/client/client/ui/fixation/FixFunctionSelect.java: + New. UI provider for function selection in fix analysis. This UI provider + shows the overview and chart in the helper panel. + + * src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java: + Use the new UI provider in function select state. + 2012-07-18 Felix Wolfsteller * src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java: diff -r 2ead3a26d74e -r 65b71ddc7716 flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java Wed Jul 18 13:08:57 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java Wed Jul 18 16:16:47 2012 +0000 @@ -2,6 +2,7 @@ import de.intevation.flys.client.shared.model.User; +import de.intevation.flys.client.client.ui.fixation.FixFunctionSelect; import de.intevation.flys.client.client.ui.fixation.FixLocationPanel; import de.intevation.flys.client.client.ui.fixation.FixPeriodPanel; import de.intevation.flys.client.client.ui.fixation.FixGaugeSelectPanel; @@ -109,6 +110,9 @@ else if (uiProvider.equals("fix.preprocessing_panel")) { return new BooleanPanel(); } + else if (uiProvider.equals("fix.functionselect")) { + return new FixFunctionSelect(); + } else if (uiProvider.equals("periods_select")) { return new SQMultiPeriodPanel(); } diff -r 2ead3a26d74e -r 65b71ddc7716 flys-client/src/main/java/de/intevation/flys/client/client/ui/fixation/FixFunctionSelect.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/fixation/FixFunctionSelect.java Wed Jul 18 16:16:47 2012 +0000 @@ -0,0 +1,156 @@ +package de.intevation.flys.client.client.ui.fixation; + +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.Map; + +import com.smartgwt.client.types.VerticalAlignment; +import com.smartgwt.client.widgets.Canvas; +import com.smartgwt.client.widgets.Label; +import com.smartgwt.client.widgets.form.DynamicForm; +import com.smartgwt.client.widgets.form.fields.SelectItem; +import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; + +import de.intevation.flys.client.shared.model.Data; +import de.intevation.flys.client.shared.model.DataItem; +import de.intevation.flys.client.shared.model.DataList; +import de.intevation.flys.client.shared.model.DefaultData; +import de.intevation.flys.client.shared.model.DefaultDataItem; + +public class FixFunctionSelect extends FixationPanel { + /** The combobox.*/ + protected DynamicForm form; + + @Override + public Canvas createWidget(DataList data) { + VLayout layout = new VLayout(); + layout.setAlign(VerticalAlignment.TOP); + layout.setHeight(25); + + LinkedHashMap initial = new LinkedHashMap(); + + form = new DynamicForm(); + + int size = data.size(); + + for (int i = 0; i < size; i++) { + Data d = data.get(i); + + Label label = new Label(d.getDescription()); + label.setValign(VerticalAlignment.TOP); + label.setHeight(20); + label.setWidth(400); + + SelectItem combobox = new SelectItem(d.getLabel()); + combobox.setWidth(250); + + LinkedHashMap it = new LinkedHashMap(); + + boolean defaultSet = false; + boolean first = true; + + DataItem def = d.getDefault(); + String defValue = def != null ? def.getStringValue() : null; + + if (defValue != null && defValue.length() > 0) { + initial.put(d.getLabel(), def.getStringValue()); + defaultSet = true; + } + + // I was here. Me 2. + for (DataItem item: d.getItems()) { + if (!defaultSet && first) { + initial.put(d.getLabel(), item.getStringValue()); + first = false; + } + + it.put(item.getStringValue(), item.getLabel()); + } + + label.setWidth(50); + combobox.setValueMap(it); + combobox.setShowTitle(false); + form.setItems(combobox); + + layout.addMember(label); + layout.addMember(form); + } + + form.setValues(initial); + + layout.setAlign(VerticalAlignment.TOP); + + return layout; + } + + + public Canvas createOld(DataList dataList) { + HLayout layout = new HLayout(); + VLayout vLayout = new VLayout(); + layout.setWidth("400px"); + + Label label = new Label(dataList.getLabel()); + label.setWidth("200px"); + + int size = dataList.size(); + for (int i = 0; i < size; i++) { + Data data = dataList.get(i); + DataItem[] items = data.getItems(); + + for (DataItem item: items) { + HLayout hLayout = new HLayout(); + + hLayout.addMember(label); + hLayout.addMember(new Label(item.getLabel())); + + vLayout.addMember(hLayout); + vLayout.setWidth("130px"); + } + } + + Canvas back = getBackButton(dataList.getState()); + + layout.addMember(label); + layout.addMember(vLayout); + layout.addMember(back); + + return layout; + } + + + public Data[] getData() { + Map values = form.getValues(); + Iterator keys = values.keySet().iterator(); + + Data[] list = new Data[values.size()]; + int i = 0; + + while (keys.hasNext()) { + String fieldname = (String) keys.next(); + String selection = (String) values.get(fieldname); + + DataItem item = new DefaultDataItem(fieldname, null, selection); + + list[i++] = new DefaultData( + fieldname, null, null, new DataItem[] { item }); + } + + return list; + } + + + @Override + public void setValues(String cid, boolean checked) { + } + + @Override + public boolean renderCheckboxes() { + return false; + } + + @Override + public void success() { + } + +}