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; felix@867: gernotbelger@9227: import org.dive4elements.river.client.client.ui.DatacagePairWidget.IDatacagePairControler; gernotbelger@8852: import org.dive4elements.river.client.shared.model.DataList; gernotbelger@8852: import org.dive4elements.river.client.shared.model.User; gernotbelger@8852: felix@867: import com.google.gwt.core.client.GWT; felix@867: import com.smartgwt.client.widgets.Canvas; gernotbelger@9133: import com.smartgwt.client.widgets.Label; felix@914: import com.smartgwt.client.widgets.grid.ListGrid; christian@4127: import com.smartgwt.client.widgets.layout.HLayout; christian@4127: import com.smartgwt.client.widgets.layout.VLayout; felix@867: felix@914: /** gernotbelger@8852: * A {@link AbstractPairRecommendationPanel} that uses a 'TwinDatacage' in the help-input area. felix@914: * DatacagePairWidget which is put in the input-helper area. felix@914: */ gernotbelger@9133: public abstract class DatacageTwinPanel extends AbstractPairRecommendationPanel { felix@1298: gernotbelger@9227: private static final long serialVersionUID = 1L; gernotbelger@9227: gernotbelger@9133: private final IDatacageTwinPanelInfo leftInfo; gernotbelger@9133: private final IDatacageTwinPanelInfo rightInfo; felix@1363: gernotbelger@9133: private final int maxCount; gernotbelger@9133: private final String msgMaxCount; gernotbelger@9133: gernotbelger@9227: private final IDatacagePairControler controler; gernotbelger@9227: gernotbelger@9133: public static interface IDatacageTwinPanelInfo extends IRecommendationInfo { gernotbelger@9133: String getOuts(); gernotbelger@9220: gernotbelger@9220: String getColumnLabel(); gernotbelger@9133: } gernotbelger@9133: gernotbelger@9227: public DatacageTwinPanel(final User user, final IValidator validator, final IDatacagePairControler controler, final IDatacageTwinPanelInfo leftInfo, gernotbelger@9227: final IDatacageTwinPanelInfo rightInfo, gernotbelger@9133: final int maxCount, final String msgMaxCount) { gernotbelger@9133: super(user, validator, leftInfo, rightInfo); gernotbelger@9133: gernotbelger@9227: this.controler = controler; gernotbelger@9133: this.maxCount = maxCount; gernotbelger@9133: this.msgMaxCount = msgMaxCount; gernotbelger@9133: this.leftInfo = leftInfo; gernotbelger@9133: this.rightInfo = rightInfo; gernotbelger@9133: } gernotbelger@9133: felix@867: @Override gernotbelger@8852: protected final Canvas createChooserWidgets(final Canvas widget, final DataList dataList, final User user, final ListGrid differencesList) { felix@867: GWT.log("createData()"); felix@867: gernotbelger@9133: final Canvas submit = getNextButton(); felix@867: gernotbelger@9133: final VLayout layout = new VLayout(); gernotbelger@9133: final HLayout helperLayout = new HLayout(); gernotbelger@9133: gernotbelger@9133: final String leftOuts = this.leftInfo.getOuts(); gernotbelger@9220: final String leftLabel = this.leftInfo.getColumnLabel(); gernotbelger@9220: final DatacageWidgetData leftData = new DatacageWidgetData(this.artifact, user, leftOuts, "load-system:true", false, leftLabel); gernotbelger@9220: gernotbelger@9133: final String rightOuts = this.rightInfo.getOuts(); gernotbelger@9220: final String rightLabel = this.rightInfo.getColumnLabel(); gernotbelger@9220: final DatacageWidgetData rightData = new DatacageWidgetData(this.artifact, user, rightOuts, "load-system:true", false, rightLabel); gernotbelger@9133: gernotbelger@9227: helperLayout.addMember(new DatacagePairWidget(this.controler, leftData, rightData, differencesList, this.maxCount, this.msgMaxCount)); gernotbelger@9133: gernotbelger@9133: if (dataList != null && dataList.get(0) != null && dataList.get(0).getDescription() != null) { gernotbelger@9133: final Label title = new Label(dataList.get(0).getDescription()); gernotbelger@9133: title.setHeight("25px"); gernotbelger@9133: layout.addMember(title); gernotbelger@9133: } felix@867: felix@867: layout.addMember(widget); felix@867: layout.addMember(submit); felix@867: layout.setMembersMargin(10); felix@914: this.helperContainer.addMember(helperLayout); felix@867: felix@914: return layout; felix@914: } gernotbelger@8852: }