using Runnable to comply to the SWT threading model.
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / actions / BaseExecuteAction.java
index 5e8c9d6..c5ab79e 100644 (file)
@@ -10,12 +10,14 @@ import com.quantum.Messages;
 import com.quantum.model.Bookmark;
 import com.quantum.model.BookmarkCollection;
 import com.quantum.sql.MultiSQLServer;
+import com.quantum.sql.SQLResultSetCollection;
+import com.quantum.sql.SQLResultSetResults;
 import com.quantum.sql.SQLResults;
+import com.quantum.sql.SQLUpdateResults;
 import com.quantum.ui.dialog.ExceptionDisplayDialog;
 import com.quantum.ui.dialog.SimpleSelectionDialog;
 import com.quantum.util.connection.ConnectionUtil;
 import com.quantum.view.LogProxy;
-import com.quantum.view.tableview.DefaultSizes;
 import com.quantum.view.tableview.TableView;
 
 import org.eclipse.core.runtime.CoreException;
@@ -43,12 +45,12 @@ public abstract class BaseExecuteAction extends Action {
                        if (results == null) {
                                errorCount++;
                        } else {
-                               queryDuration += results.getTime()/1000.0; // calculate the execution time (in seconds)                          
+                               queryDuration += results.getTime()/1000.0; 
                                resultCount++;
                                if (results.isResultSet()) {
                                        resultsDisplayed++;
                                } else {
-                                       resultUpdateCount += results.getUpdateCount();
+                                       resultUpdateCount += ((SQLUpdateResults) results).getUpdateCount();
                                }
                        }
                }
@@ -129,12 +131,14 @@ public abstract class BaseExecuteAction extends Action {
                        String query = (String) queries.get(i);
                        System.out.println(">" + query + "<"); //$NON-NLS-1$ //$NON-NLS-2$
                        if (query != null && query.trim().length() > 0) {
-                               SQLResults results = getSQLResults(connection, server, query);
+                               SQLResults results = getSQLResults(bookmark, connection, server, query);
                                metrics.measure(results);
                                if (results != null) {
                                        bookmark.addQuery(query);
                                        if (results.isResultSet()) {
-                                               TableView.getInstance().loadQuery(bookmark, results);
+                                               SQLResultSetCollection.getInstance().addSQLResultSet(
+                                                               (SQLResultSetResults) results);
+                                               activateTableView();
                                        }
                                }
                    }
@@ -145,6 +149,13 @@ public abstract class BaseExecuteAction extends Action {
        }
 
        /**
+        * 
+        */
+       private void activateTableView() {
+               TableView.getInstance();
+       }
+
+       /**
         * @return
         * @throws CoreException
         * @throws IOException
@@ -162,14 +173,13 @@ public abstract class BaseExecuteAction extends Action {
        private void displayFinalStatusMessage(Metrics metrics) {
                String message = Messages.getString(
                                BaseExecuteAction.class, 
-                               "done", //$NON-NLS-1$ //$NON-NLS-2$
+                               "done", //$NON-NLS-1$ 
                                metrics.getResults()); 
                if (metrics.hasErrors()) {
                        getStatusLineManager().setErrorMessage(
                                        ImageStore.getImage(ImageStore.STOP), message);
                } else {
-                       getStatusLineManager().setMessage(
-                                       ImageStore.getImage(ImageStore.SUCCESS), message);
+                       getStatusLineManager().setMessage(message);
                }
        }
 
@@ -179,11 +189,10 @@ public abstract class BaseExecuteAction extends Action {
         * @param query
         * @return
         */
-       private SQLResults getSQLResults(Connection connection, MultiSQLServer server, String query) {
+       private SQLResults getSQLResults(Bookmark bookmark, Connection connection, MultiSQLServer server, String query) {
                SQLResults results = null;
                try {
-                       results = server.execute(connection, query, 1, 
-                                       DefaultSizes.PAGE_SIZE, DefaultSizes.MAX_COLUMN_SIZE);
+                       results = server.execute(bookmark, connection, query);
                } catch (SQLException e) {
                        LogProxy log = LogProxy.getInstance();
                        log.addText(LogProxy.ERROR,