X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Futil%2FUserMenuLink.java;h=8416f220b43ebf6441acabe5bcde3c23e89c4d65;hb=636529bb7df0774617693e452b04a4c61dda16cb;hp=f7c9a7c8f52f3c4cc063036f3149624c6e998d81;hpb=c5fa035468228d1f87ab5431a3fad17403eee1c3;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/util/UserMenuLink.java b/org.argeo.cms.ui/src/org/argeo/cms/util/UserMenuLink.java index f7c9a7c8f..8416f220b 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/util/UserMenuLink.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/util/UserMenuLink.java @@ -1,10 +1,8 @@ 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.eclipse.swt.events.DisposeEvent; @@ -24,30 +22,32 @@ public class UserMenuLink extends MenuLink { @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 UserMenu 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 long lastDisposeTS = 0l; + private final Node context; + + public UserMenuLinkController(Node context) { + this.context = context; + } + // // MOUSE LISTENER // @@ -56,11 +56,10 @@ public class UserMenuLink extends MenuLink { 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); } } @@ -81,4 +80,4 @@ public class UserMenuLink extends MenuLink { lastDisposeTS = System.currentTimeMillis(); } } -} \ No newline at end of file +}