X-Git-Url: http://secure.phpeclipse.com

diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/RefreshBookmarkAction.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/RefreshBookmarkAction.java
index 525503f..3250564 100644
--- a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/RefreshBookmarkAction.java
+++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/RefreshBookmarkAction.java
@@ -1,12 +1,14 @@
 package com.quantum.actions;
 
+import java.sql.SQLException;
 import java.util.Iterator;
 import java.util.List;
 
+import com.quantum.ImageStore;
 import com.quantum.Messages;
-import com.quantum.QuantumPlugin;
-import com.quantum.sql.SQLHelper;
-import com.quantum.view.bookmark.BookmarkView;
+import com.quantum.model.NotConnectedException;
+import com.quantum.ui.dialog.ExceptionDisplayDialog;
+import com.quantum.ui.dialog.SQLExceptionDialog;
 import com.quantum.view.bookmark.TreeNode;
 
 import org.eclipse.ui.IViewPart;
@@ -16,13 +18,11 @@ import org.eclipse.ui.actions.SelectionListenerAction;
  * @author root
  */
 public class RefreshBookmarkAction extends SelectionListenerAction {
-	SQLHelper helper = new SQLHelper();
-
-    BookmarkView view;
+    private IViewPart view;
 	public RefreshBookmarkAction(IViewPart view) {
-        super(Messages.getString(RefreshBookmarkAction.class.getName() + ".text"));
-		this.view = (BookmarkView) view;
-        setImageDescriptor(QuantumPlugin.getImageDescriptor("refresh.gif"));
+        super(Messages.getString(RefreshBookmarkAction.class, "text"));
+		this.view = view;
+        setImageDescriptor(ImageStore.getImageDescriptor(ImageStore.REFRESH));
 	}
 
 	public void run() {
@@ -30,8 +30,27 @@ public class RefreshBookmarkAction extends SelectionListenerAction {
         for (Iterator i = list.iterator(); i.hasNext(); ) {
             Object object = i.next();
             if (object != null && object instanceof TreeNode) {
-                ((TreeNode) object).reload();
+            	try {
+            		((TreeNode) object).reload();
+            	} catch (NotConnectedException e) {
+            		handleException(e);
+            	} catch (SQLException e) {
+            		handleException(e);
+            	}
             }
         }
 	}
+
+	/**
+	 * @param e
+	 */
+	private void handleException(Throwable t) {
+		if (t instanceof SQLException) {
+			SQLExceptionDialog.openException(
+					this.view.getSite().getShell(), null, (SQLException) t);
+		} else {
+			ExceptionDisplayDialog.openError(
+					this.view.getSite().getShell(), null, null, t);
+		}
+	}
 }