package org.argeo.cms.util;
import javax.jcr.Node;
-import javax.security.auth.Subject;
import org.argeo.cms.CmsMsg;
-import org.argeo.cms.auth.AuthConstants;
import org.argeo.cms.auth.CurrentUser;
import org.argeo.cms.ui.CmsStyles;
+import org.argeo.cms.widgets.auth.CmsLoginShell;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.MouseEvent;
@Override
public Control createUi(Composite parent, Node context) {
- Subject subject = CmsUtils.getCmsView().getSubject();
- String username = CurrentUser.getUsername(subject);
- if (username.equalsIgnoreCase(AuthConstants.ROLE_ANONYMOUS))
+ if (CurrentUser.isAnonymous())
setLabel(CmsMsg.login.lead());
else {
- setLabel(CurrentUser.getDisplayName(subject));
+ setLabel(CurrentUser.getDisplayName());
}
- Label link = (Label) ((Composite) super.createUi(parent, context))
- .getChildren()[0];
- link.addMouseListener(new UserMenuLinkController());
+ Label link = (Label) ((Composite) super.createUi(parent, context)).getChildren()[0];
+ link.addMouseListener(new UserMenuLinkController(context));
return link.getParent();
}
- protected UserMenu createUserMenu(Control source) {
- return new UserMenu(source.getParent());
+ protected CmsLoginShell createUserMenu(Control source, Node context) {
+ return new UserMenu(source.getParent(), context);
}
- private class UserMenuLinkController implements MouseListener,
- DisposeListener {
+ private class UserMenuLinkController implements MouseListener, DisposeListener {
private static final long serialVersionUID = 3634864186295639792L;
- private UserMenu userMenu = null;
+ private CmsLoginShell userMenu = null;
private long lastDisposeTS = 0l;
+ private final Node context;
+
+ public UserMenuLinkController(Node context) {
+ this.context = context;
+ }
+
//
// MOUSE LISTENER
//
if (e.button == 1) {
Control source = (Control) e.getSource();
if (userMenu == null) {
- long durationSinceLastDispose = System.currentTimeMillis()
- - lastDisposeTS;
+ long durationSinceLastDispose = System.currentTimeMillis() - lastDisposeTS;
// avoid to reopen the menu, if one has clicked gain
if (durationSinceLastDispose > 200) {
- userMenu = createUserMenu(source);
+ userMenu = createUserMenu(source, context);
userMenu.getShell().addDisposeListener(this);
}
}
lastDisposeTS = System.currentTimeMillis();
}
}
-}
\ No newline at end of file
+}