gernotbelger@9064: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde gernotbelger@9064: * Software engineering by Intevation GmbH gernotbelger@9064: * gernotbelger@9064: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9064: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9064: * documentation coming with Dive4Elements River for details. gernotbelger@9064: */ gernotbelger@9064: gernotbelger@9064: package org.dive4elements.river.client.client.ui.uinfo; gernotbelger@9064: gernotbelger@9066: import org.dive4elements.river.client.client.ui.PanelHelper; gernotbelger@9064: import org.dive4elements.river.client.shared.model.DataList; gernotbelger@9064: gernotbelger@9064: import com.google.gwt.core.client.GWT; gernotbelger@9064: import com.smartgwt.client.types.ListGridFieldType; gernotbelger@9064: import com.smartgwt.client.widgets.Button; gernotbelger@9064: import com.smartgwt.client.widgets.Canvas; gernotbelger@9064: import com.smartgwt.client.widgets.Label; gernotbelger@9064: import com.smartgwt.client.widgets.events.ClickEvent; gernotbelger@9064: import com.smartgwt.client.widgets.events.ClickHandler; gernotbelger@9064: import com.smartgwt.client.widgets.form.DynamicForm; gernotbelger@9064: import com.smartgwt.client.widgets.form.validator.IsIntegerValidator; gernotbelger@9064: import com.smartgwt.client.widgets.form.validator.IsStringValidator; gernotbelger@9064: import com.smartgwt.client.widgets.grid.ListGridField; gernotbelger@9064: import com.smartgwt.client.widgets.grid.ListGridRecord; gernotbelger@9064: import com.smartgwt.client.widgets.grid.events.RecordClickEvent; gernotbelger@9064: import com.smartgwt.client.widgets.grid.events.RecordClickHandler; gernotbelger@9064: import com.smartgwt.client.widgets.layout.HLayout; gernotbelger@9064: gernotbelger@9068: public class VegetationzonesTableEditPanel extends SuperVegZonesTablePanel { gernotbelger@9064: private static final long serialVersionUID = 1L; gernotbelger@9064: gernotbelger@9068: @Override gernotbelger@9064: public Canvas createWidget(final DataList data) { gernotbelger@9064: gernotbelger@9064: final HLayout fields = new HLayout(); gernotbelger@9064: final HLayout fields2 = new HLayout(); gernotbelger@9064: gernotbelger@9064: final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific gernotbelger@9068: gernotbelger@9068: data.add(VegetationzonesTablePanel.getDummyData()); gernotbelger@9064: gernotbelger@9064: final Label title = new Label(data.get(0).getDescription()); gernotbelger@9064: title.setHeight("35px"); // orig:25 gernotbelger@9064: gernotbelger@9066: this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200, new IsStringValidator()); gernotbelger@9066: this.start = PanelHelper.createItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40, new IsIntegerValidator()); gernotbelger@9066: this.end = PanelHelper.createItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40, new IsIntegerValidator()); gernotbelger@9064: gernotbelger@9064: final DynamicForm form1 = new DynamicForm(); gernotbelger@9064: final DynamicForm form2 = new DynamicForm(); gernotbelger@9064: form2.setNumCols(5); gernotbelger@9064: form1.setNumCols(7); gernotbelger@9064: form1.setFields(this.vegzone); gernotbelger@9064: form2.setFields(this.start, this.end); gernotbelger@9064: gernotbelger@9064: add.addClickHandler(new ClickHandler() { gernotbelger@9064: @Override gernotbelger@9064: public void onClick(final ClickEvent ce) { gernotbelger@9066: final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString(); gernotbelger@9066: final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString(); gernotbelger@9066: final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString(); gernotbelger@9064: if (v1 == null || v2 == null || v3 == null) { gernotbelger@9064: return; gernotbelger@9064: } gernotbelger@9069: try { gernotbelger@9069: final double test = Double.valueOf(v1); gernotbelger@9069: final double test2 = Double.valueOf(v2); gernotbelger@9069: // TODO: MAKE MESSAGE, Apply Format (1.000,00) gernotbelger@9069: } gernotbelger@9069: catch (final Exception e) { gernotbelger@9069: e.printStackTrace(); gernotbelger@9069: return; gernotbelger@9069: } gernotbelger@9064: gernotbelger@9064: final ListGridRecord r = new ListGridRecord(); gernotbelger@9064: r.setAttribute("vegzone", v3); gernotbelger@9064: r.setAttribute("from", v1); gernotbelger@9064: r.setAttribute("to", v2); gernotbelger@9066: VegetationzonesTableEditPanel.this.elements.addData(r); gernotbelger@9064: } gernotbelger@9064: }); gernotbelger@9064: gernotbelger@9064: final Label sel = new Label(this.MSG.select()); gernotbelger@9064: sel.setHeight(25); gernotbelger@9064: this.elements.setWidth(450); // 185 gernotbelger@9069: this.elements.setHeight(300); // 120 gernotbelger@9064: this.elements.setShowHeaderContextMenu(false); gernotbelger@9064: this.elements.setCanReorderFields(false); gernotbelger@9064: this.elements.setCanSort(false); gernotbelger@9064: this.elements.setCanEdit(false); gernotbelger@9064: final ListGridField vegzone = new ListGridField("vegzone", this.MSG.uinfo_vegetation_zones_label()); gernotbelger@9064: final ListGridField from = new ListGridField("from", this.MSG.uinfo_vegetation_zones_from()); gernotbelger@9064: final ListGridField to = new ListGridField("to", this.MSG.uinfo_vegetation_zones_to()); gernotbelger@9064: vegzone.setWidth(285); gernotbelger@9064: from.setWidth(70); gernotbelger@9064: to.setWidth(70); gernotbelger@9064: gernotbelger@9068: addDataInit(data); gernotbelger@9068: gernotbelger@9064: final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") { gernotbelger@9064: { gernotbelger@9064: setType(ListGridFieldType.ICON); gernotbelger@9066: setIcon(GWT.getHostPageBaseURL() + VegetationzonesTableEditPanel.this.MSG.removeFeature()); gernotbelger@9064: setCanEdit(false); gernotbelger@9064: setCanFilter(false); gernotbelger@9064: setCanSort(false); gernotbelger@9064: setCanGroupBy(false); gernotbelger@9064: setCanFreeze(false); gernotbelger@9064: setWidth(25); gernotbelger@9064: } gernotbelger@9064: }; gernotbelger@9064: gernotbelger@9064: this.elements.addRecordClickHandler(new RecordClickHandler() { gernotbelger@9064: @Override gernotbelger@9064: public void onRecordClick(final RecordClickEvent event) { gernotbelger@9064: // Just handle remove-clicks gernotbelger@9064: if (!event.getField().getName().equals(removeField.getName())) { gernotbelger@9064: return; gernotbelger@9064: } gernotbelger@9064: event.getViewer().removeData(event.getRecord()); gernotbelger@9064: } gernotbelger@9064: }); gernotbelger@9064: gernotbelger@9064: this.elements.setFields(vegzone, from, to, removeField); gernotbelger@9064: gernotbelger@9064: fields.addMember(form1); gernotbelger@9064: fields2.addMember(form2); gernotbelger@9064: gernotbelger@9068: this.tableLayout.addMember(this.elements); gernotbelger@9068: this.root.addMember(title); gernotbelger@9068: this.root.addMember(this.input); gernotbelger@9068: this.root.addMember(this.tableLayout); gernotbelger@9068: this.root.addMember(PanelHelper.getSpacer(10)); gernotbelger@9068: this.root.addMember(fields); gernotbelger@9068: this.root.addMember(fields2); gernotbelger@9068: this.root.addMember(PanelHelper.getSpacer(10)); gernotbelger@9068: this.root.addMember(add); gernotbelger@9068: this.root.addMember(PanelHelper.getSpacer(20)); gernotbelger@9064: gernotbelger@9068: return this.root; gernotbelger@9064: } gernotbelger@9064: gernotbelger@9064: }