Mercurial > dive4elements > river
diff flys-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixEventSelect.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/FixEventSelect.java@b296d435fc69 |
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/FixEventSelect.java Thu Apr 25 12:31:32 2013 +0200 @@ -0,0 +1,170 @@ +package de.intevation.flys.client.client.ui.fixation; + +import java.util.List; +import java.util.ArrayList; + +import com.google.gwt.core.client.GWT; + +import com.smartgwt.client.widgets.Canvas; +import com.smartgwt.client.widgets.Label; + +import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; + +import de.intevation.flys.client.client.FLYSConstants; + +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.IntDataItem; +import de.intevation.flys.client.shared.model.IntegerArrayData; +import de.intevation.flys.client.shared.model.FixingsOverviewInfo.FixEvent; + +import de.intevation.flys.client.client.services.FixingsOverviewService; +import de.intevation.flys.client.client.services.FixingsOverviewServiceAsync; + +/** + * This UIProvider lets you select events. + * + * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> + */ +public class FixEventSelect +extends FixationPanel +{ + /** The message class that provides i18n strings. */ + protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); + + public static final int MAX_DISPLAYED_ITEMS = 5; + + protected FixingsOverviewServiceAsync overviewService = + GWT.create(FixingsOverviewService.class); + + protected List<String> events; + + public FixEventSelect() { + htmlOverview = ""; + events = new ArrayList<String>(); + } + + public Canvas createWidget(DataList data) { + instances.put(this.artifact.getUuid(), this); + + VLayout layout = new VLayout(); + + Canvas title = new Label(MESSAGES.eventselect()); + title.setHeight("25px"); + + layout.addMember(title); + return layout; + } + + @Override + public Canvas createOld(DataList dataList) { + List<Data> list = dataList.getAll(); + + Data data = getData(list, "events"); + + VLayout dataLayout = new VLayout(); + dataLayout.setWidth(130); + + DataItem[] items = data.getItems(); + + if (items.length > MAX_DISPLAYED_ITEMS) { + for (int i = 0; i < MAX_DISPLAYED_ITEMS-2; ++i) { + Label l = new Label(items[i].getLabel()); + l.setHeight(25); + dataLayout.addMember(l); + } + Label l = new Label("..."); + l.setHeight(25); + dataLayout.addMember(l); + l = new Label(items[items.length-1].getLabel()); + l.setHeight(25); + dataLayout.addMember(l); + } + else { + for (int i = 0; i < items.length; i++) { + Label l = new Label(items[i].getLabel()); + l.setHeight(25); + dataLayout.addMember(l); + } + } + + HLayout layout = new HLayout(); + layout.setWidth("400px"); + + Label label = new Label(dataList.getLabel()); + label.setWidth("200px"); + + Canvas back = getBackButton(dataList.getState()); + + layout.addMember(label); + layout.addMember(dataLayout); + layout.addMember(back); + + return layout; + } + + + /** + * This method returns the selected data. + * + * @return the selected/inserted data. + */ + public Data[] getData() { + List<Data> data = new ArrayList<Data>(); + + if (events.size() > 0) { + IntDataItem[] arr = new IntDataItem[events.size()]; + for (int i = 0, E = events.size(); i < E; i++) { + try { + Integer v = new Integer(events.get(i)); + arr[i] = new IntDataItem("id", "id", v.intValue()); + } + catch (NumberFormatException nfe) { + return data.toArray(new Data[data.size()]); + } + } + + IntegerArrayData iad = + new IntegerArrayData("events", "events", arr); + + data.add(iad); + } + + return data.toArray(new Data[data.size()]); + } + + + @Override + public void setValues(String cid, boolean checked) { + if (checked) { + events.add(cid); + } + else { + if (events.contains(cid)) { + events.remove(cid); + } + } + } + + + @Override + public boolean renderCheckboxes() { + return true; + } + + + public void success() { + for (FixEvent fe: fixInfo.getEvents()) { + events.add(fe.getCId()); + } + } + + public void dumpGWT(String cid) { + GWT.log("Setting values for cId: " + cid); + GWT.log("River: " + fixInfo.getRiver()); + GWT.log("Date: " + fixInfo.getEventByCId(cid).getDate()); + GWT.log("Name: " + fixInfo.getEventByCId(cid).getDescription()); + } +}