Author: [EMAIL PROTECTED]
Date: Thu Oct  9 14:36:35 2008
New Revision: 2765

Modified:
   trunk/src/ca/sqlpower/architect/swingui/query/QueryDialog.java
   trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryUIComponents.java

Log:
Changed the SQLQueryUIComponents to not be dependent on the architect session. It now takes in a DataSourceCollection and a SwingWorkerRegistry instead of a session as a parameter to be used on the Database Connection Manager. The queryDialog was changed to accepted this.The DataBaseConectionManager now uses the defaultFactorys for data source and data type.

Modified: trunk/src/ca/sqlpower/architect/swingui/query/QueryDialog.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/query/QueryDialog.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/query/QueryDialog.java Thu Oct 9 14:36:35 2008
@@ -58,7 +58,7 @@
         TreeModel model = session.getSourceDatabases().getModel();
         dbTree.setModel(model);

- queryPanel = SQLQueryUIComponents.createQueryPanel(session, dbTree); + queryPanel = SQLQueryUIComponents.createQueryPanel(session, session.getContext().getPlDotIni(), dbTree);

         buildUI(session);
     }

Modified: trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryUIComponents.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryUIComponents.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryUIComponents.java Thu Oct 9 14:36:35 2008
@@ -20,6 +20,7 @@
 package ca.sqlpower.architect.swingui.query;

 import java.awt.Toolkit;
+import java.awt.Window;
 import java.awt.datatransfer.DataFlavor;
 import java.awt.datatransfer.UnsupportedFlavorException;
 import java.awt.dnd.DropTarget;
@@ -60,6 +61,7 @@
 import javax.swing.JToolBar;
 import javax.swing.KeyStroke;
 import javax.swing.SpinnerNumberModel;
+import javax.swing.SwingUtilities;
 import javax.swing.event.AncestorEvent;
 import javax.swing.event.AncestorListener;
 import javax.swing.event.ChangeEvent;
@@ -73,18 +75,18 @@
 import ca.sqlpower.architect.ArchitectException;
 import ca.sqlpower.architect.SQLObject;
 import ca.sqlpower.architect.SQLTable;
-import ca.sqlpower.architect.swingui.ArchitectSwingSession;
 import ca.sqlpower.architect.swingui.DBTree;
 import ca.sqlpower.architect.swingui.DnDTreePathTransferable;
-import ca.sqlpower.architect.swingui.action.DatabaseConnectionManagerAction;
 import ca.sqlpower.architect.swingui.query.action.AbstractSQLQueryAction;
 import ca.sqlpower.sql.CachedRowSet;
+import ca.sqlpower.sql.DataSourceCollection;
 import ca.sqlpower.sql.DatabaseListChangeEvent;
 import ca.sqlpower.sql.DatabaseListChangeListener;
 import ca.sqlpower.sql.SPDataSource;
 import ca.sqlpower.swingui.SPSUtils;
 import ca.sqlpower.swingui.SPSwingWorker;
 import ca.sqlpower.swingui.SwingWorkerRegistry;
+import ca.sqlpower.swingui.db.DatabaseConnectionManager;
 import ca.sqlpower.swingui.table.ResultSetTableFactory;

 import com.jgoodies.forms.builder.DefaultFormBuilder;
@@ -395,9 +397,9 @@

     private JTabbedPane tableTabPane;
     private JTextArea logTextArea;
-
-
-    private final ArchitectSwingSession session;
+
+    private SwingWorkerRegistry swRegistry;
+    private final DataSourceCollection dsCollection;

     /**
      * The undo manager for the text area containing the SQL statement.
@@ -451,7 +453,7 @@
     private AncestorListener closeListener = new AncestorListener(){

         public void ancestorAdded(AncestorEvent event) {
- session.getContext().getPlDotIni().addDatabaseListChangeListener(dbListChangeListener); + dsCollection.addDatabaseListChangeListener(dbListChangeListener);
         }

         public void ancestorMoved(AncestorEvent event) {
@@ -459,13 +461,13 @@

         public void ancestorRemoved(AncestorEvent event) {
             logger.debug("Removing database list change listener");
- session.getContext().getPlDotIni().removeDatabaseListChangeListener(dbListChangeListener); + dsCollection.removeDatabaseListChangeListener(dbListChangeListener);

for (Map.Entry<SPDataSource, ConnectionAndStatementBean> entry : conMap.entrySet()) {
                 try {
                     Connection con = entry.getValue().getConnection();
if (!con.getAutoCommit() && entry.getValue().isConnectionUncommitted()) { - int result = JOptionPane.showOptionDialog(session.getArchitectFrame(), Messages.getString("SQLQuery.commitOrRollback", entry.getKey().getName()), + int result = JOptionPane.showOptionDialog(queryPanel.getParent(), Messages.getString("SQLQuery.commitOrRollback", entry.getKey().getName()), Messages.getString("SQLQuery.commitOrRollbackTitle"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[] {Messages.getString("SQLQuery.commit"), Messages.getString("SQLQuery.rollback")}, Messages.getString("SQLQuery.commit"));
                         if (result == JOptionPane.OK_OPTION) {
@@ -513,17 +515,24 @@
      */
     private JPanel queryPanel;

