view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.java @ 8852:8f6d6d26e96f

Refaktored the DatacageTwinPanel so it is reusable.
author gernotbelger
date Thu, 18 Jan 2018 18:32:30 +0100
parents 36f52c80b7ac
children 28df64078f27
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.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 IDatacageTwinPanelInfo leftInfo;
	private IDatacageTwinPanelInfo rightInfo;

	public static interface IDatacageTwinPanelInfo extends IRecommendationInfo
	{
		String getOuts();
	}
	
	public DatacageTwinPanel(final User user, IValidator validator, final IDatacageTwinPanelInfo leftInfo, final IDatacageTwinPanelInfo rightInfo ) {
		super(user, validator, leftInfo, rightInfo);

		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()");

        Canvas submit = getNextButton();

        VLayout layout       = new VLayout();
        HLayout helperLayout = new HLayout();
        
        final String leftOuts = leftInfo.getOuts();
        final String rightOuts = rightInfo.getOuts();
        
        helperLayout.addMember(new DatacagePairWidget(this.artifact, user, leftOuts, rightOuts, differencesList));

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

        return layout;
    }
}

http://dive4elements.wald.intevation.org