teichmann@5861: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
teichmann@5861: * Software engineering by Intevation GmbH
teichmann@5861: *
teichmann@5993: * This file is Free Software under the GNU AGPL (>=v3)
teichmann@5861: * and comes with ABSOLUTELY NO WARRANTY! Check out the
teichmann@5993: * documentation coming with Dive4Elements River for details.
teichmann@5861: */
teichmann@5861:
teichmann@5835: package org.dive4elements.river.client.client.ui;
ingo@787:
gernotbelger@9220: import java.util.ArrayList;
gernotbelger@9220: import java.util.List;
gernotbelger@9220:
gernotbelger@9220: import org.dive4elements.river.client.shared.model.Data;
gernotbelger@9220: import org.dive4elements.river.client.shared.model.DataList;
gernotbelger@9220: import org.dive4elements.river.client.shared.model.ToLoad;
gernotbelger@9220: import org.dive4elements.river.client.shared.model.User;
gernotbelger@9220:
ingo@787: import com.smartgwt.client.widgets.Canvas;
ingo@787: import com.smartgwt.client.widgets.Label;
ingo@787: import com.smartgwt.client.widgets.layout.VLayout;
ingo@787:
ingo@787: /**
ingo@787: * @author Ingo Weinzierl
ingo@787: */
ingo@901: public abstract class DatacagePanel extends TextProvider {
ingo@787:
christian@4131: private static final long serialVersionUID = 6937994648371673222L;
christian@4131:
gernotbelger@9220: private String dataName;
ingo@901:
gernotbelger@9220: private final User user;
ingo@901:
gernotbelger@9220: private DatacageWidget widget;
ingo@901:
gernotbelger@9220: private final String outs;
gernotbelger@9220:
gernotbelger@9220: private final String parameters;
gernotbelger@9220:
gernotbelger@9220: private final boolean multiSelectable;
gernotbelger@9220:
gernotbelger@9220: public DatacagePanel(final User user, final String outs, final String parameters, final boolean multiSelectable) {
gernotbelger@9220: this.user = user;
gernotbelger@9220: this.outs = outs;
gernotbelger@9220: this.parameters = parameters;
gernotbelger@9220: this.multiSelectable = multiSelectable;
ingo@901: }
ingo@901:
ingo@787: @Override
gernotbelger@9220: public Canvas create(final DataList dataList) {
gernotbelger@9220: final Data data = dataList.get(0);
ingo@787: this.dataName = data.getLabel();
ingo@787:
ingo@901: createWidget();
ingo@787:
gernotbelger@9220: final Canvas label = new Label(data.getDescription());
gernotbelger@9220: final Canvas submit = getNextButton();
gernotbelger@9220: final VLayout layout = new VLayout();
ingo@787: label.setHeight(25);
ingo@787:
ingo@787: layout.addMember(label);
ingo@787: layout.addMember(submit);
ingo@787: layout.setMembersMargin(10);
ingo@787:
ingo@787: return layout;
ingo@787: }
ingo@787:
gernotbelger@9220: private void createWidget() {
ingo@787:
gernotbelger@9220: final DatacageWidgetData data = new DatacageWidgetData(this.artifact, this.user, this.outs, this.parameters, false);
ingo@787:
gernotbelger@9220: this.widget = new DatacageWidget(data);
ingo@787:
gernotbelger@9220: this.widget.setHeight100();
gernotbelger@9220:
gernotbelger@9220: this.helperContainer.addMember(this.widget);
gernotbelger@9220:
gernotbelger@9220: this.widget.setIsMutliSelectable(this.multiSelectable);
ingo@787: }
ingo@787:
ingo@787: @Override
ingo@901: public List validate() {
ingo@901: return new ArrayList();
ingo@787: }
ingo@901:
gernotbelger@9220: /**
gernotbelger@9220: * Unclear if this may implement super.getDataName...
gernotbelger@9220: */
gernotbelger@9220: protected final String getMyDataName() {
gernotbelger@9220: return this.dataName;
ingo@916: }
ingo@916:
gernotbelger@9220: protected final ToLoad getSelection() {
gernotbelger@9220: return this.widget.getSelection();
ingo@916: }
ingo@916:
gernotbelger@9220: protected final String[] getSelectionTitles() {
gernotbelger@9220: return this.widget.getSelectionTitles();
ingo@916: }
gernotbelger@9220: }