teichmann@5835: package org.dive4elements.river.client.client.ui; ingo@787: ingo@792: import com.smartgwt.client.types.FieldType; ingo@787: import com.smartgwt.client.widgets.Canvas; ingo@787: import com.smartgwt.client.widgets.Label; ingo@787: import com.smartgwt.client.widgets.layout.VLayout; ingo@787: 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; ingo@787: ingo@787: /** ingo@787: * @author Ingo Weinzierl ingo@787: */ ingo@792: public class BooleanPanel extends TextProvider { ingo@787: christian@4131: private static final long serialVersionUID = -8448442865635399232L; christian@4131: ingo@792: public static final String FIELD_NAME = "boolean_field"; ingo@792: public static final int TITLE_WIDTH = 0; ingo@787: ingo@787: protected String dataName; ingo@787: ingo@787: ingo@787: @Override ingo@787: public Canvas create(DataList dataList) { ingo@787: Data data = dataList.get(0); ingo@787: DataItem[] items = data.getItems(); ingo@787: ingo@787: this.dataName = data.getLabel(); ingo@787: ingo@787: VLayout layout = new VLayout(); ingo@787: Label label = new Label(data.getDescription()); ingo@792: Canvas form = createForm(getTitle(items[0])); ingo@787: ingo@787: layout.setMembersMargin(10); ingo@787: layout.setHeight(35); ingo@787: label.setHeight(35); ingo@787: ingo@787: layout.addMember(label); ingo@792: layout.addMember(form); ingo@787: layout.addMember(getNextButton()); ingo@792: layout.setMembersMargin(10); ingo@787: ingo@794: initDefaultValues(dataList); ingo@794: ingo@787: return layout; ingo@787: } ingo@787: ingo@787: ingo@792: protected String getTitle(DataItem item) { ingo@792: return item.getLabel(); ingo@787: } ingo@787: ingo@787: ingo@787: @Override ingo@794: protected void initDefaultValues(DataList dataList) { ingo@794: Data data = dataList.get(0); ingo@794: DataItem item = data.getDefault(); ingo@794: ingo@794: String value = item.getStringValue(); ingo@794: Boolean bool = Boolean.valueOf(value); ingo@794: ingo@794: if (bool) { ingo@794: form.setValue(getFieldName(), bool); ingo@794: } ingo@794: } ingo@794: ingo@794: ingo@794: @Override ingo@792: protected FieldType getFieldType() { ingo@792: return FieldType.BOOLEAN; ingo@787: } ingo@787: ingo@787: ingo@787: @Override ingo@792: protected String getFieldName() { ingo@792: return FIELD_NAME; ingo@792: } ingo@792: ingo@792: ingo@792: @Override ingo@792: protected String getDataName() { ingo@792: return dataName; ingo@792: } ingo@792: ingo@792: ingo@792: @Override ingo@792: protected String getValueAsString() { ingo@792: Boolean aBool = (Boolean) form.getValue(getFieldName()); ingo@792: ingo@794: return aBool != null ? aBool.toString() : "false"; ingo@792: } ingo@792: ingo@792: ingo@792: @Override ingo@792: protected int getTitleWidth() { ingo@792: return TITLE_WIDTH; ingo@787: } ingo@787: } ingo@787: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :