Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/CheckboxPanel.java @ 3531:718e5c6c992e
Maybe squashed issue531.
flys-client/trunk@5336 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 31 Aug 2012 16:10:40 +0000 |
parents | 6ededa5aa803 |
children | 75a3a41a6e51 |
line wrap: on
line source
package de.intevation.flys.client.client.ui.minfo; import java.util.HashMap; import java.util.LinkedList; import java.util.Set; import com.google.gwt.core.client.GWT; 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.CheckboxItem; import com.smartgwt.client.widgets.form.fields.FormItem; import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; import com.smartgwt.client.widgets.form.fields.events.ClickEvent; import com.smartgwt.client.widgets.form.fields.events.ClickHandler; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; import de.intevation.flys.client.client.ui.AbstractUIProvider; 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 CheckboxPanel extends AbstractUIProvider { private String dataName; HashMap<String, Boolean> values; protected DynamicForm form; public CheckboxPanel() { super(); values = new HashMap<String, Boolean>(); } @Override public Canvas createOld(DataList dataList) { Data data = dataList.get(0); DataItem[] items = data.getItems(); HLayout layout = new HLayout(); Label label = new Label(dataList.getLabel()); Label value = new Label(items[0].getLabel()); layout.setHeight(35); layout.setWidth(400); label.setWidth(200); layout.addMember(label); layout.addMember(value); layout.addMember(getBackButton(dataList.getState())); return layout; } @Override public Canvas create(DataList dataList) { Data data = dataList.get(0); DataItem[] items = data.getItems(); this.dataName = data.getLabel(); form = new DynamicForm(); VLayout layout = new VLayout(); Label label = new Label(data.getDescription()); LinkedList<CheckboxItem> cbItems = new LinkedList<CheckboxItem>(); for (int i = 0; i < items.length; i++) { CheckboxItem item = new CheckboxItem(items[i].getLabel()); GWT.log(items[i].getStringValue() + "; " + items[i].getLabel()); item.addChangedHandler(new ChangedHandler() { @Override public void onChanged(ChangedEvent event) { values.put( event.getItem().getName(), (Boolean)event.getItem().getValue()); } }); cbItems.add(item); } form.setFields(cbItems.toArray(new CheckboxItem[cbItems.size()])); layout.setMembersMargin(10); layout.setHeight(35); label.setHeight(35); layout.addMember(label); layout.addMember(form); layout.addMember(getNextButton()); layout.setMembersMargin(10); return layout; } @Override protected Data[] getData() { String value = ""; Set<String> entries = values.keySet(); boolean first = true; for (String s: values.keySet()) { if (!first) { value += ";"; } if ((Boolean)values.get(s) == true) { value += s; } first = false; } DataItem item = new DefaultDataItem("diameter", "diameter", value); return new Data[] {new DefaultData( "diameter", null, null, new DataItem[]{item})}; } }