Renamed all packages to gr.grnet.pithos.*
[pithos] / web_client / src / gr / grnet / pithos / web / 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.grnet.pithos.web.client;
20
21 import com.google.gwt.dom.client.NativeEvent;
22 import com.google.gwt.event.dom.client.ClickEvent;
23 import com.google.gwt.event.dom.client.ClickHandler;
24 import com.google.gwt.event.dom.client.KeyCodes;
25 import com.google.gwt.user.client.Event.NativePreviewEvent;
26 import com.google.gwt.user.client.ui.Button;
27 import com.google.gwt.user.client.ui.DialogBox;
28 import com.google.gwt.user.client.ui.HTML;
29 import com.google.gwt.user.client.ui.HasHorizontalAlignment;
30 import com.google.gwt.user.client.ui.VerticalPanel;
31
32
33 /**
34  * @author kman
35  *
36  */
37 public class SessionExpiredDialog extends DialogBox {
38         /**
39          * The widget constructor.
40          */
41         public SessionExpiredDialog() {
42                 // Set the dialog's caption.
43                 setText("Session Expired");
44                 setAnimationEnabled(true);
45                 VerticalPanel outer = new VerticalPanel();
46
47                 // Create the text and set a style name so we can style it with CSS.
48                 HTML text = new HTML("<p>Your session has expired. You will have to reauthenticate with your Identity Provider.</p> ");
49                 text.setStyleName("pithos-AboutText");
50                 outer.add(text);
51
52                 // Create the 'OK' button, along with a listener that hides the dialog
53                 // when the button is clicked.
54                 Button confirm = new Button("Proceed", new ClickHandler() {
55                         @Override
56                         public void onClick(ClickEvent event) {
57                                 GSS.get().authenticateUser();
58                                 hide();
59                         }
60                 });
61                 outer.add(confirm);
62                 outer.setCellHorizontalAlignment(confirm, HasHorizontalAlignment.ALIGN_CENTER);
63                 outer.setSpacing(8);
64                 setWidget(outer);
65         }
66
67         @Override
68         protected void onPreviewNativeEvent(NativePreviewEvent preview) {
69                 super.onPreviewNativeEvent(preview);
70
71                 NativeEvent evt = preview.getNativeEvent();
72                 if (evt.getType().equals("keydown"))
73                         // Use the popup's key preview hooks to close the dialog when either
74                         // enter or escape is pressed.
75                         switch (evt.getKeyCode()) {
76                                 case KeyCodes.KEY_ENTER:
77                                         GSS.get().authenticateUser();
78                                         hide();
79                                         break;
80                                 case KeyCodes.KEY_ESCAPE:
81                                         hide();
82                                         break;
83                         }
84         }
85
86
87
88 }