annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/ProjectList.java @ 4253:a1bc5b8cff0f

Refactor GaugePanel to create it's own SectionStackSection The GaugePanel constructor now creates a SectionStackSection instead of using a provided one. Improve the rendering of the GaugePanel by having access to the SmartGWT wrapper (WidgetCanvas) object for the GWT Tree (GaugeTree) directly. Add methods to close and open the section. Also add a getter for the section.
author Björn Ricks <bjoern.ricks@intevation.de>
date Thu, 25 Oct 2012 13:52:58 +0200
parents 03de5c424f95
children 7f86ab48284c
rev   line source
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
3473
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
3 import com.google.gwt.core.client.GWT;
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
4 import com.google.gwt.i18n.client.DateTimeFormat;
585
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
5 import com.google.gwt.user.client.Timer;
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
6 import com.google.gwt.user.client.rpc.AsyncCallback;
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4140
diff changeset
7
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
8 import com.smartgwt.client.types.Alignment;
3709
9969e3b0d860 Scrolling the project list is now more robust.
Christian Lins <christian.lins@intevation.de>
parents: 3531
diff changeset
9 import com.smartgwt.client.types.Autofit;
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
10 import com.smartgwt.client.types.ListGridEditEvent;
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
11 import com.smartgwt.client.types.ListGridFieldType;
3709
9969e3b0d860 Scrolling the project list is now more robust.
Christian Lins <christian.lins@intevation.de>
parents: 3531
diff changeset
12 import com.smartgwt.client.types.Overflow;
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
13 import com.smartgwt.client.types.SelectionStyle;
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
14 import com.smartgwt.client.types.SortArrow;
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
15 import com.smartgwt.client.types.SortDirection;
3473
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
16 import com.smartgwt.client.types.VerticalAlignment;
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
17 import com.smartgwt.client.util.BooleanCallback;
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
18 import com.smartgwt.client.util.SC;
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.Canvas;
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import com.smartgwt.client.widgets.Label;
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
21 import com.smartgwt.client.widgets.grid.CellFormatter;
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
22 import com.smartgwt.client.widgets.grid.HoverCustomizer;
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import com.smartgwt.client.widgets.grid.ListGrid;
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 import com.smartgwt.client.widgets.grid.ListGridField;
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
25 import com.smartgwt.client.widgets.grid.ListGridRecord;
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
26 import com.smartgwt.client.widgets.grid.events.CellClickEvent;
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
27 import com.smartgwt.client.widgets.grid.events.CellClickHandler;
253
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
28 import com.smartgwt.client.widgets.grid.events.CellDoubleClickEvent;
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
29 import com.smartgwt.client.widgets.grid.events.CellDoubleClickHandler;
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
30 import com.smartgwt.client.widgets.grid.events.EditCompleteEvent;
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
31 import com.smartgwt.client.widgets.grid.events.EditCompleteHandler;
3473
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
32 import com.smartgwt.client.widgets.grid.events.HeaderDoubleClickEvent;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
33 import com.smartgwt.client.widgets.grid.events.HeaderDoubleClickHandler;
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
34 import com.smartgwt.client.widgets.grid.events.RowContextClickEvent;
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
35 import com.smartgwt.client.widgets.grid.events.RowContextClickHandler;
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 import com.smartgwt.client.widgets.layout.VLayout;
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
37 import com.smartgwt.client.widgets.menu.Menu;
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
38 import com.smartgwt.client.widgets.menu.MenuItem;
778
e14dc5fed6bb Reordered delete and rename in project context menu, add separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 613
diff changeset
39 import com.smartgwt.client.widgets.menu.MenuItemSeparator;
3473
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
40 import com.smartgwt.client.widgets.menu.events.ClickHandler;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
41 import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent;
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
43 import de.intevation.flys.client.client.Config;
225
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
44 import de.intevation.flys.client.client.FLYS;
211
b92281182c6b Removed the FLYSMessages interface and replaced it with a FLYSConstants interface - this interface has the ability to lookup i18n strings with given keys.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 97
diff changeset
45 import de.intevation.flys.client.client.FLYSConstants;
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
46 import de.intevation.flys.client.client.event.CollectionChangeEvent;
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
47 import de.intevation.flys.client.client.event.CollectionChangeHandler;
3473
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
48 import de.intevation.flys.client.client.event.FilterHandler;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
49 import de.intevation.flys.client.client.event.RangeFilterEvent;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
50 import de.intevation.flys.client.client.event.StringFilterEvent;
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
51 import de.intevation.flys.client.client.services.AddArtifactService;
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
52 import de.intevation.flys.client.client.services.AddArtifactServiceAsync;
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
53 import de.intevation.flys.client.client.services.ArtifactService;
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
54 import de.intevation.flys.client.client.services.ArtifactServiceAsync;
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
55 import de.intevation.flys.client.client.services.CreateCollectionService;
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
56 import de.intevation.flys.client.client.services.CreateCollectionServiceAsync;
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
57 import de.intevation.flys.client.client.services.DeleteCollectionService;
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
58 import de.intevation.flys.client.client.services.DeleteCollectionServiceAsync;
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
59 import de.intevation.flys.client.client.services.DescribeCollectionService;
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
60 import de.intevation.flys.client.client.services.DescribeCollectionServiceAsync;
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
61 import de.intevation.flys.client.client.services.GetArtifactService;
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
62 import de.intevation.flys.client.client.services.GetArtifactServiceAsync;
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
63 import de.intevation.flys.client.client.services.SetCollectionNameService;
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
64 import de.intevation.flys.client.client.services.SetCollectionNameServiceAsync;
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
65 import de.intevation.flys.client.client.services.SetCollectionTTLService;
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
66 import de.intevation.flys.client.client.services.SetCollectionTTLServiceAsync;
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
67 import de.intevation.flys.client.client.services.UserCollectionsService;
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
68 import de.intevation.flys.client.client.services.UserCollectionsServiceAsync;
3473
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
69 import de.intevation.flys.client.shared.model.Artifact;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
70 import de.intevation.flys.client.shared.model.Collection;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
71 import de.intevation.flys.client.shared.model.CollectionItem;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
72 import de.intevation.flys.client.shared.model.CollectionRecord;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
73 import de.intevation.flys.client.shared.model.Recommendation;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
74 import de.intevation.flys.client.shared.model.User;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
75
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
76 import java.util.ArrayList;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
77 import java.util.Date;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
78 import java.util.List;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
79 import java.util.Map;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
80 import java.util.MissingResourceException;
60bf22a14ed8 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3381
diff changeset
81
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 /**
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 * The project list shows a list of projects of a specific user.
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 *
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 */
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
88 public class ProjectList
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
89 extends VLayout
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
90 implements CollectionChangeHandler, EditCompleteHandler, FilterHandler
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
91 {
585
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
92 /** Interval to refresh the user's projects.*/
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
93 public static final int UPDATE_INTERVAL = 30000;
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
94
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
95 /** Min Interval to refresh the user's projects.*/
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
96 public static final int MIN_UPDATE_INTERVAL = 5000;
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
97
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
98 /** The initial width of this panel.*/
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
99 public static final int MIN_WIDTH = 300;
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
100
613
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
101 /** The max length for new project names.*/
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
102 public static final int MAX_NAME_LENGTH = 50;
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
103
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
104 public static final String COLUMN_DATE_WIDTH = "100px";
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
105
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
106 public static final String COLUMN_TITLE_WIDTH = "*";
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
107
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
108 public static final String COLUMN_FAVORITE_WIDTH = "75px";
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
109
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 /** The interface that provides i18n messages. */
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
111 private final FLYSConstants messages = GWT.create(FLYSConstants.class);
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
113 /** The UserService used to retrieve information about the current user. */
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
114 protected UserCollectionsServiceAsync userCollectionsService =
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
115 GWT.create(UserCollectionsService.class);
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
116
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
117 /** The service used to set the name of a project.*/
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
118 protected SetCollectionNameServiceAsync nameService =
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
119 GWT.create(SetCollectionNameService.class);
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
120
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
121 /** The service used to set the name of a project.*/
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
122 protected SetCollectionTTLServiceAsync ttlService =
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
123 GWT.create(SetCollectionTTLService.class);
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
124
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
125 /** The service used to set the name of a project.*/
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
126 protected DeleteCollectionServiceAsync deleteService =
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
127 GWT.create(DeleteCollectionService.class);
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
128
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
129 /** The DescribeCollectionService used to update the existing collection. */
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
130 protected DescribeCollectionServiceAsync describeCollectionService =
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
131 GWT.create(DescribeCollectionService.class);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
132
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
133 /** The ArtifactService used to communicate with the Artifact server. */
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
134 protected ArtifactServiceAsync createArtifactService =
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
135 GWT.create(ArtifactService.class);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
136
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
137 /** The ArtifactService used to communicate with the Artifact server. */
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
138 protected CreateCollectionServiceAsync createCollectionService =
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
139 GWT.create(CreateCollectionService.class);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
140
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
141 /** The AddArtifactService used to add an artifact to a collection. */
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
142 protected AddArtifactServiceAsync addArtifactService =
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
143 GWT.create(AddArtifactService.class);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
144
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
145 /** The GetArtifactService used to open an existing collection. */
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
146 protected GetArtifactServiceAsync getArtifactService =
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
147 GWT.create(GetArtifactService.class);
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
148
225
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
149 /** A pointer to the FLYS instance.*/
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
150 protected FLYS flys;
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
151
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 /** The user whose projects should be displayed.*/
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 protected User user;
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 /** The grid that contains the project rows.*/
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 protected ListGrid grid;
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
158 /** All user collections.*/
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
159 protected List<Collection> collections;
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
160
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
161 /** The collections visible in the grid.*/
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
162 protected List<Collection> filteredCollections;
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
163
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
164 /** The collection to clone*/
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
165 protected Collection cloneCollection;
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
166
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
167 /** The message class that provides i18n strings.*/
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
168 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
169
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
170
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171 /**
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172 * The default constructor that creates a new ProjectList for a specific
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
173 * user.
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 *
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 * @param user The user.
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176 */
225
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
177 public ProjectList(FLYS flys, User user) {
3531
718e5c6c992e Maybe squashed issue531.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3501
diff changeset
178 super();
225
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
179 this.flys = flys;
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 this.user = user;
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
182 filteredCollections = new ArrayList<Collection>();
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
183 collections = new ArrayList<Collection>();
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
184 grid = new ListGrid();
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185 initGrid();
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
186 init();
585
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
187 initTimer();
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
189 grid.addEditCompleteHandler(this);
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
190
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
191 updateUserCollections();
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 }
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
193
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195 protected void initGrid() {
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
196 grid.setWidth100();
3709
9969e3b0d860 Scrolling the project list is now more robust.
Christian Lins <christian.lins@intevation.de>
parents: 3531
diff changeset
197 grid.setAutoFitData(Autofit.VERTICAL);
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
198 grid.setAutoFitMaxWidth(500);
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199 grid.setEmptyMessage(messages.no_projects());
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 grid.setLoadingDataMessage(messages.load_projects());
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
201 grid.setCanEdit(false);
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
202 grid.setEditEvent(ListGridEditEvent.NONE);
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
203 grid.setShowHeaderContextMenu(false);
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
204 grid.setShowSortArrow(SortArrow.NONE);
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
205 grid.setSortDirection(SortDirection.DESCENDING);
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
206 grid.setSortField(0);
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
207 grid.setSelectionType(SelectionStyle.SINGLE);
877
f343b4c2d135 Set header fields to fixed order in project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 778
diff changeset
208 grid.setCanReorderFields(false);
2446
caae9d686372 Removed the scrollbar placeholder of the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1534
diff changeset
209 grid.setLeaveScrollbarGap(false);
3709
9969e3b0d860 Scrolling the project list is now more robust.
Christian Lins <christian.lins@intevation.de>
parents: 3531
diff changeset
210 grid.setBorder("0px");
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
211
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
212 ListGridField date = buildDateField();
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
213 ListGridField name = buildNameField();
587
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
214 ListGridField fav = buildFavoriteField();
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
215
587
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
216 grid.setFields(date, name, fav);
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
217
1391
f554dce42d66 Issue 355.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 917
diff changeset
218 grid.addHeaderDoubleClickHandler(new HeaderDoubleClickHandler() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
219 @Override
1391
f554dce42d66 Issue 355.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 917
diff changeset
220 public void onHeaderDoubleClick(HeaderDoubleClickEvent event) {
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
221 // Cancel the event.
1391
f554dce42d66 Issue 355.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 917
diff changeset
222 return;
f554dce42d66 Issue 355.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 917
diff changeset
223 }
f554dce42d66 Issue 355.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 917
diff changeset
224 });
f554dce42d66 Issue 355.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 917
diff changeset
225
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
226 // Add a handler to set / unset the favorite state of a project.
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
227 grid.addCellClickHandler(new CellClickHandler() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
228 @Override
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
229 public void onCellClick(CellClickEvent event) {
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
230 if (event.getColNum() != 2) {
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
231 return;
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
232 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
233
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
234 CollectionRecord r = (CollectionRecord) event.getRecord();
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
235 Collection c = r.getCollection();
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
236
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
237 c.setTTL(c.getTTL() == 0 ? -1 : 0);
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
238 updateCollectionTTL(c);
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
239 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
240 });
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
241
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
242 // Add a handler to open a project.
253
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
243 grid.addCellDoubleClickHandler(new CellDoubleClickHandler() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
244 @Override
253
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
245 public void onCellDoubleClick(CellDoubleClickEvent e) {
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
246 CollectionRecord record = (CollectionRecord) e.getRecord();
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
247 String uuid = record != null
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
248 ? record.getCollection().identifier()
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
249 : "";
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
250 getFlys().openProject(uuid);
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
251 }
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
252 });
aea3ab5997b2 Added a doubleclick listener to the project list to open a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 229
diff changeset
253
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
254 // Add a handler to open a context menu.
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
255 grid.addRowContextClickHandler(new RowContextClickHandler() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
256 @Override
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
257 public void onRowContextClick(RowContextClickEvent event) {
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
258 CollectionRecord record = (CollectionRecord) event.getRecord();
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
259
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
260 Menu menu = createContextMenu(record);
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
261 grid.setContextMenu(menu);
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
262 menu.showContextMenu();
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
263
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
264 event.cancel();
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
265 }
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
266 });
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
267 }
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
268
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
269
585
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
270 /**
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
271 * Initializes a repeating timer that updates the user's collections. The
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
272 * interval is specified by the constant <i>UPDATE_INTERVAL</i>.
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
273 */
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
274 protected void initTimer() {
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
275 Config config = Config.getInstance();
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
276 int interval = config.getProjectListUpdateInterval();
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
277
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
278 interval = interval > MIN_UPDATE_INTERVAL ? interval : UPDATE_INTERVAL;
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
279
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
280 GWT.log("Update project list every " + interval + " milliseconds.");
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
281
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
282 Timer t = new Timer() {
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
283 @Override
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
284 public void run() {
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
285 updateUserCollections();
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
286 }
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
287 };
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
288
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
289 t.scheduleRepeating(interval);
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
290 }
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
291
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
292
225
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
293 public FLYS getFlys() {
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
294 return flys;
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
295 }
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
296
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
297
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
298 /**
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
299 * Creates a new context menu that interacts with a CollectionRecord.
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
300 *
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
301 * @param record The selected record.
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
302 *
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
303 * @return the context menu with operations that interact with
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
304 * <i>record</i>.
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
305 */
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
306 protected Menu createContextMenu(final CollectionRecord record) {
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
307 Menu menu = new Menu();
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
308
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
309 MenuItem open = new MenuItem(messages.open_project());
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
310 open.addClickHandler(new ClickHandler() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
311 @Override
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
312 public void onClick(MenuItemClickEvent evt) {
225
9040663aee01 Filled the context menu point 'Open project' of the ProjectList with life - it opens a new window displaying the parameterization of the selected project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
313 getFlys().openProject(record.getCollection().identifier());
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
314 }
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
315 });
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
316
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
317 MenuItem del = new MenuItem(messages.delete_project());
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
318 del.addClickHandler(new ClickHandler() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
319 @Override
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
320 public void onClick(MenuItemClickEvent evt) {
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
321 SC.ask(messages.really_delete(), new BooleanCallback() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
322 @Override
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
323 public void execute(Boolean value) {
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
324 if (value) {
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
325 deleteCollection(record.getCollection());
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
326 }
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
327 }
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
328 });
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
329 }
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
330 });
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
331
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
332 MenuItem rename = new MenuItem(messages.rename_project());
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
333 rename.addClickHandler(new ClickHandler() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
334 @Override
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
335 public void onClick(MenuItemClickEvent evt) {
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
336 int row = grid.getRecordIndex(record);
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
337 grid.startEditing(row, 1, false);
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
338 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
339 });
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
340
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
341 MenuItem clone = new MenuItem(messages.clone_project());
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
342 clone.addClickHandler(new ClickHandler() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
343 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
344 public void onClick(MenuItemClickEvent evt) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
345 cloneProject(record.getCollection());
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
346 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
347 });
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
348
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
349 menu.addItem(open);
778
e14dc5fed6bb Reordered delete and rename in project context menu, add separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 613
diff changeset
350 menu.addItem(rename);
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
351 menu.addItem(clone);
778
e14dc5fed6bb Reordered delete and rename in project context menu, add separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 613
diff changeset
352 menu.addItem(new MenuItemSeparator());
220
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
353 menu.addItem(del);
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
354
35094660f91a Implemented a context menu for the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 211
diff changeset
355 return menu;
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
356 }
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
357
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
358
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
359 /**
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
360 * The init() method handles the layout stuff for this widget.
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
361 */
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
362 protected void init() {
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
363 setWidth(MIN_WIDTH);
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
364 setMinWidth(MIN_WIDTH);
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
365 setHeight100();
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
366 setShowResizeBar(true);
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
367 setShowEdges(false);
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
368 setLayoutMargin(0);
79
17815a7354bc Customized background and ProjectList styles.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 25
diff changeset
369 setLayoutAlign(VerticalAlignment.TOP);
3709
9969e3b0d860 Scrolling the project list is now more robust.
Christian Lins <christian.lins@intevation.de>
parents: 3531
diff changeset
370 setOverflow(Overflow.AUTO);
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
371
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
372 Label title = new Label(messages.projects());
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
373 title.setHeight("20");
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
374 title.setMargin(5);
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
375 title.setWidth100();
79
17815a7354bc Customized background and ProjectList styles.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 25
diff changeset
376 title.setStyleName("fontLightSmall");
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
377
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
378 Canvas titleWrapper = new Canvas();
79
17815a7354bc Customized background and ProjectList styles.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 25
diff changeset
379 titleWrapper.setStyleName("bgBlueDark");
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
380 titleWrapper.setWidth100();
79
17815a7354bc Customized background and ProjectList styles.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 25
diff changeset
381 titleWrapper.setHeight("20px");
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
382 titleWrapper.addChild(title);
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
383
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
384 Canvas gridWrapper = new Canvas();
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
385 gridWrapper.setPadding(0);
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
386 titleWrapper.setWidth100();
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
387 gridWrapper.addChild(grid);
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
388
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
389 TableFilter filter = new TableFilter();
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
390 filter.setHeight("30px");
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
391 filter.addFilterHandler(this);
3709
9969e3b0d860 Scrolling the project list is now more robust.
Christian Lins <christian.lins@intevation.de>
parents: 3531
diff changeset
392 filter.setBorder("1px solid gray");
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
393
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
394 addMember(titleWrapper);
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
395 addMember(gridWrapper);
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
396 addMember(filter);
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
397 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
398
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
399
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
400 @Override
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
401 public void onFilterCriteriaChanged(StringFilterEvent event) {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
402 String search = event.getFilter();
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
403 if (search != null && search.length() > 0) {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
404 // Filter the records.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
405 filterCollections(search);
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
406 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
407 else {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
408 filteredCollections.clear();
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
409 for(int i = 0; i < collections.size(); i++) {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
410 filteredCollections.add(collections.get(i));
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
411 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
412 updateGrid();
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
413 }
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
414 }
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
415
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
416
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
417 @Override
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1493
diff changeset
418 public void onFilterCriteriaChanged(RangeFilterEvent event) {
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1493
diff changeset
419 //Empty. No Ranges to filter.
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1493
diff changeset
420 }
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1493
diff changeset
421
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1493
diff changeset
422
3531
718e5c6c992e Maybe squashed issue531.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3501
diff changeset
423 /** On collection change, update list (probably name change or similar). */
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
424 @Override
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
425 public void onCollectionChange(CollectionChangeEvent event) {
585
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
426 if (event.getOldValue() == null) {
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
427 updateUserCollections();
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
428 }
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
429 }
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
430
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
431
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
432 @Override
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
433 public void onEditComplete(EditCompleteEvent event) {
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
434 if (event.getColNum() != 1) {
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
435 return;
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
436 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
437
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
438 int row = event.getRowNum();
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
439
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
440 CollectionRecord r = (CollectionRecord) grid.getRecord(row);
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
441 Collection c = r.getCollection();
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
442
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
443 Map<?, ?> newValues = event.getNewValues();
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
444 String name = (String) newValues.get("name");
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
445
613
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
446 int maxLength = getMaxNameLength();
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
447 int length = name != null ? name.length() : 0;
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
448
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
449 if (length <= 0 || length > maxLength) {
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
450 String msg = messages.project_name_too_long();
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
451 msg = msg.replace("$LEN", String.valueOf(maxLength));
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
452 SC.warn(msg);
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
453
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
454 ListGridRecord[] rs = grid.getRecords();
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
455 rs[row] = (ListGridRecord) event.getOldRecord();
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
456 grid.setRecords(rs);
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
457
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
458 return;
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
459 }
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
460
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
461 c.setName(name);
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
462 updateCollectionName(c);
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
463 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
464
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
465
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
466 /**
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
467 * Set the name of the collection <i>c</i> to a new value. If the update
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
468 * process succeeded, the project list is refreshed.
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
469 *
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
470 * @param c The Collection with a new name.
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
471 */
895
9acbd3f98262 Update the collection view title when the project name changes.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 889
diff changeset
472 protected void updateCollectionName(final Collection c) {
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
473 if (c == null) {
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
474 return;
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
475 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
476
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
477 GWT.log("Update Collection name: " + c.identifier());
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
478 GWT.log("=> New name = " + c.getName());
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
479
1425
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1391
diff changeset
480 nameService.setName(c, new AsyncCallback<Void>(){
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
481 @Override
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
482 public void onFailure(Throwable caught) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
483 String msg = caught.getMessage();
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
484
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
485 try {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
486 SC.warn(messages.getString(msg));
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
487 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
488 catch (MissingResourceException mre) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
489 SC.warn(msg);
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
490 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
491 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
492
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
493 @Override
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
494 public void onSuccess(Void v) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
495 updateUserCollections();
896
fe23bbf0ea11 Fixed a problem with renaming collection view title and duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
496 if(flys.getWorkspace().hasView(c.identifier())) {
fe23bbf0ea11 Fixed a problem with renaming collection view title and duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
497 flys.getWorkspace().updateTitle(c.identifier(), c.getName());
fe23bbf0ea11 Fixed a problem with renaming collection view title and duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
498 }
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
499 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
500 });
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
501 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
502
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
503
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
504 /**
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
505 * Set the ttl of the collection <i>c</i> to a new value. If the update
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
506 * process succeeded, the project list is refreshed.
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
507 *
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
508 * @param c The Collection with a new ttl.
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
509 */
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
510 protected void updateCollectionTTL(Collection c) {
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
511 if (c == null) {
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
512 return;
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
513 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
514
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
515 GWT.log("Update Collection TTL: " + c.identifier());
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
516 GWT.log("=> New ttl = " + c.getTTL());
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
517
1425
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1391
diff changeset
518 ttlService.setTTL(c, new AsyncCallback<Void>() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
519 @Override
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
520 public void onFailure(Throwable caught) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
521 String msg = caught.getMessage();
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
522
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
523 try {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
524 SC.warn(messages.getString(msg));
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
525 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
526 catch (MissingResourceException mre) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
527 SC.warn(msg);
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
528 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
529 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
530
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
531 @Override
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
532 public void onSuccess(Void v) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
533 updateUserCollections();
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
534 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
535 });
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
536 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
537
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
538
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
539 /**
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
540 * Delete the collection <i>c</i>.
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
541 *
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
542 * @param c The Collection that should be deleted.
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
543 */
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
544 public void deleteCollection(final Collection c) {
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
545 if (c == null) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
546 return;
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
547 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
548
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
549 GWT.log("Delete Collection: " + c.identifier());
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
550
1425
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1391
diff changeset
551 deleteService.delete(c, new AsyncCallback<Void>(){
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
552 @Override
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
553 public void onFailure(Throwable caught) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
554 String msg = caught.getMessage();
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
555
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
556 try {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
557 SC.warn(messages.getString(msg));
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
558 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
559 catch (MissingResourceException mre) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
560 SC.warn(msg);
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
561 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
562 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
563
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
564 @Override
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
565 public void onSuccess(Void v) {
600
347cf4a5a486 Open projects are removed from screen if the user deletes them (via project list).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 599
diff changeset
566 flys.getWorkspace().destroyProject(c.identifier());
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
567 updateUserCollections();
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
568 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
569 });
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
570 }
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
571
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
572
4140
a9bafa5445f9 Change updateUserCollections visibility to public
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3709
diff changeset
573 public void updateUserCollections() {
585
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
574 GWT.log("==> ProjectList updates user collections!");
ab7ec931bae2 #22 Introduced a polling mechanism to refresh the projects of a user in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 554
diff changeset
575
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
576 Config config = Config.getInstance();
229
924da6695800 Each service is now called with the name of the current locale to set the request object's locale manually in the HttpClient.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
577 String locale = config.getLocale();
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
578
1493
07b9404d7170 Removed unused method calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1425
diff changeset
579 userCollectionsService.getUserCollections(locale, user.identifier(),
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
580 new AsyncCallback<Collection[]>() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
581 @Override
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
582 public void onFailure(Throwable caught) {
598
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
583 String msg = caught.getMessage();
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
584
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
585 try {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
586 SC.warn(messages.getString(msg));
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
587 }
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
588 catch (MissingResourceException mre) {
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
589 SC.warn(msg);
031357c3e23e Added stubs to set the name and ttl of a collection and to delete a collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 597
diff changeset
590 }
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
591 }
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
592
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
593 @Override
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
594 public void onSuccess(Collection[] collections) {
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
595 int num = collections != null ? collections.length : 0;
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
596
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
597 GWT.log("Received " + num + " user collections.");
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
598
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
599 updateGridDataSource(collections);
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
600 }
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
601 }
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
602 );
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
603 }
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
604
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
605
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
606 /**
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
607 * Delete all entries in the ListGrid.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
608 */
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
609 protected void clearGrid() {
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
610 ListGridRecord[] records = grid.getRecords();
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
611
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
612 for (ListGridRecord record: records) {
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
613 grid.removeData(record);
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
614 }
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
615 }
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
616
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
617
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
618 /**
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
619 * Update the collections data source.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
620 *
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
621 * First removes all collections to avoid duplicates, then add new entries.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
622 *
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
623 * @param c Collections to set to the data source.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
624 */
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
625 protected void updateGridDataSource (Collection[] c) {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
626 collections.clear();
889
2c9c3448e499 Fixed some minor problems and strings in projectlist.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 887
diff changeset
627 if(c == null) {
2c9c3448e499 Fixed some minor problems and strings in projectlist.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 887
diff changeset
628 clearGrid();
2c9c3448e499 Fixed some minor problems and strings in projectlist.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 887
diff changeset
629 return;
2c9c3448e499 Fixed some minor problems and strings in projectlist.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 887
diff changeset
630 }
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
631 for (Collection coll : c) {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
632 this.collections.add(coll);
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
633 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
634 filterCollections("");
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
635 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
636
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
637
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
638 /**
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
639 * Updates the ListGrid.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
640 */
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
641 protected void updateGrid() {
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
642 clearGrid();
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
643
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
644 if (filteredCollections == null ||
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
645 filteredCollections.size() == 0) {
599
1dbffe4c6d12 Implemented the RPC stubs to set the TTL and name of a collection and to delete an existing collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 598
diff changeset
646 return;
1dbffe4c6d12 Implemented the RPC stubs to set the TTL and name of a collection and to delete an existing collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 598
diff changeset
647 }
1dbffe4c6d12 Implemented the RPC stubs to set the TTL and name of a collection and to delete an existing collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 598
diff changeset
648
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
649 for (Collection c: filteredCollections) {
97
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
650 grid.addData(new CollectionRecord(c));
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
651 }
0bec0112c8b3 Integrated the ProjectList into the client. Now, the Collections of a user are displayed in the list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 79
diff changeset
652 }
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
653
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
654
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
655 /**
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
656 * Filter for the user collections.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
657 *
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
658 * @param search String to search for in collection names.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
659 */
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
660 protected void filterCollections(String search) {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
661 // Clear the collection list.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
662 filteredCollections.clear();
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
663
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
664 // Filter the list.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
665 for (int i = 0; i < collections.size(); i++) {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
666 String name;
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
667
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
668 // Get the collection name.
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
669 if (collections.get(i).getName().equals("") ||
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
670 collections.get(i).getName() == null) {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
671 name = collections.get(i).identifier();
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
672 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
673 else {
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
674 name = collections.get(i).getName();
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
675 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
676
889
2c9c3448e499 Fixed some minor problems and strings in projectlist.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 887
diff changeset
677 name = name.toLowerCase();
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
678 // Add a collection to the filtered list if the search string
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
679 // matches.
889
2c9c3448e499 Fixed some minor problems and strings in projectlist.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 887
diff changeset
680 if (name.contains(search.toLowerCase())) {
885
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
681 filteredCollections.add(collections.get(i));
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
682 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
683 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
684 updateGrid();
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
685 }
eeea6a02d62c Added filter functionality to the project list.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 877
diff changeset
686
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
687
613
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
688 public int getMaxNameLength() {
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
689 return MAX_NAME_LENGTH;
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
690 }
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
691
471ca61b83b5 #165 Set the max length of project names to 50 characters.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 608
diff changeset
692
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
693 /**
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
694 * Builds the field in the grid that displays the creation time of a
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
695 * project.
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
696 *
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
697 * @return the grid field.
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
698 */
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
699 protected ListGridField buildDateField() {
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
700 ListGridField date = new ListGridField(
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
701 "creationTime", messages.projectlist_creationTime());
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
702
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
703 date.setType(ListGridFieldType.DATE);
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
704 date.setCanEdit(false);
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
705
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
706 date.setCellFormatter(new CellFormatter() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
707 @Override
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
708 public String format(Object value, ListGridRecord rec, int r, int c) {
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
709 if (value == null) {
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
710 return null;
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
711 }
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
712
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
713 DateTimeFormat dtf = DateTimeFormat.getFormat(
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
714 messages.datetime_format());
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
715
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
716 return dtf.format((Date)value);
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
717 }
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
718 });
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
719
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
720 date.setWidth(COLUMN_DATE_WIDTH);
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
721 date.setAlign(Alignment.CENTER);
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
722
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
723 return date;
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
724 }
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
725
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
726
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
727 /**
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
728 * Builds the field in the grid that displays the name of a project.
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
729 *
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
730 * @return the grid field.
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
731 */
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
732 protected ListGridField buildNameField() {
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
733 ListGridField name = new ListGridField(
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
734 "name", messages.projectlist_title());
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
735
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
736 name.setType(ListGridFieldType.TEXT);
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
737 name.setShowHover(true);
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
738 name.setHoverCustomizer(new HoverCustomizer() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
739 @Override
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
740 public String hoverHTML(
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
741 Object value,
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
742 ListGridRecord record,
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
743 int row,
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
744 int col)
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
745 {
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
746 CollectionRecord r = (CollectionRecord) record;
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
747 Collection c = r.getCollection();
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
748
607
3acc631efdf0 Escape project's names in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 606
diff changeset
749 String name = r.getName();
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
750
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
751 return name != null && name.length() > 0
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
752 ? name
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
753 : c.identifier();
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
754 }
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
755 });
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
756
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
757 name.setWidth(COLUMN_TITLE_WIDTH);
226
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
758 name.setAlign(Alignment.LEFT);
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
759
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
760 return name;
a13382876e5d The project list is sorted now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 225
diff changeset
761 }
587
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
762
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
763
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
764 protected ListGridField buildFavoriteField() {
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
765 ListGridField fav = new ListGridField(
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
766 "ttl", messages.projectlist_favorite());
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
767
587
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
768 fav.setType(ListGridFieldType.IMAGE);
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
769 String base = GWT.getHostPageBaseURL();
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
770 fav.setImageURLPrefix(base + "images/");
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
771 fav.setImageURLSuffix(".png");
606
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
772 fav.setWidth(COLUMN_FAVORITE_WIDTH);
69c0a6ecad57 #165 (part 1) Added tooltips and table headers in the project list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 600
diff changeset
773 fav.setAlign(Alignment.CENTER);
597
14e5e51a7de4 Improved the project list - listeners are notified after setting the name and ttl of a project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 587
diff changeset
774 fav.setCanEdit(false);
587
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
775
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
776 return fav;
53ad6dd2cb2b The project list displays the favorite state of a collection now. A gold star means, that a collection is a owner's favorite project and will never die. A silver star means, that the project is a common project.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
777 }
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
778
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
779
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
780 protected void cloneProject(Collection c) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
781 Config config = Config.getInstance();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
782 String locale = config.getLocale();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
783
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
784 cloneCollection = c;
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
785
1425
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1391
diff changeset
786 describeCollectionService.describe(c.identifier(), locale,
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
787 new AsyncCallback<Collection>() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
788 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
789 public void onFailure(Throwable caught) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
790 GWT.log("Could not DESCRIBE collection.");
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
791 SC.warn(messages.getString(caught.getMessage()));
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
792 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
793
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
794
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
795 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
796 public void onSuccess(Collection newCollection) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
797 GWT.log("Successfully DESCRIBED collection.");
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
798 String uuid = getMasterArtifact(newCollection);
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
799 cloneArtifact(uuid, newCollection);
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
800 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
801 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
802 );
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
803 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
804
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
805
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
806 /** Get master artifacts UUID of a collection. */
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
807 protected String getMasterArtifact(Collection newCollection) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
808 String uuid = newCollection.getItem(0).identifier();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
809 // The master artifact uuid.
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
810 return uuid;
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
811 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
812
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
813
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
814 /** Clone artifact/create collection, using the refArtifacts factory. */
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
815 protected void cloneArtifact(String uuid, Artifact refArtifact,
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
816 final String locale) {
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
817 Recommendation recommendation = new Recommendation(
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
818 refArtifact.getName(),
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
819 null,
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
820 uuid,
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
821 null);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
822
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
823 String factory = recommendation.getFactory();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
824 createArtifactService.create(
1425
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1391
diff changeset
825 locale, factory, recommendation,
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
826 new AsyncCallback<Artifact>() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
827 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
828 public void onFailure(Throwable caught) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
829 GWT.log("Error loading recommendations: " +
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
830 caught.getMessage());
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
831 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
832
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
833 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
834 public void onSuccess(Artifact artifact) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
835 GWT.log("Created new artifact: " + artifact.getUuid());
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
836 createCollection(artifact);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
837 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
838 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
839 );
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
840 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
841
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
842
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
843 /**
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
844 * Clone a project (collection).
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
845 */
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
846 protected void cloneArtifact(final String uuid, Collection newCollection) {
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
847 Config config = Config.getInstance();
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
848 final String locale = config.getLocale();
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
849
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
850 // Find out which factory to use for cloning.
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
851 CollectionItem master = newCollection.getItem(0);
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
852 getArtifactService.getArtifact(
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
853 locale,
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
854 master.identifier(),
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
855 master.hash(),
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
856 new AsyncCallback<Artifact>() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
857 @Override
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
858 public void onFailure(Throwable caught) {
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
859 SC.warn(MSG.getString(caught.getMessage()));
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
860 }
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
861
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
862 @Override
3380
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
863 public void onSuccess(Artifact artifact) {
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
864 cloneArtifact(uuid, artifact, locale);
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
865 }
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
866 });
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
867 }
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
868
f6519c699fca Respect factory of cloned artifact when cloning.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2446
diff changeset
869
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
870 protected void createCollection(final Artifact artifact) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
871 Config config = Config.getInstance();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
872 final String locale = config.getLocale();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
873 final String ownerid = user.identifier();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
874
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
875 createCollectionService.create(
1425
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1391
diff changeset
876 locale,
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1391
diff changeset
877 ownerid,
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
878 new AsyncCallback<Collection>() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
879 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
880 public void onFailure(Throwable caught) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
881 GWT.log("Could not create the new collection.");
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
882 SC.warn(messages.getString(caught.getMessage()));
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
883 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
884
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
885 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
886 public void onSuccess(Collection collection) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
887 GWT.log("Successfully created a new collection.");
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
888 addArtifactToCollection(artifact, collection);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
889 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
890 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
891 );
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
892 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
893
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
894
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
895 protected void addArtifactToCollection(Artifact a, Collection c) {
1493
07b9404d7170 Removed unused method calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1425
diff changeset
896 Config config = Config.getInstance();
07b9404d7170 Removed unused method calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1425
diff changeset
897 final String locale = config.getLocale();
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
898
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
899 addArtifactService.add(
1425
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1391
diff changeset
900 c, a, locale,
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
901 new AsyncCallback<Collection>() {
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
902 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
903 public void onFailure(Throwable caught) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
904 GWT.log("An error occured while adding artifact.");
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
905 SC.warn(messages.getString(caught.getMessage()));
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
906 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
907
3501
0de0ef04bcdc Delete empty project after closing CollectionView (#785).
Christian Lins <christian.lins@intevation.de>
parents: 3473
diff changeset
908 @Override
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
909 public void onSuccess(Collection newColl) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
910 String name = cloneCollection.getName();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
911 if(name == null || name.equals("")) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
912 name = cloneCollection.identifier();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
913 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
914
889
2c9c3448e499 Fixed some minor problems and strings in projectlist.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 887
diff changeset
915 newColl.setName(messages.copy_of() + ": " + name);
887
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
916
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
917 updateCollectionName(newColl);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
918 if(cloneCollection.getTTL() == 0) {
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
919 newColl.setTTL(0);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
920 updateCollectionTTL(newColl);
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
921 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
922 updateUserCollections();
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
923 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
924 }
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
925 );
6a27949c7022 Issue234/266: Added feature for duplicating projects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 885
diff changeset
926 }
4
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
927 }
89976499e013 Implemented a ProjectList and added a mockup that displays two collections in that list.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
928 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org