annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.java @ 9580:839b2aa84dd0

minuend/subtrahend-UI-switch
author gernotbelger
date Tue, 08 Jan 2019 17:01:09 +0100
parents 84397da33d17
children
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 9220
diff changeset
11 import org.dive4elements.river.client.client.ui.DatacagePairWidget.IDatacagePairControler;
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
12 import org.dive4elements.river.client.shared.model.DataList;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
13 import org.dive4elements.river.client.shared.model.User;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
14
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import com.google.gwt.core.client.GWT;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.Canvas;
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
17 import com.smartgwt.client.widgets.Label;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
18 import com.smartgwt.client.widgets.grid.ListGrid;
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
19 import com.smartgwt.client.widgets.layout.HLayout;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
20 import com.smartgwt.client.widgets.layout.VLayout;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
22 /**
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
23 * A {@link AbstractPairRecommendationPanel} that uses a 'TwinDatacage' in the help-input area.
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
24 * DatacagePairWidget which is put in the input-helper area.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
25 */
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
26 public abstract class DatacageTwinPanel extends AbstractPairRecommendationPanel {
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
27
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 9220
diff changeset
28 private static final long serialVersionUID = 1L;
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 9220
diff changeset
29
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
30 private final IDatacageTwinPanelInfo leftInfo;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
31 private final IDatacageTwinPanelInfo rightInfo;
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
32
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
33 private final int maxCount;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
34 private final String msgMaxCount;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
35
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 9220
diff changeset
36 private final IDatacagePairControler controler;
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 9220
diff changeset
37
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
38 public static interface IDatacageTwinPanelInfo extends IRecommendationInfo {
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
39 String getOuts();
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
40
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
41 String getColumnLabel();
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
42 }
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
43
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 9220
diff changeset
44 public DatacageTwinPanel(final User user, final IValidator validator, final IDatacagePairControler controler, final IDatacageTwinPanelInfo leftInfo,
9580
839b2aa84dd0 minuend/subtrahend-UI-switch
gernotbelger
parents: 9227
diff changeset
45 final IDatacageTwinPanelInfo rightInfo, final int maxCount, final String msgMaxCount, final boolean minuendSubtrahendUiReversed) {
839b2aa84dd0 minuend/subtrahend-UI-switch
gernotbelger
parents: 9227
diff changeset
46 super(user, validator, leftInfo, rightInfo, minuendSubtrahendUiReversed);
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
47
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 9220
diff changeset
48 this.controler = controler;
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
49 this.maxCount = maxCount;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
50 this.msgMaxCount = msgMaxCount;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
51 this.leftInfo = leftInfo;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
52 this.rightInfo = rightInfo;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
53 }
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
54
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 @Override
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
56 protected final Canvas createChooserWidgets(final Canvas widget, final DataList dataList, final User user, final ListGrid differencesList) {
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 GWT.log("createData()");
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
59 final Canvas submit = getNextButton();
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
61 final VLayout layout = new VLayout();
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
62 final HLayout helperLayout = new HLayout();
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
63
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
64 final String leftOuts = this.leftInfo.getOuts();
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
65 final String leftLabel = this.leftInfo.getColumnLabel();
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
66 final DatacageWidgetData leftData = new DatacageWidgetData(this.artifact, user, leftOuts, "load-system:true", false, leftLabel);
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
67
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
68 final String rightOuts = this.rightInfo.getOuts();
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
69 final String rightLabel = this.rightInfo.getColumnLabel();
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
70 final DatacageWidgetData rightData = new DatacageWidgetData(this.artifact, user, rightOuts, "load-system:true", false, rightLabel);
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
71
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 9220
diff changeset
72 helperLayout.addMember(new DatacagePairWidget(this.controler, leftData, rightData, differencesList, this.maxCount, this.msgMaxCount));
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
73
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
74 if (dataList != null && dataList.get(0) != null && dataList.get(0).getDescription() != null) {
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
75 final Label title = new Label(dataList.get(0).getDescription());
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
76 title.setHeight("25px");
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
77 layout.addMember(title);
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
78 }
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 layout.addMember(widget);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 layout.addMember(submit);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 layout.setMembersMargin(10);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
83 this.helperContainer.addMember(helperLayout);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
85 return layout;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
86 }
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
87 }

http://dive4elements.wald.intevation.org