--- /dev/null
+package org.argeo.cms.ui.workbench.internal.useradmin;
+
+import org.argeo.cms.CmsException;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IStartup;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+
+/** Manage transaction and part refresh while updating the security model */
+public class PartStateChanged implements IPartListener, IStartup {
+ // private final static Log log = LogFactory.getLog(PartStateChanged.class);
+ // private IContextActivation contextActivation;
+
+ @Override
+ public void earlyStartup() {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ try {
+ IWorkbenchPage iwp = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage();
+ if (iwp != null)
+ iwp.addPartListener(new PartStateChanged());
+ } catch (Exception e) {
+ throw new CmsException(
+ "Error while registering the PartStateChangedListener",
+ e);
+ }
+ }
+ });
+ }
+
+ @Override
+ public void partActivated(IWorkbenchPart part) {
+ // Nothing to do
+ }
+
+ @Override
+ public void partBroughtToTop(IWorkbenchPart part) {
+ // Nothing to do
+ }
+
+ @Override
+ public void partClosed(IWorkbenchPart part) {
+ // Nothing to do
+ }
+
+ @Override
+ public void partDeactivated(IWorkbenchPart part) {
+ // Nothing to do
+ }
+
+ @Override
+ public void partOpened(IWorkbenchPart part) {
+ // Nothing to do
+ }
+}