Mercurial > dive4elements > river
diff flys-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixFunctionSelect.java @ 5834:f507086aa94b
Repaired internal references.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:31:32 +0200 |
parents | flys-client/src/main/java/de/intevation/flys/client/client/ui/fixation/FixFunctionSelect.java@84a48acabd78 |
children | 821a02bbfb4e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixFunctionSelect.java Thu Apr 25 12:31:32 2013 +0200 @@ -0,0 +1,173 @@ +package de.intevation.flys.client.client.ui.fixation; + +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; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.Map; + +public class FixFunctionSelect extends FixationPanel { + private static final Map<String, String> funcDesc = new HashMap<String, String>(); + + static { + funcDesc.put("log", "W(Q) = m*ln(Q + b)"); + funcDesc.put("linear", "W(Q) = m * Q + b"); + funcDesc.put("log-linear", "W(Q) = a*ln(m*Q+b)"); + funcDesc.put("exp", "W(Q) = m * a^Q + b"); + funcDesc.put("quad", "W(Q) = n*Q^2+m*Q+b"); + funcDesc.put("pow", "W(Q) = a * Q^c + d"); + funcDesc.put("sq-pow", "S(Q) = a * Q^b"); + } + + /** 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<String, String> funcTypes = new LinkedHashMap<String, String>(); + + 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; + } + + funcTypes.put(item.getStringValue(), item.getLabel()); + } + + label.setWidth(50); + combobox.setValueMap(funcTypes); + combobox.setShowTitle(false); + form.setItems(combobox); + + layout.addMember(label); + layout.addMember(form); + } + + form.setValues(initial); + + layout.setAlign(VerticalAlignment.TOP); + + return layout; + } + + + @Override + 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(); + + String desc = funcDesc.containsKey(item.getLabel()) ? + funcDesc.get(item.getLabel()) : item.getLabel(); + hLayout.addMember(label); + hLayout.addMember(new Label(desc)); + + vLayout.addMember(hLayout); + vLayout.setWidth("130px"); + } + } + + Canvas back = getBackButton(dataList.getState()); + + layout.addMember(label); + layout.addMember(vLayout); + layout.addMember(back); + + return layout; + } + + + @Override + 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() { + } + +}