- public SQLQueryUIComponents(ArchitectSwingSession session, DBTree dbTree, JPanel panel) {
-        this(session, panel);
+    /**
+ * Creates a DataBaseConnectionManager so we can edit delete and add connections on the button
+     */
+    DatabaseConnectionManager dbConnectionManager;
+
+ public SQLQueryUIComponents(SwingWorkerRegistry s, DataSourceCollection ds, DBTree dbTree, JPanel panel) {
+        this(s, ds, panel);
         dt = new DropTarget(queryArea, new QueryDropListener(dbTree));
     }

-    public SQLQueryUIComponents(ArchitectSwingSession s, JPanel panel) {
+ public SQLQueryUIComponents(SwingWorkerRegistry s, DataSourceCollection ds, JPanel panel) {
         super();
         queryPanel = panel;
-        this.session = s;
+        this.swRegistry = s;
+        this.dsCollection = ds;
         tableTabPane = new JTabbedPane();
         logTextArea = new JTextArea();
+        dbConnectionManager = new DatabaseConnectionManager(ds);

executeAction = new AbstractSQLQueryAction(queryPanel, Messages.getString("SQLQuery.execute")) {

@@ -538,7 +547,7 @@
                 } catch (SQLException e1) {
SPSUtils.showExceptionDialogNoReport(parent, Messages.getString("SQLQuery.failedRetrievingConnection", ((SPDataSource)databaseComboBox.getSelectedItem()).getName()), e1);
                 }
-                sqlExecuteWorker = new ExecuteSQLWorker(session);
+                sqlExecuteWorker = new ExecuteSQLWorker(swRegistry);
                 new Thread(sqlExecuteWorker).start();
             }
         };
@@ -616,7 +625,7 @@

         conMap = new HashMap<SPDataSource, ConnectionAndStatementBean>();

- databaseComboBox = new JComboBox(s.getContext().getConnections().toArray()); + databaseComboBox = new JComboBox(dsCollection.getConnections().toArray());
         databaseComboBox.setSelectedItem(null);
databaseComboBox.addItemListener(new DatabaseItemListener(queryPanel));

@@ -652,8 +661,16 @@
             public void actionPerformed(ActionEvent arg0) {
                 queryArea.setText("");
             }});
+
+         dbcsManagerButton = new JButton(new AbstractAction() {
+
+            public void actionPerformed(ActionEvent e) {
+ Window w = SwingUtilities.getWindowAncestor(dbcsManagerButton);
+                dbConnectionManager.showDialog(w);

- dbcsManagerButton = new JButton(new DatabaseConnectionManagerAction(session));
+            }
+
+        });
dbcsManagerButton.setText(Messages.getString("SQLQuery.mangeConnections"));

          undoButton= new JButton (undoSQLStatementAction);
@@ -664,10 +681,10 @@
     /**
      * Builds the UI of the [EMAIL PROTECTED] SQLQueryUIComponents}.
      */
- public static JComponent createQueryPanel(ArchitectSwingSession session, DBTree dbTree) { + public static JComponent createQueryPanel(SwingWorkerRegistry swRegistry,DataSourceCollection ds, DBTree dbTree) {

         JPanel defaultQueryPanel = new JPanel();
- SQLQueryUIComponents queryParts = new SQLQueryUIComponents(session, dbTree, defaultQueryPanel); + SQLQueryUIComponents queryParts = new SQLQueryUIComponents(swRegistry, ds, dbTree, defaultQueryPanel);
         JToolBar toolbar = new JToolBar();
         toolbar.add(queryParts.getExecuteButton());
         toolbar.add(queryParts.getStopButton());

Reply via email to