view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.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 28df64078f27
children e3c2ae1887e8
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 org.dive4elements.river.client.shared.model.DataList;
import org.dive4elements.river.client.shared.model.User;

import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;

/**
 * A {@link AbstractPairRecommendationPanel} that uses a 'TwinDatacage' in the help-input area.
 * DatacagePairWidget which is put in the input-helper area.
 */
public abstract class DatacageTwinPanel extends AbstractPairRecommendationPanel {

    private final IDatacageTwinPanelInfo leftInfo;
    private final IDatacageTwinPanelInfo rightInfo;

    private final int maxCount;
    private final String msgMaxCount;

    public static interface IDatacageTwinPanelInfo extends IRecommendationInfo {
        String getOuts();
    }

    public DatacageTwinPanel(final User user, final IValidator validator, final IDatacageTwinPanelInfo leftInfo, final IDatacageTwinPanelInfo rightInfo,
            final int maxCount, final String msgMaxCount) {
        super(user, validator, leftInfo, rightInfo);

        this.maxCount = maxCount;
        this.msgMaxCount = msgMaxCount;
        this.leftInfo = leftInfo;
        this.rightInfo = rightInfo;
    }

    @Override
    protected final Canvas createChooserWidgets(final Canvas widget, final DataList dataList, final User user, final ListGrid differencesList) {
        GWT.log("createData()");

        final Canvas submit = getNextButton();

        final VLayout layout = new VLayout();
        final HLayout helperLayout = new HLayout();

        final String leftOuts = this.leftInfo.getOuts();
        final String rightOuts = this.rightInfo.getOuts();

        helperLayout.addMember(new DatacagePairWidget(this.artifact, user, leftOuts, rightOuts, differencesList, this.maxCount, this.msgMaxCount));

        if (dataList != null && dataList.get(0) != null && dataList.get(0).getDescription() != null) {
            final Label title = new Label(dataList.get(0).getDescription());
            title.setHeight("25px");
            layout.addMember(title);
        }

        layout.addMember(widget);
        layout.addMember(submit);
        layout.setMembersMargin(10);
        this.helperContainer.addMember(helperLayout);

        return layout;
    }

}

http://dive4elements.wald.intevation.org