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: }