Author: fmancinelli
Date: 2007-11-13 13:47:41 +0100 (Tue, 13 Nov 2007)
New Revision: 5843
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/ConnectHandler.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/utils/XWikiEclipseUtil.java
Log:
* Fixed a bug in handling a reconnect while editing a file.
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/ConnectHandler.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/ConnectHandler.java
2007-11-13 11:22:24 UTC (rev 5842)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/ConnectHandler.java
2007-11-13 12:47:41 UTC (rev 5843)
@@ -30,6 +30,7 @@
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.handlers.HandlerUtil;
import org.xwiki.xeclipse.XWikiConnectionManager;
import org.xwiki.xeclipse.model.IXWikiConnection;
@@ -81,7 +82,11 @@
monitor.done();
}
- }, HandlerUtil.getActiveShell(event));
+ }, HandlerUtil.getActiveShell(event));
+
+
XWikiEclipseUtil.closeReopenEditorsForConnection(HandlerUtil.getActiveWorkbenchWindow(event).getActivePage(),
+ xwikiConnection);
+
} catch (InvocationTargetException e) {
e.printStackTrace();
MessageDialog.openError(HandlerUtil.getActiveShell(event),
"Error", e.getMessage());
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/utils/XWikiEclipseUtil.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/utils/XWikiEclipseUtil.java
2007-11-13 11:22:24 UTC (rev 5842)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/utils/XWikiEclipseUtil.java
2007-11-13 12:47:41 UTC (rev 5843)
@@ -26,6 +26,16 @@
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPartReference;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.xwiki.xeclipse.editors.XWikiPageEditor;
+import org.xwiki.xeclipse.editors.XWikiPageEditorInput;
+import org.xwiki.xeclipse.model.IXWikiConnection;
+import org.xwiki.xeclipse.model.IXWikiPage;
+import org.xwiki.xeclipse.model.XWikiConnectionException;
/**
* Utility methods for different tasks.
@@ -49,10 +59,36 @@
return null;
}
- public static void runOperationWithProgress(IRunnableWithProgress
operation, Shell shell) throws InvocationTargetException, InterruptedException
+ public static void runOperationWithProgress(IRunnableWithProgress
operation, Shell shell)
+ throws InvocationTargetException, InterruptedException
{
ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
dialog.run(true, false, operation);
}
+ public static void closeReopenEditorsForConnection(IWorkbenchPage page,
+ IXWikiConnection connection)
+ {
+ try {
+
+ IEditorReference[] editorReferences = page.getEditorReferences();
+ for (IEditorReference editorReference : editorReferences) {
+ XWikiPageEditorInput input;
+
+ input = (XWikiPageEditorInput)
editorReference.getEditorInput();
+
+ if (input.getXWikiPage().getConnection() == connection) {
+ page.closeEditors(new IEditorReference[]
{editorReference}, true);
+ IXWikiPage xwikiPage =
connection.getPage(input.getXWikiPage().getId());
+ page.openEditor(new XWikiPageEditorInput(xwikiPage),
XWikiPageEditor.ID);
+ }
+ }
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ } catch (XWikiConnectionException e) {
+ e.printStackTrace();
+ }
+
+ }
+
}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications