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

Reply via email to