From be08f707bfde662b0e3601fb169fa0510c776931 Mon Sep 17 00:00:00 2001 From: Bruno Sinou Date: Thu, 17 Sep 2015 15:52:42 +0000 Subject: [PATCH] Fix a few glitches git-svn-id: https://svn.argeo.org/commons/trunk@8418 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../META-INF/spring/parts.xml | 7 ++++- org.argeo.security.ui.admin/plugin.xml | 7 +++++ .../ui/admin/internal/parts/UserEditor.java | 29 ++++--------------- .../ui/admin/internal/parts/UserMainPage.java | 21 ++++++++------ .../UserTableDefaultDClickListener.java | 9 ++++-- 5 files changed, 37 insertions(+), 36 deletions(-) diff --git a/org.argeo.security.ui.admin/META-INF/spring/parts.xml b/org.argeo.security.ui.admin/META-INF/spring/parts.xml index 1c65b66f8..cbc36e0c3 100644 --- a/org.argeo.security.ui.admin/META-INF/spring/parts.xml +++ b/org.argeo.security.ui.admin/META-INF/spring/parts.xml @@ -11,6 +11,11 @@ + + + + @@ -20,5 +25,5 @@ scope="prototype"> - + \ No newline at end of file diff --git a/org.argeo.security.ui.admin/plugin.xml b/org.argeo.security.ui.admin/plugin.xml index a339d54dc..9e33dd7d1 100644 --- a/org.argeo.security.ui.admin/plugin.xml +++ b/org.argeo.security.ui.admin/plugin.xml @@ -38,6 +38,13 @@ id="org.argeo.security.ui.admin.userEditor" name="User" icon="icons/user.gif" + default="false"> + + diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java index 71eba27f6..d762d7d5d 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java @@ -24,20 +24,14 @@ import org.argeo.security.ui.admin.internal.UiAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminConstants; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.AbstractFormPart; import org.eclipse.ui.forms.editor.FormEditor; -import org.eclipse.ui.forms.widgets.FormToolkit; import org.osgi.service.useradmin.Authorization; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; @@ -49,8 +43,10 @@ import org.osgi.service.useradmin.UserAdminListener; public class UserEditor extends FormEditor implements UserAdminConstants { private static final long serialVersionUID = 8357851520380820241L; - public final static String ID = SecurityAdminPlugin.PLUGIN_ID + public final static String USER_EDITOR_ID = SecurityAdminPlugin.PLUGIN_ID + ".userEditor"; + public final static String GROUP_EDITOR_ID = SecurityAdminPlugin.PLUGIN_ID + + ".groupEditor"; /* DEPENDENCY INJECTION */ private UserAdminWrapper userAdminWrapper; @@ -70,13 +66,7 @@ public class UserEditor extends FormEditor implements UserAdminConstants { listener = new NameChangeListener(user); userAdminWrapper.addListener(listener); - - // TODO: following has been disabled because it causes NPE after a - // login/logout on RAP - // Image titleIcon = user.getType() == Role.GROUP ? - // SecurityAdminImages.ICON_GROUP - // : SecurityAdminImages.ICON_USER; - // setTitleImage(titleIcon); + updateEditorTitle(null); } /** @@ -109,7 +99,7 @@ public class UserEditor extends FormEditor implements UserAdminConstants { void updateEditorTitle(String title) { if (title == null) { String commonName = UiAdminUtils.getProperty(user, KEY_CN); - title = "".equals(commonName) ? commonName : user.getName(); + title = "".equals(commonName) ? user.getName() : commonName; } setPartName(title); } @@ -125,15 +115,6 @@ public class UserEditor extends FormEditor implements UserAdminConstants { } } - /** - * Updates the property in the working copy. The transaction must be - * explicitly committed to persist the update. - */ - @SuppressWarnings("unchecked") - protected void setProperty(String key, String value) { - user.getProperties().put(key, value); - } - @Override public void doSave(IProgressMonitor monitor) { userAdminWrapper.beginTransactionIfNeeded(); diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java index 013519cbe..e34408359 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java @@ -146,23 +146,24 @@ public class UserMainPage extends FormPage implements ArgeoNames { super.dispose(); } + @SuppressWarnings("unchecked") public void commit(boolean onSave) { - // TODO Sanity checks - editor.setProperty(UserAdminConstants.KEY_FIRSTNAME, + // TODO Sanity checks (mail validity...) + user.getProperties().put(UserAdminConstants.KEY_FIRSTNAME, firstName.getText()); - editor.setProperty(UserAdminConstants.KEY_LASTNAME, + user.getProperties().put(UserAdminConstants.KEY_LASTNAME, lastName.getText()); - editor.setProperty(UserAdminConstants.KEY_CN, + user.getProperties().put(UserAdminConstants.KEY_CN, commonName.getText()); - // TODO check mail validity - editor.setProperty(UserAdminConstants.KEY_MAIL, email.getText()); - + user.getProperties().put(UserAdminConstants.KEY_MAIL, email.getText()); // Enable common name ? // editor.setProperty(UserAdminConstants.KEY_CN, // email.getText()); super.commit(onSave); } + + @Override public void refresh() { distinguishedName.setText(UiAdminUtils.getProperty(user, @@ -348,8 +349,10 @@ public class UserMainPage extends FormPage implements ArgeoNames { } }); - Action action = new RemoveMembershipAction(userViewer, user, - "Remove selected groups", SecurityAdminImages.ICON_REMOVE_DESC); + String tooltip = "Remove " + UiAdminUtils.getUsername(user) + + " from the below selected groups"; + Action action = new RemoveMembershipAction(userViewer, user, tooltip, + SecurityAdminImages.ICON_REMOVE_DESC); toolBarManager.add(action); toolBarManager.update(true); section.setTextClient(toolbar); diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTableDefaultDClickListener.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTableDefaultDClickListener.java index 94434bd8a..82e227b11 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTableDefaultDClickListener.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTableDefaultDClickListener.java @@ -10,6 +10,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; +import org.osgi.service.useradmin.Group; import org.osgi.service.useradmin.User; /** @@ -30,8 +31,12 @@ public class UserTableDefaultDClickListener implements IDoubleClickListener { UserEditorInput uei = new UserEditorInput(user.getName()); try { - // IEditorPart editor = - iwp.openEditor(uei, UserEditor.ID); + // Work around the fact that dynamic setting of the editor icon + // causes NPE after a login/logout on RAP + if (user instanceof Group) + iwp.openEditor(uei, UserEditor.GROUP_EDITOR_ID); + else + iwp.openEditor(uei, UserEditor.USER_EDITOR_ID); } catch (PartInitException pie) { throw new ArgeoException("Unable to open UserEditor for " + user, pie); -- 2.30.2