view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacagePanel.java @ 9220:e3c2ae1887e8

Allow to filter contents of datacage on client side. Allow to override column label of datacage Some code cleanup
author gernotbelger
date Wed, 04 Jul 2018 12:00:51 +0200
parents ea9eef426962
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;

import java.util.ArrayList;
import java.util.List;

import org.dive4elements.river.client.shared.model.Data;
import org.dive4elements.river.client.shared.model.DataList;
import org.dive4elements.river.client.shared.model.ToLoad;
import org.dive4elements.river.client.shared.model.User;

import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.layout.VLayout;

/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public abstract class DatacagePanel extends TextProvider {

    private static final long serialVersionUID = 6937994648371673222L;

    private String dataName;

    private final User user;

    private DatacageWidget widget;

    private final String outs;

    private final String parameters;

    private final boolean multiSelectable;

    public DatacagePanel(final User user, final String outs, final String parameters, final boolean multiSelectable) {
        this.user = user;
        this.outs = outs;
        this.parameters = parameters;
        this.multiSelectable = multiSelectable;
    }

    @Override
    public Canvas create(final DataList dataList) {
        final Data data = dataList.get(0);
        this.dataName = data.getLabel();

        createWidget();

        final Canvas label = new Label(data.getDescription());
        final Canvas submit = getNextButton();
        final VLayout layout = new VLayout();
        label.setHeight(25);

        layout.addMember(label);
        layout.addMember(submit);
        layout.setMembersMargin(10);

        return layout;
    }

    private void createWidget() {

        final DatacageWidgetData data = new DatacageWidgetData(this.artifact, this.user, this.outs, this.parameters, false);

        this.widget = new DatacageWidget(data);

        this.widget.setHeight100();

        this.helperContainer.addMember(this.widget);

        this.widget.setIsMutliSelectable(this.multiSelectable);
    }

    @Override
    public List<String> validate() {
        return new ArrayList<String>();
    }

    /**
     * Unclear if this may implement super.getDataName...
     */
    protected final String getMyDataName() {
        return this.dataName;
    }

    protected final ToLoad getSelection() {
        return this.widget.getSelection();
    }

    protected final String[] getSelectionTitles() {
        return this.widget.getSelectionTitles();
    }
}

http://dive4elements.wald.intevation.org