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