Mercurial > dive4elements > river
view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RadioPanel.java @ 9195:a4121ec450d6
'ca.'-issue
ExportContextCSV+PDF separated
uinfo.inundationduration url export
author | gernotbelger |
---|---|
date | Fri, 29 Jun 2018 14:52:54 +0200 |
parents | 2ec912345359 |
children | c7e5285d434f |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.client.client.ui; import java.util.LinkedHashMap; import java.util.Map; import org.dive4elements.river.client.shared.model.Data; import org.dive4elements.river.client.shared.model.DataItem; import org.dive4elements.river.client.shared.model.DataList; import org.dive4elements.river.client.shared.model.DefaultData; import org.dive4elements.river.client.shared.model.DefaultDataItem; 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.RadioGroupItem; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; public class RadioPanel extends AbstractUIProvider { private static final long serialVersionUID = 3357071563224461043L; protected String dataName; protected DynamicForm form; private final Map<String, String> valueLabelMap = new LinkedHashMap<String, String>(); @Override public Canvas createOld(final DataList dataList) { final Data data = dataList.get(0); final DataItem[] items = data.getItems(); // hat Einfluss auf Layout in der Übersicht (oben) nach Setzen des Wertes für den State final HLayout layout = new HLayout(); final Label label = new Label(dataList.getLabel()); final Label value = new Label(items[0].getLabel()); layout.setWidth(400); label.setWidth(200); // nicht ändern; scheint wohl ne Konstante zu sein! value.setWidth(180); // änderbar layout.setHeight(35); layout.addMember(label); layout.addMember(value); layout.addMember(getBackButton(dataList.getState())); return layout; } @Override public Canvas create(final DataList dataList) { final Data data = dataList.get(0); final DataItem[] items = data.getItems(); this.dataName = data.getLabel(); final VLayout layout = new VLayout(); final Label label = new Label(data.getDescription()); label.setWrap(false); final RadioGroupItem rgi = new RadioGroupItem("selection"); rgi.setWrapTitle(false); rgi.setWrap(false); rgi.setShowTitle(false); GWT.log("items: " + items.length); final LinkedHashMap<String, String> elems = new LinkedHashMap<String, String>(); for (final DataItem item : items) { GWT.log(item.getStringValue() + "; " + item.getLabel()); elems.put(item.getStringValue(), item.getLabel()); this.valueLabelMap.put(item.getStringValue(), item.getLabel()); } rgi.setValueMap(elems); rgi.setDefaultValue(items[0].getStringValue()); this.form = new DynamicForm(); this.form.setFields(rgi); layout.setMembersMargin(10); layout.setHeight(35); label.setHeight(35); layout.setWidth(300); label.setWidth(300); layout.addMember(label); layout.addMember(this.form); layout.addMember(getNextButton()); layout.setMembersMargin(10); // initDefaultValues(dataList); return layout; } @Override protected Data[] getData() { final String value = this.form.getValueAsString("selection"); final DataItem item = new DefaultDataItem("label_irrelevant", "description_irrelevant", value); // Alles hoffnungslos: // final DataItem useHeader = new DefaultDataItem("label_irrelevant", "description_irrelevant", // this.valueLabelMap.get(value)); return new Data[] { new DefaultData(this.dataName, "label_no_effect", "description_no_effect", new DataItem[] { item // , useHeader }) // ,new DefaultData("value", "label", "description", new DataItem[] { useHeader }) DOES NOT WORK }; } }