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;
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
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<User> getFlatGroups(User aUser) {
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;
}
else
addPage(new UserMainPage(this, userAdminWrapper));
} catch (Exception e) {
- throw new ArgeoException("Cannot add pages", e);
+ throw new CmsException("Cannot add pages", e);
}
}
public void doSave(IProgressMonitor monitor) {
userAdminWrapper.beginTransactionIfNeeded();
commitPages(true);
+ userAdminWrapper.commitOrNotifyTransactionStateChange();
firePropertyChange(PROP_DIRTY);
userAdminWrapper.notifyListeners(new UserAdminEvent(null,
UserAdminEvent.ROLE_REMOVED, user));
// 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();
}