X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2FUserMenu.java;fp=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2FUserMenu.java;h=0000000000000000000000000000000000000000;hb=d546fc1b9e19a86eb0e33ac4be824b52239316fc;hp=41ff9ab7f1276bf20c32e9ffc37014073395d783;hpb=04dade003a08c5915280ae653639b0af7cddeb0c;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/UserMenu.java b/org.argeo.cms/src/org/argeo/cms/UserMenu.java deleted file mode 100644 index 41ff9ab7f..000000000 --- a/org.argeo.cms/src/org/argeo/cms/UserMenu.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.argeo.cms; - -import static org.argeo.cms.internal.kernel.KernelConstants.SPRING_SECURITY_CONTEXT_KEY; - -import javax.servlet.http.HttpSession; - -import org.eclipse.rap.rwt.RWT; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.MouseAdapter; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.events.ShellAdapter; -import org.eclipse.swt.events.ShellEvent; -import org.eclipse.swt.events.TraverseEvent; -import org.eclipse.swt.events.TraverseListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; -import org.springframework.security.core.context.SecurityContextHolder; - -/** The site-related user menu */ -public class UserMenu extends Shell implements CmsStyles { - private static final long serialVersionUID = -5788157651532106301L; - - private CmsLogin cmsLogin; - private String username = null; - - public UserMenu(CmsLogin cmsLogin, Control source) { - super(source.getDisplay(), SWT.NO_TRIM | SWT.BORDER | SWT.ON_TOP); - this.cmsLogin = cmsLogin; - - setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU); - - username = SecurityContextHolder.getContext().getAuthentication() - .getName(); - if (username.equals("anonymous")) { - username = null; - anonymousUi(); - } else { - userUi(); - } - - pack(); - layout(); - setLocation(source.toDisplay(source.getSize().x - getSize().x, - source.getSize().y)); - - addShellListener(new ShellAdapter() { - private static final long serialVersionUID = 5178980294808435833L; - - @Override - public void shellDeactivated(ShellEvent e) { - close(); - dispose(); - } - - }); - - open(); - - } - - protected void userUi() { - setLayout(new GridLayout()); - - Label l = new Label(this, SWT.NONE); - l.setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU_ITEM); - l.setData(RWT.MARKUP_ENABLED, true); - l.setLayoutData(CmsUtils.fillWidth()); - l.setText("" + username + ""); - - final CmsSession cmsSession = (CmsSession) getDisplay().getData( - CmsSession.KEY); - l = new Label(this, SWT.NONE); - l.setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU_ITEM); - l.setText(CmsMsg.logout.lead()); - GridData lData = CmsUtils.fillWidth(); - lData.widthHint = 120; - l.setLayoutData(lData); - - l.addMouseListener(new MouseAdapter() { - private static final long serialVersionUID = 6444395812777413116L; - - public void mouseDown(MouseEvent e) { - SecurityContextHolder.getContext().setAuthentication(null); - HttpSession httpSession = RWT.getRequest().getSession(); - httpSession.removeAttribute(SPRING_SECURITY_CONTEXT_KEY); - close(); - dispose(); - cmsSession.authChange(); - } - }); - } - - protected void anonymousUi() { - Integer textWidth = 150; - setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU); - setLayout(new GridLayout(2, false)); - - new Label(this, SWT.NONE).setText(CmsMsg.username.lead()); - final Text username = new Text(this, SWT.BORDER); - username.setData(RWT.CUSTOM_VARIANT, CMS_LOGIN_DIALOG_USERNAME); - GridData gd = CmsUtils.fillWidth(); - gd.widthHint = textWidth; - username.setLayoutData(gd); - - new Label(this, SWT.NONE).setText(CmsMsg.password.lead()); - final Text password = new Text(this, SWT.BORDER | SWT.PASSWORD); - password.setData(RWT.CUSTOM_VARIANT, CMS_LOGIN_DIALOG_PASSWORD); - gd = CmsUtils.fillWidth(); - gd.widthHint = textWidth; - password.setLayoutData(gd); - - // Listeners - TraverseListener tl = new TraverseListener() { - private static final long serialVersionUID = -1158892811534971856L; - - public void keyTraversed(TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_RETURN) - login(username.getText(), password.getTextChars()); - } - }; - username.addTraverseListener(tl); - password.addTraverseListener(tl); - } - - protected void login(String username, char[] password) { - CmsSession cmsSession = (CmsSession) getDisplay().getData( - CmsSession.KEY); - cmsLogin.logInWithPassword(username, password); - close(); - dispose(); - // refreshUi(source.getParent()); - cmsSession.authChange(); - } - -}