- Add "Save file as" menu that forces browser to download file instead of opening...
[pithos] / src / gr / ebs / gss / client / SessionExpiredDialog.java
1 /*
2  * Copyright 2009 Electronic Business Systems Ltd.
3  *
4  * This file is part of GSS.
5  *
6  * GSS is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * GSS is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with GSS.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 package gr.ebs.gss.client;
20
21 import com.google.gwt.user.client.ui.Button;
22 import com.google.gwt.user.client.ui.ClickListener;
23 import com.google.gwt.user.client.ui.DialogBox;
24 import com.google.gwt.user.client.ui.HTML;
25 import com.google.gwt.user.client.ui.HasHorizontalAlignment;
26 import com.google.gwt.user.client.ui.KeyboardListener;
27 import com.google.gwt.user.client.ui.VerticalPanel;
28 import com.google.gwt.user.client.ui.Widget;
29
30
31 /**
32  * @author kman
33  *
34  */
35 public class SessionExpiredDialog extends DialogBox {
36         /**
37          * The widget constructor.
38          */
39         public SessionExpiredDialog() {
40                 // Set the dialog's caption.
41                 setText("Session Expired");
42                 setAnimationEnabled(true);
43                 VerticalPanel outer = new VerticalPanel();
44
45                 // Create the text and set a style name so we can style it with CSS.
46                 HTML text = new HTML("<p>Your session has expired. You will have to reauthenticate with your Identity Provider.</p> ");
47                 text.setStyleName("gss-AboutText");
48                 outer.add(text);
49
50                 // Create the 'OK' button, along with a listener that hides the dialog
51                 // when the button is clicked.
52                 Button confirm = new Button("Proceed", new ClickListener() {
53
54                         public void onClick(Widget sender) {
55                                 GSS.get().authenticateUser();
56                                 hide();
57                         }
58                 });
59                 outer.add(confirm);
60                 outer.setCellHorizontalAlignment(confirm, HasHorizontalAlignment.ALIGN_CENTER);
61                 outer.setSpacing(8);
62                 setWidget(outer);
63         }
64
65         @Override
66         public boolean onKeyDownPreview(char key, int modifiers) {
67                 // Use the popup's key preview hooks to close the dialog when either
68                 // enter or escape is pressed.
69                 switch (key) {
70                         case KeyboardListener.KEY_ENTER:
71                                 GSS.get().authenticateUser();
72                                 hide();
73                                 break;
74                         case KeyboardListener.KEY_ESCAPE:
75                                 hide();
76                                 break;
77                 }
78                 return true;
79         }
80
81 }