Revision: 3920
Author: [email protected]
Date: Wed Aug 25 08:24:31 2010
Log: Added an update function to the client datasource collection to find
new data sources on the server.
http://code.google.com/p/power-architect/source/detail?r=3920
Modified:
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/action/NewDataSourceAction.java
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
Fri Aug 20 11:26:13 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
Wed Aug 25 08:24:31 2010
@@ -369,13 +369,17 @@
return super.close();
}
-
+
@Override
public DataSourceCollection<JDBCDataSource> getDataSources() {
- if (dataSourceCollection != null) {
- return dataSourceCollection;
- }
-
+ if (dataSourceCollection != null) {
+ return dataSourceCollection;
+ } else {
+ return getDataSourcesFromServer();
+ }
+ }
+
+ private DataSourceCollection<JDBCDataSource> getDataSourcesFromServer()
{
ResponseHandler<DataSourceCollection<JDBCDataSource>>
plIniHandler =
new ResponseHandler<DataSourceCollection<JDBCDataSource>>() {
public DataSourceCollection<JDBCDataSource>
handleResponse(HttpResponse response)
@@ -413,6 +417,33 @@
systemWorkspace.addChild(newType,
systemWorkspace.getChildren(UserDefinedSQLType.class).size());
return newType;
}
+
+ public SPDataSource
getDataSource(String name) {
+ SPDataSource ds =
super.getDataSource(name);
+ if (ds == null) {
+ mergeNewDataSources();
+ return
super.getDataSource(name);
+ } else {
+ return ds;
+ }
+ }
+
+ public <C extends SPDataSource> C getDataSource(String name,
java.lang.Class<C> classType) {
+ C ds =
super.getDataSource(name, classType);
+ if (ds == null) {
+ mergeNewDataSources();
+ return super.getDataSource(name,
classType);
+ } else {
+ return ds;
+ }
+ }
+
+ private void mergeNewDataSources() {
+ DataSourceCollection<JDBCDataSource> dsc =
getDataSourcesFromServer();
+ for (SPDataSource merge :
dsc.getConnections()) {
+ mergeDataSource(merge);
+ }
+ }
};
plIni.read(response.getEntity().getContent());
logger.debug("Data source collection has URI " +
plIni.getServerBaseURI());
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/swingui/action/NewDataSourceAction.java
Mon Jul 12 08:21:11 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/swingui/action/NewDataSourceAction.java
Wed Aug 25 08:24:31 2010
@@ -31,8 +31,8 @@
final JDBCDataSource dataSource = new JDBCDataSource(plDotIni);
Runnable onAccept = new Runnable() {
public void run() {
- session.getDBTree().addSourceConnection(dataSource);
plDotIni.addDataSource(dataSource);
+ session.getDBTree().addSourceConnection(dataSource);
}
};
dataSource.setDisplayName(Messages.getString("DBTree.newConnectionName"));
//$NON-NLS-1$