Mercurial > dive4elements > river
diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacagePairWidget.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 | af73fdd96920 |
children | 84397da33d17 |
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacagePairWidget.java Wed Jul 04 10:46:37 2018 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacagePairWidget.java Wed Jul 04 12:00:51 2018 +0200 @@ -9,9 +9,7 @@ package org.dive4elements.river.client.client.ui; import org.dive4elements.river.client.client.FLYSConstants; -import org.dive4elements.river.client.shared.model.Artifact; import org.dive4elements.river.client.shared.model.ToLoad; -import org.dive4elements.river.client.shared.model.User; import com.google.gwt.core.client.GWT; import com.smartgwt.client.util.SC; @@ -28,52 +26,40 @@ */ public class DatacagePairWidget extends VLayout { /** i18n resource. */ - protected FLYSConstants MSG = GWT.create(FLYSConstants.class); + private final FLYSConstants MSG = GWT.create(FLYSConstants.class); /** The "remote" ListGrid to insert data to when add-button is clicked. */ - protected ListGrid grid; + private final ListGrid grid; /** First (upper) DataCage Grid. */ - protected DatacageWidget firstDatacageWidget; + private final DatacageWidget firstDatacageWidget; /** Second (lower) DataCage Grid. */ - protected DatacageWidget secondDatacageWidget; + private final DatacageWidget secondDatacageWidget; /** Max number of recommendation pairs to be added */ private final int maxCount; + /** errorMsg maxCount */ private final String msgMaxCount; - /** - * - * @param artifact - * Artifact to query datacage with. - * @param user - * User to query datacage with. - * @param leftOuts - * outs to query the left datacage with. - * @param rightOuts - * outs to query the right datacage with. - * @param grid - * Grid into which to insert selection of pairs. - * @param max - */ - public DatacagePairWidget(final Artifact artifact, final User user, final String leftOuts, final String rightOuts, final ListGrid grid, final int maxCount, + public DatacagePairWidget(final DatacageWidgetData leftData, final DatacageWidgetData rightData, final ListGrid grid, final int maxCount, final String msgMaxCount) { this.msgMaxCount = msgMaxCount; this.maxCount = maxCount; this.grid = grid; final HLayout hLayout = new HLayout(); - this.firstDatacageWidget = new DatacageWidget(artifact, user, leftOuts, "load-system:true", false); - this.secondDatacageWidget = new DatacageWidget(artifact, user, rightOuts, "load-system:true", false); + + this.firstDatacageWidget = new DatacageWidget(leftData); + this.secondDatacageWidget = new DatacageWidget(rightData); + this.firstDatacageWidget.setIsMutliSelectable(false); this.secondDatacageWidget.setIsMutliSelectable(false); hLayout.addMember(this.firstDatacageWidget); hLayout.addMember(this.secondDatacageWidget); - // TODO: icon final Button plusBtn = new Button(this.MSG.datacage_add_pair()); plusBtn.setAutoFit(true); plusBtn.addClickHandler(new ClickHandler() { @@ -95,10 +81,13 @@ final ToLoad toLoad1 = this.firstDatacageWidget.getSelection(); final ToLoad toLoad2 = this.secondDatacageWidget.getSelection(); + // FIXME: allows to select folders... but it should not + if (toLoad1 == null || toLoad2 == null || toLoad1.toRecommendations().isEmpty() || toLoad2.toRecommendations().isEmpty()) { SC.say(this.MSG.warning_select_two_values()); return; } + if (this.grid.getTotalRows() >= this.maxCount) { SC.say(this.msgMaxCount); return; @@ -106,5 +95,4 @@ this.grid.addData(new RecommendationPairRecord(toLoad1.toRecommendations().get(0), toLoad2.toRecommendations().get(0))); } -} -// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : +} \ No newline at end of file