From ddcd8101aa9b89f6c11f473c1d8a19edffcd8be3 Mon Sep 17 00:00:00 2001 From: Fabio Mancinelli Date: Mon, 3 Oct 2011 22:06:20 +0200 Subject: [PATCH] Minor fixes * Used a null shell for the open page dialog * Added connected/disconnected event firing * Wrapped disconnect into a safe runner --- features/org.xwiki.eclipse.feature/.project | 6 ++++++ .../java/org/xwiki/eclipse/storage/DataManager.java | 4 ++++ .../ui/handlers/DataManagerDisconnectHandler.java | 11 ++++++++++- .../xwiki/eclipse/ui/handlers/OpenPageHandler.java | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/features/org.xwiki.eclipse.feature/.project b/features/org.xwiki.eclipse.feature/.project index c5acda6..dfd103d 100644 --- a/features/org.xwiki.eclipse.feature/.project +++ b/features/org.xwiki.eclipse.feature/.project @@ -10,8 +10,14 @@ + + org.maven.ide.eclipse.maven2Builder + + + + org.maven.ide.eclipse.maven2Nature org.eclipse.pde.FeatureNature diff --git a/plugins/org.xwiki.eclipse.storage/src/main/java/org/xwiki/eclipse/storage/DataManager.java b/plugins/org.xwiki.eclipse.storage/src/main/java/org/xwiki/eclipse/storage/DataManager.java index 1c4a1e2..958fa82 100644 --- a/plugins/org.xwiki.eclipse.storage/src/main/java/org/xwiki/eclipse/storage/DataManager.java +++ b/plugins/org.xwiki.eclipse.storage/src/main/java/org/xwiki/eclipse/storage/DataManager.java @@ -251,6 +251,8 @@ public void connect() throws CoreException, XWikiEclipseStorageException /* When connected synchronize all the pages and objects */ synchronizePages(new HashSet(pageToStatusMap.keySet())); synchronizeObjects(new HashSet(objectToStatusMap.keySet())); + + NotificationManager.getDefault().fireCoreEvent(CoreEvent.Type.DATA_MANAGER_CONNECTED, this, null); } private void synchronizeObjects(Set objectIds) throws XWikiEclipseStorageException @@ -294,6 +296,8 @@ public void disconnect() supportedFunctionalities.clear(); supportedFunctionalities.add(Functionality.OBJECTS); supportedFunctionalities.add(Functionality.RENAME); + + NotificationManager.getDefault().fireCoreEvent(CoreEvent.Type.DATA_MANAGER_DISCONNECTED, this, null); } /** diff --git a/plugins/org.xwiki.eclipse.ui/src/main/java/org/xwiki/eclipse/ui/handlers/DataManagerDisconnectHandler.java b/plugins/org.xwiki.eclipse.ui/src/main/java/org/xwiki/eclipse/ui/handlers/DataManagerDisconnectHandler.java index 70bb544..e4a08ad 100644 --- a/plugins/org.xwiki.eclipse.ui/src/main/java/org/xwiki/eclipse/ui/handlers/DataManagerDisconnectHandler.java +++ b/plugins/org.xwiki.eclipse.ui/src/main/java/org/xwiki/eclipse/ui/handlers/DataManagerDisconnectHandler.java @@ -27,11 +27,13 @@ import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.SafeRunner; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.handlers.HandlerUtil; import org.xwiki.eclipse.storage.DataManager; import org.xwiki.eclipse.ui.utils.UIUtils; +import org.xwiki.eclipse.ui.utils.XWikiEclipseSafeRunnable; /** * @version $Id$ @@ -55,7 +57,14 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException, { monitor.beginTask(String.format("Connecting %s", dataManager.getName()), IProgressMonitor.UNKNOWN); - dataManager.disconnect(); + SafeRunner.run(new XWikiEclipseSafeRunnable() + { + public void run() throws Exception + { + dataManager.disconnect(); + } + }); + monitor.done(); } diff --git a/plugins/org.xwiki.eclipse.ui/src/main/java/org/xwiki/eclipse/ui/handlers/OpenPageHandler.java b/plugins/org.xwiki.eclipse.ui/src/main/java/org/xwiki/eclipse/ui/handlers/OpenPageHandler.java index 295e840..24a6f1c 100644 --- a/plugins/org.xwiki.eclipse.ui/src/main/java/org/xwiki/eclipse/ui/handlers/OpenPageHandler.java +++ b/plugins/org.xwiki.eclipse.ui/src/main/java/org/xwiki/eclipse/ui/handlers/OpenPageHandler.java @@ -67,7 +67,7 @@ public ModelObject execute(ExecutionEvent event) throws ExecutionException } } - OpenPageDialog dialog = new OpenPageDialog(HandlerUtil.getActiveShell(event), dataManager); + OpenPageDialog dialog = new OpenPageDialog(null, dataManager); dialog.open(); if (dialog.getResult() != null) {