teichmann@5835: package org.dive4elements.river.client.client.ui; raimund@3508: christian@4184: import com.google.gwt.core.client.GWT; raimund@3508: raimund@3508: import com.smartgwt.client.widgets.Canvas; raimund@3508: import com.smartgwt.client.widgets.Label; raimund@3508: import com.smartgwt.client.widgets.form.DynamicForm; raimund@3508: import com.smartgwt.client.widgets.form.fields.RadioGroupItem; raimund@3508: import com.smartgwt.client.widgets.layout.HLayout; raimund@3508: import com.smartgwt.client.widgets.layout.VLayout; raimund@3508: teichmann@5835: import org.dive4elements.river.client.shared.model.Data; teichmann@5835: import org.dive4elements.river.client.shared.model.DataItem; teichmann@5835: import org.dive4elements.river.client.shared.model.DataList; teichmann@5835: import org.dive4elements.river.client.shared.model.DefaultData; teichmann@5835: import org.dive4elements.river.client.shared.model.DefaultDataItem; raimund@3508: christian@4184: import java.util.LinkedHashMap; christian@4184: raimund@3508: public class RadioPanel extends AbstractUIProvider { raimund@3508: christian@4184: private static final long serialVersionUID = 3357071563224461043L; christian@4184: raimund@3508: protected String dataName; raimund@3508: protected DynamicForm form; sascha@3547: raimund@3508: @Override raimund@3508: public Canvas createOld(DataList dataList) { raimund@3508: Data data = dataList.get(0); raimund@3508: DataItem[] items = data.getItems(); raimund@3508: raimund@3508: HLayout layout = new HLayout(); raimund@3508: Label label = new Label(dataList.getLabel()); raimund@3508: Label value = new Label(items[0].getLabel()); raimund@3508: raimund@3508: layout.setHeight(35); raimund@3508: layout.setWidth(400); raimund@3508: label.setWidth(200); raimund@3508: raimund@3508: layout.addMember(label); raimund@3508: layout.addMember(value); raimund@3508: layout.addMember(getBackButton(dataList.getState())); raimund@3508: raimund@3508: return layout; raimund@3508: } raimund@3508: raimund@3508: @Override raimund@3508: public Canvas create(DataList dataList) { raimund@3508: Data data = dataList.get(0); raimund@3508: DataItem[] items = data.getItems(); raimund@3508: raimund@3508: this.dataName = data.getLabel(); raimund@3508: raimund@3508: VLayout layout = new VLayout(); raimund@3508: Label label = new Label(data.getDescription()); raimund@3508: RadioGroupItem rgi = new RadioGroupItem("selection"); raimund@3508: rgi.setShowTitle(false); raimund@3508: GWT.log("items: " + items.length); raimund@3508: LinkedHashMap elems = new LinkedHashMap(); raimund@3508: for (int i = 0; i < items.length; i++) { raimund@3508: GWT.log(items[i].getStringValue() + "; " + items[i].getLabel()); raimund@3508: elems.put(items[i].getStringValue(), items[i].getLabel()); raimund@3508: } raimund@3508: rgi.setValueMap(elems); raimund@3508: rgi.setDefaultValue(items[0].getStringValue()); raimund@3508: raimund@3508: form = new DynamicForm(); raimund@3508: form.setFields(rgi); raimund@3508: layout.setMembersMargin(10); raimund@3508: layout.setHeight(35); raimund@3508: label.setHeight(35); raimund@3508: raimund@3508: layout.addMember(label); raimund@3508: layout.addMember(form); raimund@3508: layout.addMember(getNextButton()); raimund@3508: layout.setMembersMargin(10); raimund@3508: raimund@3508: //initDefaultValues(dataList); raimund@3508: raimund@3508: return layout; raimund@3508: } raimund@3508: raimund@3508: @Override raimund@3508: protected Data[] getData() { raimund@3508: String value = form.getValueAsString("selection"); rrenkert@4222: DataItem item = new DefaultDataItem(this.dataName, this.dataName, value); raimund@3508: return new Data[] { new DefaultData( rrenkert@4222: this.dataName, null, null, new DataItem[]{item})}; raimund@3508: } raimund@3508: raimund@3508: protected String getTitle(DataItem item) { raimund@3508: return item.getLabel(); raimund@3508: } raimund@3508: }