Author: fmancinelli
Date: 2007-11-03 16:11:53 +0100 (Sat, 03 Nov 2007)
New Revision: 5627

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:
XECLIPSE-30

* Added connection progress and error reporting

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-03 14:05:26 UTC (rev 5626)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/ConnectHandler.java
        2007-11-03 15:11:53 UTC (rev 5627)
@@ -20,10 +20,15 @@
  */
 package org.xwiki.xeclipse.handlers;
 
+import java.lang.reflect.InvocationTargetException;
+
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.xwiki.xeclipse.XWikiConnectionManager;
@@ -42,7 +47,7 @@
             
XWikiEclipseUtil.getSingleSelectedObjectInStructuredSelection(selection);
 
         if (selectedObject instanceof IXWikiConnection) {
-            IXWikiConnection xwikiConnection = (IXWikiConnection) 
selectedObject;
+            final IXWikiConnection xwikiConnection = (IXWikiConnection) 
selectedObject;
 
             try {
 
@@ -59,10 +64,30 @@
                     inputDialog.open();
                     password = inputDialog.getValue();
                 }
+                
+                final String actualPassword = password;
 
-                xwikiConnection.connect(password);
-            } catch (XWikiConnectionException e) {
+                XWikiEclipseUtil.runOperationWithProgress(new 
IRunnableWithProgress() {
+                    public void run(IProgressMonitor monitor) throws 
InvocationTargetException,
+                        InterruptedException
+                    {
+                        monitor.beginTask("Connecting...", 
IProgressMonitor.UNKNOWN);
+                        try {
+                            xwikiConnection.connect(actualPassword);
+                        } catch (XWikiConnectionException e) {                 
        
+                            e.printStackTrace();                            
+                            throw new InvocationTargetException(e, 
String.format("Cannot connect to %s\n%s", xwikiConnection.getServerUrl(), 
e.getMessage()));
+                        }                        
+                        monitor.done();
+                    }
+                    
+                }, HandlerUtil.getActiveShell(event));               
+            } catch (InvocationTargetException e) {
                 e.printStackTrace();
+                MessageDialog.openError(HandlerUtil.getActiveShell(event), 
"Error", e.getMessage());
+            } catch (InterruptedException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
             }
 
             /*

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-03 14:05:26 UTC (rev 5626)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/utils/XWikiEclipseUtil.java
 2007-11-03 15:11:53 UTC (rev 5627)
@@ -20,10 +20,16 @@
  */
 package org.xwiki.xeclipse.utils;
 
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
 
 /**
- * Utility methods for different tasks. 
+ * Utility methods for different tasks.
  */
 public class XWikiEclipseUtil
 {
@@ -43,4 +49,11 @@
 
         return null;
     }
+
+    public static void runOperationWithProgress(IRunnableWithProgress 
operation, Shell shell) throws InvocationTargetException, InterruptedException
+    {
+        ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
+        dialog.run(true, false, operation);
+    }
+
 }

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to