/*
- * Copyright (C) 2007-2012 Mathieu Baudier
+ * Copyright (C) 2007-2012 Argeo GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import javax.jcr.Node;
import javax.jcr.NodeIterator;
+import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.query.Query;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
/**
- * Refreshes the main EBI list, removing nodes which are not referenced by user
+ * Refreshes the main user list, removing nodes which are not referenced by user
* admin service.
*/
public class RefreshUsersList extends AbstractHandler {
private UserAdminService userAdminService;
- private Session session;
+ private Repository repository;
public Object execute(ExecutionEvent event) throws ExecutionException {
Set<String> users = userAdminService.listUsers();
+ Session session = null;
try {
+ session = repository.login();
Query query = session
.getWorkspace()
.getQueryManager()
} catch (RepositoryException e) {
JcrUtils.discardQuietly(session);
throw new ArgeoException("Cannot list users", e);
+ } finally {
+ JcrUtils.logoutQuietly(session);
}
-
userAdminService.synchronize();
+
+ // FIXME try to refresh views that extend the UsersView and have another
+ // ID
+ IWorkbenchPart part = HandlerUtil.getActiveWorkbenchWindow(event)
+ .getActivePage().getActivePart();
+ if (part instanceof UsersView)
+ ((UsersView) part).refresh();
+
+ // Try to refresh UsersView if opened
UsersView view = (UsersView) HandlerUtil
.getActiveWorkbenchWindow(event).getActivePage()
.findView(UsersView.ID);
- view.refresh();
+ if (view != null)
+ view.refresh();
+
return null;
}
this.userAdminService = userAdminService;
}
- public void setSession(Session session) {
- this.session = session;
+ public void setRepository(Repository repository) {
+ this.repository = repository;
}
}
\ No newline at end of file