Author: thomasobrien95
Date: Tue Apr 21 08:53:09 2009
New Revision: 2984

Modified:
   trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java
trunk/regress/ca/sqlpower/architect/swingui/TestingArchitectSwingSession.java
   trunk/src/ca/sqlpower/architect/ArchitectSession.java
   trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java
   trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
trunk/src/ca/sqlpower/architect/swingui/action/ShowTableContentsAction.java
   trunk/src/ca/sqlpower/architect/swingui/query/QueryFrame.java

Log:
Updated for the changes to the library. The SQLQueryUIComponents now
need a DatabaseMapping which is implemented by the session to give
the Universal SQL Access tool SQLDatabase objects to help protect
against connection leaks.

Modified: trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java
==============================================================================
--- trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java (original) +++ trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java Tue Apr 21 08:53:09 2009
@@ -37,6 +37,7 @@
 import ca.sqlpower.architect.ddl.DDLGenerator;
 import ca.sqlpower.architect.olap.OLAPRootObject;
 import ca.sqlpower.architect.profile.ProfileManager;
+import ca.sqlpower.sql.SPDataSource;
 import ca.sqlpower.sqlobject.SQLDatabase;
 import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.sqlobject.SQLObjectRoot;
@@ -126,5 +127,10 @@
             Object defaultResponse, String ... buttonNames) {
return defaultUPF.createUserPrompter(question, responseType, optionType,
                 defaultResponseType, defaultResponse, buttonNames);
+    }
+
+    public SQLDatabase getDatabase(SPDataSource ds) {
+        // TODO Auto-generated method stub
+        return null;
     }
 }

Modified: trunk/regress/ca/sqlpower/architect/swingui/TestingArchitectSwingSession.java
==============================================================================
--- trunk/regress/ca/sqlpower/architect/swingui/TestingArchitectSwingSession.java (original) +++ trunk/regress/ca/sqlpower/architect/swingui/TestingArchitectSwingSession.java Tue Apr 21 08:53:09 2009
@@ -41,6 +41,7 @@
import ca.sqlpower.architect.swingui.ArchitectSwingSessionImpl.ColumnVisibility;
 import ca.sqlpower.architect.swingui.olap.OLAPEditSession;
 import ca.sqlpower.architect.undo.ArchitectUndoManager;
+import ca.sqlpower.sql.SPDataSource;
 import ca.sqlpower.sqlobject.SQLDatabase;
 import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.sqlobject.SQLObjectRoot;
@@ -356,6 +357,11 @@

     public boolean isDisplayRelationshipLabel() {
         return displayRelationshipLabel;
+    }
+
+    public SQLDatabase getDatabase(SPDataSource ds) {
+        // TODO Auto-generated method stub
+        return null;
     }

public void setDisplayRelationshipLabel(boolean displayRelationshipLabel) {

Modified: trunk/src/ca/sqlpower/architect/ArchitectSession.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/ArchitectSession.java       (original)
+++ trunk/src/ca/sqlpower/architect/ArchitectSession.java Tue Apr 21 08:53:09 2009
@@ -23,11 +23,12 @@
 import ca.sqlpower.architect.ddl.DDLGenerator;
 import ca.sqlpower.architect.profile.ProfileManager;
 import ca.sqlpower.sqlobject.SQLDatabase;
+import ca.sqlpower.sqlobject.SQLDatabaseMapping;
 import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.sqlobject.SQLObjectRoot;
 import ca.sqlpower.util.UserPrompterFactory;

-public interface ArchitectSession extends UserPrompterFactory {
+public interface ArchitectSession extends UserPrompterFactory, SQLDatabaseMapping {

     public static final String PREFS_PL_INI_PATH = "PL.INI.PATH";


Modified: trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java   (original)
+++ trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java Tue Apr 21 08:53:09 2009
@@ -25,6 +25,7 @@
 import ca.sqlpower.architect.ddl.DDLGenerator;
 import ca.sqlpower.architect.ddl.GenericDDLGenerator;
 import ca.sqlpower.architect.profile.ProfileManagerImpl;
+import ca.sqlpower.sql.SPDataSource;
 import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.sqlobject.SQLDatabase;
 import ca.sqlpower.sqlobject.SQLObject;
@@ -169,6 +170,24 @@
throw new NullPointerException("Null user prompter factory is not allowed!");
         }
         userPrompterFactory = upFactory;
+    }
+
+    public SQLDatabase getDatabase(SPDataSource ds) {
+        try {
+ for (SQLObject obj : (List<SQLObject>) rootObject.getChildren()) {
+                if (((SQLDatabase) obj).getDataSource().equals(ds)) {
+                    return (SQLDatabase) obj;
+                }
+            }
+            if (db.getDataSource().equals(ds)) {
+                return db;
+            }
+            SQLDatabase db = new SQLDatabase(ds);
+            rootObject.addChild(db);
+            return db;
+        } catch (SQLObjectException e) {
+            throw new RuntimeException(e);
+        }
     }

 }

Modified: trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java Tue Apr 21 08:53:09 2009
@@ -954,6 +954,10 @@
         return printSettings;
     }

+    public SQLDatabase getDatabase(SPDataSource ds) {
+        return delegateSession.getDatabase(ds);
+    }
+
     public boolean isDisplayRelationshipLabel() {
         return displayRelationshipLabel;
     }

Modified: trunk/src/ca/sqlpower/architect/swingui/action/ShowTableContentsAction.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/action/ShowTableContentsAction.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/action/ShowTableContentsAction.java Tue Apr 21 08:53:09 2009
@@ -46,7 +46,7 @@

     public void actionPerformed(ActionEvent e) {
         String sql = "SELECT * FROM " + table.toQualifiedName();
- JFrame sqlQueryDialog = new QueryFrame(session, Messages.getString("SQLQueryAction.dialogTitle"), table.getParentDatabase().getDataSource(), sql); + JFrame sqlQueryDialog = new QueryFrame(session, Messages.getString("SQLQueryAction.dialogTitle"), table.getParentDatabase(), sql);
         sqlQueryDialog.setVisible(true);
     }


Modified: trunk/src/ca/sqlpower/architect/swingui/query/QueryFrame.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/query/QueryFrame.java       
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/query/QueryFrame.java Tue Apr 21 08:53:09 2009
@@ -34,7 +34,7 @@
 import ca.sqlpower.architect.swingui.ASUtils;
 import ca.sqlpower.architect.swingui.ArchitectSwingSession;
 import ca.sqlpower.architect.swingui.DBTree;
-import ca.sqlpower.sql.SPDataSource;
+import ca.sqlpower.sqlobject.SQLDatabase;
 import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.swingui.query.SQLQueryUIComponents;

@@ -63,7 +63,7 @@
      * window. If a null value is passed in for the ds or initialSQL
      * then no initial querying will be done.
      */
- public QueryFrame(ArchitectSwingSession session, String title, SPDataSource ds, String initialSQL) { + public QueryFrame(ArchitectSwingSession session, String title, SQLDatabase db, String initialSQL) {
        super(title);
        setIconImage(ASUtils.getFrameIconImage());
        setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
@@ -77,7 +77,7 @@
        TreeModel model = session.getSourceDatabases().getModel();
        dbTree.setModel(model);

- queryPanel = SQLQueryUIComponents.createQueryPanel(session, session.getContext().getPlDotIni(), this, ds, initialSQL); + queryPanel = SQLQueryUIComponents.createQueryPanel(session, session.getContext().getPlDotIni(), session, this, db, initialSQL);
         queryPanel.setMinimumSize(new Dimension(100,100));

         buildUI(session);

Reply via email to