view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.java @ 9416:05405292a7ca

Navigationtheme panel now shows themes of dWt and WQ charts grayed out, if the current station is outside the valid range of the theme.
author gernotbelger
date Thu, 16 Aug 2018 16:28:03 +0200
parents 84397da33d17
children 839b2aa84dd0
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.client.ui.DatacagePairWidget.IDatacagePairControler;
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 static final long serialVersionUID = 1L;

    private final IDatacageTwinPanelInfo leftInfo;
    private final IDatacageTwinPanelInfo rightInfo;

    private final int maxCount;
    private final String msgMaxCount;

    private final IDatacagePairControler controler;

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

        String getColumnLabel();
    }

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

        this.controler = controler;
        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 leftLabel = this.leftInfo.getColumnLabel();
        final DatacageWidgetData leftData = new DatacageWidgetData(this.artifact, user, leftOuts, "load-system:true", false, leftLabel);

        final String rightOuts = this.rightInfo.getOuts();
        final String rightLabel = this.rightInfo.getColumnLabel();
        final DatacageWidgetData rightData = new DatacageWidgetData(this.artifact, user, rightOuts, "load-system:true", false, rightLabel);

        helperLayout.addMember(new DatacagePairWidget(this.controler, leftData, rightData, 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