Mercurial > dive4elements > river
view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java @ 9133:af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
author | gernotbelger |
---|---|
date | Thu, 07 Jun 2018 11:41:10 +0200 |
parents | 431f1c269be5 |
children | 22a3999fd536 |
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.uinfo; import org.dive4elements.river.client.client.ui.PanelHelper; import org.dive4elements.river.client.shared.model.DataList; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.Layout; import com.smartgwt.client.widgets.layout.VLayout; public class VegetationzonesTableEditPanel extends AbstractVegZonesTablePanel { private static final long serialVersionUID = 1L; private TextItem vegzone; private TextItem start; private TextItem end; @Override public void createWidget(final Layout root, final DataList data) { final ListGrid elements = super.createTable(root, data, "450", true); this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), "*");// 450); this.vegzone.setColSpan(4); this.start = PanelHelper.createIntegerItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), "*"); this.end = PanelHelper.createIntegerItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), "*"); final VLayout fields = new VLayout(); final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific final DynamicForm form1 = new DynamicForm(); form1.setNumCols(4); // für Layout untereinander muss 2 eingestellt werden form1.setFields(this.vegzone, this.start, this.end); add.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent ce) { final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString(); final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString(); final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString(); final String message = validate(v1, v2, v3); if (message != null) { SC.warn(message); return; } final ListGridRecord r = new ListGridRecord(); r.setAttribute("vegzone", v3); r.setAttribute("from", v1); r.setAttribute("to", v2); elements.addData(r); final String sortField = elements.getSortField(); if (sortField != null) { elements.toggleSort(sortField); elements.toggleSort(sortField); // HACK. has to be. otherwise normalizer won't be called :-( } } }); fields.addMember(form1); root.addMember(fields); root.addMember(PanelHelper.getSpacer(10)); root.addMember(add); root.addMember(PanelHelper.getSpacer(20)); } protected String validate(final String v1, final String v2, final String v3) { if (v1 == null || v2 == null || v3 == null || v1.trim().isEmpty() || v2.trim().isEmpty() || v3.trim().isEmpty()) return this.MSG.uinfo_vegetation_zones_validation_empty(); try { final Integer from = Integer.valueOf(v1); final Integer to = Integer.valueOf(v2); if (from < 0 || from > 365) return this.MSG.uinfo_vegetation_zones_validation_range(); if (to < 0 || to > 365) return this.MSG.uinfo_vegetation_zones_validation_range(); if (from > to) return this.MSG.uinfo_vegetation_zones_validation_from_greater_to(); return null; } catch (final NumberFormatException e) { return this.MSG.uinfo_vegetation_zones_invalid_integer(); } } }