Make user menu extensible
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / util / UserMenu.java
index 10964c717d0b26d82147b2c6c0bba1e4f2c0ba55..e44cada498ea99d09c64047ced0e1c9f3c9fbf05 100644 (file)
@@ -27,6 +27,7 @@ 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.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
@@ -80,6 +81,8 @@ public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
                l.setLayoutData(CmsUtils.fillWidth());
                l.setText("<b>" + username + "</b>");
 
+               specificUserUi(this);
+
                l = new Label(this, SWT.NONE);
                l.setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU_ITEM);
                l.setText(CmsMsg.logout.lead());
@@ -96,6 +99,17 @@ public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
                });
        }
 
+       protected String getUsername() {
+               String username = SecurityContextHolder.getContext()
+                               .getAuthentication().getName();
+               return username;
+       }
+
+       /** To be overridden */
+       protected void specificUserUi(Composite parent) {
+
+       }
+
        protected void anonymousUi() {
                Integer textWidth = 150;
                setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU);