Mercurial > dive4elements > river
view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/bundu/QSeriesLengthPanel.java @ 9709:b74f817435fe
comment removed
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Wed, 27 Jan 2021 11:47:38 +0100 |
parents | 096f151a0a9f |
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.bundu; import java.util.ArrayList; import java.util.List; import org.dive4elements.river.client.client.ui.AbstractUIProvider; import org.dive4elements.river.client.client.ui.PanelHelper; import org.dive4elements.river.client.client.ui.StringArrayParseHelper; import org.dive4elements.river.client.client.ui.ValidationHelper; 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.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.StaticTextItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; public class QSeriesLengthPanel extends AbstractUIProvider { private static final long serialVersionUID = 1L; private TextItem inputItem; protected String getDatakey() { return "year_input_q_series"; } private Canvas createWidget(final DataList data) { final VLayout layout = new VLayout(); final Label title = new Label(data.get(0).getDescription()); title.setHeight("35px"); final DynamicForm form = new DynamicForm(); form.setNumCols(4); this.inputItem = PanelHelper.createItem("NAME_TO_PREVENT_ERROR_MSG"); this.inputItem.setValue(40); this.inputItem.setShowTitle(false); this.inputItem.setWidth(100); final StaticTextItem textItem = new StaticTextItem("IRRELEVANT_NAME"); textItem.setValue("[a]"); // internationalisieren? textItem.setShowTitle(false); form.setFields(this.inputItem); form.setFields(this.inputItem, textItem); layout.addMember(title); layout.addMember(form); return layout; } @Override protected final Data[] getData() { // THIS is a Copy from abstractSingleItemPanel :-( final List<String> errors = this.validate(); // do not allow advance state if (errors.size() > 0) { showErrors(errors); } if (this.inputItem != null && !this.inputItem.getValueAsString().isEmpty()) { final List<Data> data = new ArrayList<Data>(); final DataItem yearsdata = new DefaultDataItem(getDatakey(), getDatakey(), StringArrayParseHelper.trimRawString(this.inputItem.getValueAsString())); data.add(new DefaultData(getDatakey(), null, null, new DataItem[] { yearsdata })); return data.toArray(new Data[data.size()]); } return new Data[0]; } @Override public Canvas createOld(final DataList dataList) { final List<Data> items = dataList.getAll(); final Data years = getData(items, getDatakey()); final DataItem[] yearsItems = years.getItems(); final StringBuilder builder = new StringBuilder(); final int year = Integer.valueOf(yearsItems[0].getStringValue()); builder.append(year).append(" "); if (year > 1) { builder.append(this.MSG.years_general()); } else { builder.append(this.MSG.year()); } final Label old = new Label(builder.toString()); 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(old); layout.addMember(back); return layout; } @Override public Canvas create(final DataList data) { final VLayout layout = new VLayout(); final Canvas submit = getNextButton(); final Canvas widget = createWidget(data); layout.addMember(widget); layout.addMember(submit); return layout; } @Override public List<String> validate() { final List<String> errors = new ArrayList<String>(); errors.addAll(ValidationHelper.checkForEmpty(this.inputItem, this.MSG)); try { final int value = Integer.valueOf(this.inputItem.getValueAsString()); if (value <= 0) { errors.add(this.MSG.error_invalid_integer_positive_required()); } } catch (final NumberFormatException e) { errors.add(this.MSG.error_invalid_integer()); } return errors; } }