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);