Mercurial > dive4elements > river
view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixEventSelect.java @ 9256:6c24c857ccf9
fixation refactoring and inputItem behaviour to interfaces
author | gernotbelger |
---|---|
date | Fri, 13 Jul 2018 12:04:21 +0200 |
parents | ea9eef426962 |
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.fixation; import java.util.ArrayList; import java.util.List; import org.dive4elements.river.client.client.FLYSConstants; import org.dive4elements.river.client.client.services.FixingsOverviewService; import org.dive4elements.river.client.client.services.FixingsOverviewServiceAsync; 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.FixingsOverviewInfo; import org.dive4elements.river.client.shared.model.FixingsOverviewInfo.FixEvent; import org.dive4elements.river.client.shared.model.IntDataItem; import org.dive4elements.river.client.shared.model.IntegerArrayData; 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; /** * 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. */ private final FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); private static final int MAX_DISPLAYED_ITEMS = 5; private final FixingsOverviewServiceAsync overviewService = GWT.create(FixingsOverviewService.class); private final List<String> events = new ArrayList<String>(); @Override public Canvas createWidget(final DataList data) { instances.put(this.artifact.getUuid(), this); final VLayout layout = new VLayout(); final Canvas title = new Label(this.MESSAGES.eventselect()); title.setHeight("25px"); layout.addMember(title); return layout; } @Override public Canvas createOld(final DataList dataList) { final List<Data> list = dataList.getAll(); final Data data = getData(list, "events"); final VLayout dataLayout = new VLayout(); dataLayout.setWidth(130); final DataItem[] items = data.getItems(); if (items.length > MAX_DISPLAYED_ITEMS) { for (int i = 0; i < MAX_DISPLAYED_ITEMS - 2; ++i) { final 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 (final DataItem item : items) { final Label l = new Label(item.getLabel()); l.setHeight(25); dataLayout.addMember(l); } } final HLayout layout = new HLayout(); layout.setWidth("400px"); final Label label = new Label(dataList.getLabel()); label.setWidth("200px"); final 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. */ @Override public Data[] getData() { final List<Data> data = new ArrayList<Data>(); if (this.events.size() > 0) { final IntDataItem[] arr = new IntDataItem[this.events.size()]; for (int i = 0, E = this.events.size(); i < E; i++) { try { final Integer v = new Integer(this.events.get(i)); arr[i] = new IntDataItem("id", "id", v.intValue()); } catch (final NumberFormatException nfe) { return data.toArray(new Data[data.size()]); } } final IntegerArrayData iad = new IntegerArrayData("events", "events", arr); data.add(iad); } return data.toArray(new Data[data.size()]); } @Override public void setValues(final String cid, final boolean checked) { if (checked) { this.events.add(cid); } else { if (this.events.contains(cid)) { this.events.remove(cid); } } } @Override public boolean renderCheckboxes() { return true; } @Override public void success(final FixingsOverviewInfo fixInfo) { for (final FixEvent fe : fixInfo.getEvents()) { this.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()); // } }