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) {