KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > base > login > actions > LoginAction


1 /*
2  * Created on Nov 5, 2004
3  * by Alexander Bieber
4  *
5  */

6 package com.nightlabs.ipanema.base.login.actions;
7
8 import javax.security.auth.login.LoginException JavaDoc;
9
10 import org.apache.log4j.Logger;
11 import org.eclipse.jface.action.IAction;
12 import org.eclipse.jface.resource.ImageDescriptor;
13 import org.eclipse.ui.IWorkbenchWindow;
14
15 import com.nightlabs.ipanema.base.IpanemaBasePlugin;
16 import com.nightlabs.ipanema.base.login.Login;
17
18 /**
19  * @author Alexander Bieber
20  */

21 public class LoginAction extends LSDWorkbenchWindowActionDelegate {
22     private static final Logger LOGGER = Logger.getLogger(LoginAction.class);
23
24     private static ImageDescriptor loginIcon = null;
25     private static ImageDescriptor logoutIcon = null;
26     /* (non-Javadoc)
27      * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
28      */

29     public void init(IWorkbenchWindow window) {
30         super.init(window);
31         if (loginIcon == null) {
32             loginIcon = ImageDescriptor.createFromURL(IpanemaBasePlugin.getDefault().getBundle().getEntry(IpanemaBasePlugin.getResourceString("actions.login.icons.login")));
33         }
34         if (logoutIcon == null) {
35             logoutIcon = ImageDescriptor.createFromURL(IpanemaBasePlugin.getDefault().getBundle().getEntry(IpanemaBasePlugin.getResourceString("actions.login.icons.logout")));
36         }
37     }
38     
39     
40     /* (non-Javadoc)
41      * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
42      */

43     public void run(IAction action) {
44         try {
45             Login login = Login.getLogin(false);
46             if (login.isLoggedIn())
47                 login.logout();
48             else
49                 Login.getLogin();
50             
51         } catch (LoginException JavaDoc e) {
52             LOGGER.error("Login failed",e);
53         }
54     }
55     
56     public void loginStateChanged(int loginState, IAction action) {
57         switch (loginState) {
58             case Login.LOGINSTATE_LOGGED_IN:
59                 action.setImageDescriptor(logoutIcon);
60                 action.setToolTipText(IpanemaBasePlugin.getResourceString("actions.login.tooltip.logout"));
61                 break;
62             case Login.LOGINSTATE_LOGGED_OUT:
63                 action.setImageDescriptor(loginIcon);
64                 action.setToolTipText("You are working offline, click to login");
65             break;
66             case Login.LOGINSTATE_OFFLINE:
67                 action.setImageDescriptor(loginIcon);
68                 action.setToolTipText(IpanemaBasePlugin.getResourceString("actions.login.tooltip.login"));
69                 break;
70         }
71     }
72 }
73
Popular Tags