Mercurial > dive4elements > river
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 | 45 final IDatacageTwinPanelInfo rightInfo, final int maxCount, final String msgMaxCount, final boolean minuendSubtrahendUiReversed) { |
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 } |