X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fparts%2FUserEditor.java;h=6c0731d01d26902bfc01c21df9be724039c6e7a2;hb=8260f4470f514ea347ca53f5b4dfc632c4a4de66;hp=e49c803e4db890c74da29c58b3443e3177cfe2c9;hpb=a1d862e4ef6221ebc91fcccea688d66504020365;p=lgpl%2Fargeo-commons.git 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 e49c803e4..6c0731d01 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 @@ -18,16 +18,17 @@ package org.argeo.security.ui.admin.internal.parts; import java.util.ArrayList; import java.util.List; -import org.argeo.ArgeoException; +import org.argeo.cms.CmsException; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.SecurityAdminPlugin; -import org.argeo.security.ui.admin.internal.UiAdminUtils; -import org.argeo.security.ui.admin.internal.UserAdminConstants; +import org.argeo.security.ui.admin.internal.UiUserAdminListener; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; @@ -38,10 +39,9 @@ import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; import org.osgi.service.useradmin.UserAdmin; import org.osgi.service.useradmin.UserAdminEvent; -import org.osgi.service.useradmin.UserAdminListener; /** Editor for a user, might be a user or a group. */ -public class UserEditor extends FormEditor implements UserAdminConstants { +public class UserEditor extends FormEditor { private static final long serialVersionUID = 8357851520380820241L; public final static String USER_EDITOR_ID = SecurityAdminPlugin.PLUGIN_ID @@ -65,13 +65,13 @@ public class UserEditor extends FormEditor implements UserAdminConstants { username = ((UserEditorInput) getEditorInput()).getUsername(); user = (User) userAdmin.getRole(username); - listener = new NameChangeListener(user); + listener = new NameChangeListener(site.getShell().getDisplay(), user); userAdminWrapper.addListener(listener); updateEditorTitle(null); } /** - * returns the list of all authorisation for the given user or of the + * returns the list of all authorization for the given user or of the * current displayed user if parameter is null */ protected List getFlatGroups(User aUser) { @@ -99,7 +99,7 @@ public class UserEditor extends FormEditor implements UserAdminConstants { void updateEditorTitle(String title) { if (title == null) { - String commonName = UiAdminUtils.getProperty(user, + String commonName = UserAdminUtils.getProperty(user, LdifName.cn.name()); title = "".equals(commonName) ? user.getName() : commonName; } @@ -113,7 +113,7 @@ public class UserEditor extends FormEditor implements UserAdminConstants { else addPage(new UserMainPage(this, userAdminWrapper)); } catch (Exception e) { - throw new ArgeoException("Cannot add pages", e); + throw new CmsException("Cannot add pages", e); } } @@ -121,6 +121,7 @@ public class UserEditor extends FormEditor implements UserAdminConstants { public void doSave(IProgressMonitor monitor) { userAdminWrapper.beginTransactionIfNeeded(); commitPages(true); + userAdminWrapper.commitOrNotifyTransactionStateChange(); firePropertyChange(PROP_DIRTY); userAdminWrapper.notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_REMOVED, user)); @@ -143,46 +144,49 @@ public class UserEditor extends FormEditor implements UserAdminConstants { // CONTROLERS FOR THIS EDITOR AND ITS PAGES - private class NameChangeListener implements UserAdminListener { + private class NameChangeListener extends UiUserAdminListener { private final User user; - public NameChangeListener(User user) { + public NameChangeListener(Display display, User user) { + super(display); this.user = user; } @Override - public void roleChanged(UserAdminEvent event) { + public void roleChangedToUiThread(UserAdminEvent event) { Role changedRole = event.getRole(); if (changedRole == null || changedRole.equals(user)) updateEditorTitle(null); } } - class MainInfoListener implements UserAdminListener { + class MainInfoListener extends UiUserAdminListener { private final AbstractFormPart part; - public MainInfoListener(AbstractFormPart part) { + public MainInfoListener(Display display, AbstractFormPart part) { + super(display); this.part = part; } @Override - public void roleChanged(UserAdminEvent event) { + public void roleChangedToUiThread(UserAdminEvent event) { // Rollback if (event.getRole() == null) part.markStale(); } } - class GroupChangeListener implements UserAdminListener { + class GroupChangeListener extends UiUserAdminListener { private final AbstractFormPart part; - public GroupChangeListener(AbstractFormPart part) { + public GroupChangeListener(Display display, AbstractFormPart part) { + super(display); this.part = part; } @Override - public void roleChanged(UserAdminEvent event) { + public void roleChangedToUiThread(UserAdminEvent event) { // always mark as stale part.markStale(); }