annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.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
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
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
11 import org.dive4elements.river.client.shared.model.DataList;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
12 import org.dive4elements.river.client.shared.model.User;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
13
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 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
15 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
16 import com.smartgwt.client.widgets.Label;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
17 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
18 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
19 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
20
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
21 /**
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
22 * 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
23 * DatacagePairWidget which is put in the input-helper area.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
24 */
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
25 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
26
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
27 private final IDatacageTwinPanelInfo leftInfo;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
28 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
29
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
30 private final int maxCount;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
31 private final String msgMaxCount;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
32
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
33 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
34 String getOuts();
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
35
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
36 String getColumnLabel();
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
37 }
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
38
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
39 public DatacageTwinPanel(final User user, final IValidator validator, final IDatacageTwinPanelInfo leftInfo, final IDatacageTwinPanelInfo rightInfo,
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
40 final int maxCount, final String msgMaxCount) {
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
41 super(user, validator, leftInfo, rightInfo);
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 this.maxCount = maxCount;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
44 this.msgMaxCount = msgMaxCount;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
45 this.leftInfo = leftInfo;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
46 this.rightInfo = rightInfo;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
47 }
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
48
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 @Override
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
50 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
51 GWT.log("createData()");
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
53 final Canvas submit = getNextButton();
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
55 final VLayout layout = new VLayout();
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
56 final HLayout helperLayout = new HLayout();
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
57
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
58 final String leftOuts = this.leftInfo.getOuts();
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
59 final String leftLabel = this.leftInfo.getColumnLabel();
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
60 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
61
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
62 final String rightOuts = this.rightInfo.getOuts();
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
63 final String rightLabel = this.rightInfo.getColumnLabel();
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
64 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
65
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 9133
diff changeset
66 helperLayout.addMember(new DatacagePairWidget(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
67
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
68 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
69 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
70 title.setHeight("25px");
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
71 layout.addMember(title);
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 8860
diff changeset
72 }
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74 layout.addMember(widget);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 layout.addMember(submit);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 layout.setMembersMargin(10);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
77 this.helperContainer.addMember(helperLayout);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
79 return layout;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
80 }
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 8719
diff changeset
81 }

http://dive4elements.wald.intevation.org