Mercurial > dive4elements > river
view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixEventSelect.java @ 9289:fe207a8699f7
Changed optics of groups in module selection
author | gernotbelger |
---|---|
date | Tue, 24 Jul 2018 10:51:09 +0200 |
parents | c7e5285d434f |
children |
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 Canvas dataLayout = getEventDataLayout(data); 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; } public static final VLayout getEventDataLayout(final Data data) { 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); } } return dataLayout; } /** * 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()); } } }