root / src / gr / grnet / pithos / web / client / PurgeContainerDialog.java @ afb23bf9
History | View | Annotate | Download (5.5 kB)
1 | 8ddb4627 | Christos KK Loverdos | /*
|
---|---|---|---|
2 | 8ddb4627 | Christos KK Loverdos | * Copyright 2011-2013 GRNET S.A. All rights reserved.
|
3 | 8ddb4627 | Christos KK Loverdos | *
|
4 | 8ddb4627 | Christos KK Loverdos | * Redistribution and use in source and binary forms, with or
|
5 | 8ddb4627 | Christos KK Loverdos | * without modification, are permitted provided that the following
|
6 | 8ddb4627 | Christos KK Loverdos | * conditions are met:
|
7 | 8ddb4627 | Christos KK Loverdos | *
|
8 | 8ddb4627 | Christos KK Loverdos | * 1. Redistributions of source code must retain the above
|
9 | 8ddb4627 | Christos KK Loverdos | * copyright notice, this list of conditions and the following
|
10 | 8ddb4627 | Christos KK Loverdos | * disclaimer.
|
11 | 8ddb4627 | Christos KK Loverdos | *
|
12 | 8ddb4627 | Christos KK Loverdos | * 2. Redistributions in binary form must reproduce the above
|
13 | 8ddb4627 | Christos KK Loverdos | * copyright notice, this list of conditions and the following
|
14 | 8ddb4627 | Christos KK Loverdos | * disclaimer in the documentation and/or other materials
|
15 | 8ddb4627 | Christos KK Loverdos | * provided with the distribution.
|
16 | 8ddb4627 | Christos KK Loverdos | *
|
17 | 8ddb4627 | Christos KK Loverdos | * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
|
18 | 8ddb4627 | Christos KK Loverdos | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
19 | 8ddb4627 | Christos KK Loverdos | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
20 | 8ddb4627 | Christos KK Loverdos | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
|
21 | 8ddb4627 | Christos KK Loverdos | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
22 | 8ddb4627 | Christos KK Loverdos | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
23 | 8ddb4627 | Christos KK Loverdos | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
24 | 8ddb4627 | Christos KK Loverdos | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
25 | 8ddb4627 | Christos KK Loverdos | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
26 | 8ddb4627 | Christos KK Loverdos | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
27 | 8ddb4627 | Christos KK Loverdos | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
28 | 8ddb4627 | Christos KK Loverdos | * POSSIBILITY OF SUCH DAMAGE.
|
29 | 8ddb4627 | Christos KK Loverdos | *
|
30 | 8ddb4627 | Christos KK Loverdos | * The views and conclusions contained in the software and
|
31 | 8ddb4627 | Christos KK Loverdos | * documentation are those of the authors and should not be
|
32 | 8ddb4627 | Christos KK Loverdos | * interpreted as representing official policies, either expressed
|
33 | 8ddb4627 | Christos KK Loverdos | * or implied, of GRNET S.A.
|
34 | 8ddb4627 | Christos KK Loverdos | */
|
35 | 8ddb4627 | Christos KK Loverdos | package gr.grnet.pithos.web.client; |
36 | 8ddb4627 | Christos KK Loverdos | |
37 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.dom.client.NativeEvent; |
38 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.event.dom.client.ClickEvent; |
39 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.event.dom.client.ClickHandler; |
40 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.event.dom.client.KeyCodes; |
41 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.event.dom.client.KeyDownEvent; |
42 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.event.logical.shared.ValueChangeEvent; |
43 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.event.logical.shared.ValueChangeHandler; |
44 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.user.client.Command; |
45 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.user.client.Event.NativePreviewEvent; |
46 | 8ddb4627 | Christos KK Loverdos | import com.google.gwt.user.client.ui.*; |
47 | 8ddb4627 | Christos KK Loverdos | import gr.grnet.pithos.web.client.commands.AddUserCommand; |
48 | 8ddb4627 | Christos KK Loverdos | import gr.grnet.pithos.web.client.foldertree.Folder; |
49 | 8ddb4627 | Christos KK Loverdos | import gr.grnet.pithos.web.client.grouptree.Group; |
50 | 8ddb4627 | Christos KK Loverdos | |
51 | 8ddb4627 | Christos KK Loverdos | /**
|
52 | 8ddb4627 | Christos KK Loverdos | * The 'Purge Container' dialog box implementation.
|
53 | 8ddb4627 | Christos KK Loverdos | */
|
54 | 8ddb4627 | Christos KK Loverdos | public class PurgeContainerDialog extends DialogBox { |
55 | 8ddb4627 | Christos KK Loverdos | private final Pithos app; |
56 | 8ddb4627 | Christos KK Loverdos | private final Folder container; |
57 | 8ddb4627 | Christos KK Loverdos | |
58 | 8ddb4627 | Christos KK Loverdos | private final CheckBox yesIAgree; |
59 | 8ddb4627 | Christos KK Loverdos | |
60 | 8ddb4627 | Christos KK Loverdos | private final VerticalPanel inner; |
61 | 8ddb4627 | Christos KK Loverdos | |
62 | 8ddb4627 | Christos KK Loverdos | public PurgeContainerDialog(Pithos app, Folder container) {
|
63 | 8ddb4627 | Christos KK Loverdos | this.app = app;
|
64 | 8ddb4627 | Christos KK Loverdos | this.container = container;
|
65 | 8ddb4627 | Christos KK Loverdos | this.yesIAgree = new CheckBox("I want to purge all contents of " + container.getName()); |
66 | 8ddb4627 | Christos KK Loverdos | |
67 | 8ddb4627 | Christos KK Loverdos | this.yesIAgree.setValue(false); |
68 | 8ddb4627 | Christos KK Loverdos | |
69 | 8ddb4627 | Christos KK Loverdos | Anchor close = new Anchor("close"); |
70 | 8ddb4627 | Christos KK Loverdos | close.addStyleName("close");
|
71 | 8ddb4627 | Christos KK Loverdos | close.addClickHandler(new ClickHandler() {
|
72 | 8ddb4627 | Christos KK Loverdos | |
73 | 8ddb4627 | Christos KK Loverdos | @Override
|
74 | 8ddb4627 | Christos KK Loverdos | public void onClick(ClickEvent event) { |
75 | 8ddb4627 | Christos KK Loverdos | hide(); |
76 | 8ddb4627 | Christos KK Loverdos | } |
77 | 8ddb4627 | Christos KK Loverdos | }); |
78 | 8ddb4627 | Christos KK Loverdos | |
79 | 8ddb4627 | Christos KK Loverdos | setGlassEnabled(true);
|
80 | 8ddb4627 | Christos KK Loverdos | setStyleName("pithos-DialogBox");
|
81 | 8ddb4627 | Christos KK Loverdos | |
82 | 8ddb4627 | Christos KK Loverdos | // Enable IE selection for the dialog (must disable it upon closing it)
|
83 | 8ddb4627 | Christos KK Loverdos | Pithos.enableIESelection(); |
84 | 8ddb4627 | Christos KK Loverdos | |
85 | 8ddb4627 | Christos KK Loverdos | // Use this opportunity to set the dialog's caption.
|
86 | 8ddb4627 | Christos KK Loverdos | setText(Const.PurgeContainer(container.getName())); |
87 | 8ddb4627 | Christos KK Loverdos | |
88 | 8ddb4627 | Christos KK Loverdos | // Outer contains inner and buttons
|
89 | 8ddb4627 | Christos KK Loverdos | VerticalPanel outer = new VerticalPanel();
|
90 | 8ddb4627 | Christos KK Loverdos | outer.add(close); |
91 | 8ddb4627 | Christos KK Loverdos | // Inner contains generalPanel and permPanel
|
92 | 8ddb4627 | Christos KK Loverdos | inner = new VerticalPanel();
|
93 | 8ddb4627 | Christos KK Loverdos | inner.addStyleName("inner");
|
94 | 8ddb4627 | Christos KK Loverdos | |
95 | 8ddb4627 | Christos KK Loverdos | VerticalPanel generalPanel = new VerticalPanel();
|
96 | 8ddb4627 | Christos KK Loverdos | FlexTable generalTable = new FlexTable();
|
97 | 8ddb4627 | Christos KK Loverdos | generalTable.setText(0, 0, "Are you sure?"); |
98 | 8ddb4627 | Christos KK Loverdos | |
99 | 8ddb4627 | Christos KK Loverdos | generalTable.setWidget(0, 1, yesIAgree); |
100 | 8ddb4627 | Christos KK Loverdos | |
101 | 8ddb4627 | Christos KK Loverdos | generalTable.getFlexCellFormatter().setStyleName(0, 0, "props-labels"); |
102 | 8ddb4627 | Christos KK Loverdos | generalTable.getFlexCellFormatter().setStyleName(0, 1, "props-values"); |
103 | 8ddb4627 | Christos KK Loverdos | generalTable.setCellSpacing(4);
|
104 | 8ddb4627 | Christos KK Loverdos | generalPanel.add(generalTable); |
105 | 8ddb4627 | Christos KK Loverdos | inner.add(generalPanel); |
106 | 8ddb4627 | Christos KK Loverdos | |
107 | 8ddb4627 | Christos KK Loverdos | outer.add(inner); |
108 | 8ddb4627 | Christos KK Loverdos | |
109 | 8ddb4627 | Christos KK Loverdos | // Create the 'Create/Update' button, along with a listener that hides the dialog
|
110 | 8ddb4627 | Christos KK Loverdos | // when the button is clicked and quits the application.
|
111 | 8ddb4627 | Christos KK Loverdos | String okLabel = "Purge Container"; |
112 | 8ddb4627 | Christos KK Loverdos | final Button ok = new Button(okLabel, new ClickHandler() { |
113 | 8ddb4627 | Christos KK Loverdos | @Override
|
114 | 8ddb4627 | Christos KK Loverdos | public void onClick(ClickEvent event) { |
115 | 8ddb4627 | Christos KK Loverdos | purgeContainer(); |
116 | 8ddb4627 | Christos KK Loverdos | closeDialog(); |
117 | 8ddb4627 | Christos KK Loverdos | } |
118 | 8ddb4627 | Christos KK Loverdos | }); |
119 | 8ddb4627 | Christos KK Loverdos | ok.addStyleName("button");
|
120 | 8ddb4627 | Christos KK Loverdos | ok.setEnabled(false);
|
121 | 8ddb4627 | Christos KK Loverdos | ok.setVisible(false);
|
122 | 8ddb4627 | Christos KK Loverdos | outer.add(ok); |
123 | 8ddb4627 | Christos KK Loverdos | |
124 | 8ddb4627 | Christos KK Loverdos | this.yesIAgree.addValueChangeHandler(new ValueChangeHandler<Boolean>() { |
125 | 8ddb4627 | Christos KK Loverdos | @Override
|
126 | 8ddb4627 | Christos KK Loverdos | public void onValueChange(ValueChangeEvent<Boolean> event) { |
127 | 8ddb4627 | Christos KK Loverdos | ok.setVisible(event.getValue()); |
128 | 8ddb4627 | Christos KK Loverdos | ok.setEnabled(event.getValue()); |
129 | 8ddb4627 | Christos KK Loverdos | } |
130 | 8ddb4627 | Christos KK Loverdos | }); |
131 | 8ddb4627 | Christos KK Loverdos | |
132 | 8ddb4627 | Christos KK Loverdos | outer.setCellHorizontalAlignment(inner, HasHorizontalAlignment.ALIGN_CENTER); |
133 | 8ddb4627 | Christos KK Loverdos | |
134 | 8ddb4627 | Christos KK Loverdos | setWidget(outer); |
135 | 8ddb4627 | Christos KK Loverdos | } |
136 | 8ddb4627 | Christos KK Loverdos | |
137 | 8ddb4627 | Christos KK Loverdos | @Override
|
138 | 8ddb4627 | Christos KK Loverdos | public void center() { |
139 | 8ddb4627 | Christos KK Loverdos | super.center();
|
140 | 8ddb4627 | Christos KK Loverdos | yesIAgree.setFocus(false);
|
141 | 8ddb4627 | Christos KK Loverdos | } |
142 | 8ddb4627 | Christos KK Loverdos | |
143 | 8ddb4627 | Christos KK Loverdos | @Override
|
144 | 8ddb4627 | Christos KK Loverdos | protected void onPreviewNativeEvent(NativePreviewEvent preview) { |
145 | 8ddb4627 | Christos KK Loverdos | super.onPreviewNativeEvent(preview);
|
146 | 8ddb4627 | Christos KK Loverdos | |
147 | 8ddb4627 | Christos KK Loverdos | NativeEvent evt = preview.getNativeEvent(); |
148 | 8ddb4627 | Christos KK Loverdos | if (evt.getType().equals(KeyDownEvent.getType().getName()))
|
149 | 8ddb4627 | Christos KK Loverdos | // Exit the dialog on Escape
|
150 | 8ddb4627 | Christos KK Loverdos | switch (evt.getKeyCode()) {
|
151 | 8ddb4627 | Christos KK Loverdos | case KeyCodes.KEY_ESCAPE:
|
152 | 8ddb4627 | Christos KK Loverdos | closeDialog(); |
153 | 8ddb4627 | Christos KK Loverdos | break;
|
154 | 8ddb4627 | Christos KK Loverdos | } |
155 | 8ddb4627 | Christos KK Loverdos | } |
156 | 8ddb4627 | Christos KK Loverdos | |
157 | 8ddb4627 | Christos KK Loverdos | |
158 | 8ddb4627 | Christos KK Loverdos | /**
|
159 | 8ddb4627 | Christos KK Loverdos | * Enables IE selection prevention and hides the dialog
|
160 | 8ddb4627 | Christos KK Loverdos | * (we disable the prevention on creation of the dialog)
|
161 | 8ddb4627 | Christos KK Loverdos | */
|
162 | 8ddb4627 | Christos KK Loverdos | public void closeDialog() { |
163 | 8ddb4627 | Christos KK Loverdos | Pithos.preventIESelection(); |
164 | 8ddb4627 | Christos KK Loverdos | hide(); |
165 | 8ddb4627 | Christos KK Loverdos | } |
166 | 8ddb4627 | Christos KK Loverdos | |
167 | 8ddb4627 | Christos KK Loverdos | private void purgeContainer() { |
168 | 8ddb4627 | Christos KK Loverdos | app.purgeContainer(container); |
169 | 8ddb4627 | Christos KK Loverdos | } |
170 | 8ddb4627 | Christos KK Loverdos | } |