Revision: 3513
Author: [email protected]
Date: Fri May 7 11:49:29 2010
Log: Support to the library commit, which moves the assigning of user
defined types to when columns are added to the playpen.
http://code.google.com/p/power-architect/source/detail?r=3513
Modified:
/trunk/regress/ca/sqlpower/architect/ArchitectUtilsTest.java
/trunk/regress/ca/sqlpower/architect/ddl/GenericDDLGeneratorTest.java
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/PlayPen.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/TablePane.java
=======================================
--- /trunk/regress/ca/sqlpower/architect/ArchitectUtilsTest.java Wed May 5
14:57:41 2010
+++ /trunk/regress/ca/sqlpower/architect/ArchitectUtilsTest.java Fri May 7
11:49:29 2010
@@ -71,28 +71,28 @@
}
public void testColumnsDiffer() {
- SQLColumn col1 = new SQLColumn(null, "column_1",
Types.VARCHAR, "VARCHAR", 25, 0, 0, "remarks", null, false, null);
- SQLColumn col2 = new SQLColumn(null, "column_1",
Types.VARCHAR, "VARCHAR", 25, -1, 0, "remarks", null, false, null);
+ SQLColumn col1 = new SQLColumn(null, "column_1",
Types.VARCHAR, "VARCHAR", 25, 0, 0, "remarks", null, false);
+ SQLColumn col2 = new SQLColumn(null, "column_1",
Types.VARCHAR, "VARCHAR", 25, -1, 0, "remarks", null, false);
assertFalse(ArchitectUtils.columnsDiffer(col1, col2));
- col1 = new SQLColumn(null, "column_1", Types.CHAR, "CHAR", 25, 0,
0, "remarks", null, false, null);
- col2 = new SQLColumn(null, "column_1", Types.CHAR, "CHAR", 25, -1,
0, "remarks", null, false, null);
+ col1 = new SQLColumn(null, "column_1", Types.CHAR, "CHAR", 25, 0,
0, "remarks", null, false);
+ col2 = new SQLColumn(null, "column_1", Types.CHAR, "CHAR", 25, -1,
0, "remarks", null, false);
assertFalse(ArchitectUtils.columnsDiffer(col1, col2));
- col1 = new SQLColumn(null, "column_1", Types.INTEGER, "INTEGER", 33, 0,
0, "remarks", null, false, null);
- col2 = new SQLColumn(null, "column_1", Types.INTEGER, "LONGINT", 42, -1,
0, "remarks", null, false, null);
+ col1 = new SQLColumn(null, "column_1", Types.INTEGER, "INTEGER", 33, 0,
0, "remarks", null, false);
+ col2 = new SQLColumn(null, "column_1", Types.INTEGER, "LONGINT", 42, -1,
0, "remarks", null, false);
assertFalse(ArchitectUtils.columnsDiffer(col1, col2));
- col1 = new SQLColumn(null, "column_1", Types.DECIMAL, "NUMBER", 1, 0,
0, "remarks", null, false, null);
- col2 = new SQLColumn(null, "column_1", Types.DECIMAL, "NUMBER", 2, 0,
0, "remarks", null, false, null);
+ col1 = new SQLColumn(null, "column_1", Types.DECIMAL, "NUMBER", 1, 0,
0, "remarks", null, false);
+ col2 = new SQLColumn(null, "column_1", Types.DECIMAL, "NUMBER", 2, 0,
0, "remarks", null, false);
assertTrue(ArchitectUtils.columnsDiffer(col1, col2));
- col1 = new SQLColumn(null, "column_1", Types.NUMERIC, "NUMBER", 1, 0,
0, "remarks", null, false, null);
- col2 = new SQLColumn(null, "column_1", Types.DECIMAL, "NUMBER", 2, 0,
0, "remarks", null, false, null);
+ col1 = new SQLColumn(null, "column_1", Types.NUMERIC, "NUMBER", 1, 0,
0, "remarks", null, false);
+ col2 = new SQLColumn(null, "column_1", Types.DECIMAL, "NUMBER", 2, 0,
0, "remarks", null, false);
assertTrue(ArchitectUtils.columnsDiffer(col1, col2));
- col1 = new SQLColumn(null, "column_1", Types.NUMERIC, "NUMBER", 10, 5,
0, "remarks", null, false, null);
- col2 = new SQLColumn(null, "column_1", Types.DECIMAL, "NUMBER", 10, 5,
0, "remarks", null, false, null);
+ col1 = new SQLColumn(null, "column_1", Types.NUMERIC, "NUMBER", 10, 5,
0, "remarks", null, false);
+ col2 = new SQLColumn(null, "column_1", Types.DECIMAL, "NUMBER", 10, 5,
0, "remarks", null, false);
assertFalse(ArchitectUtils.columnsDiffer(col1, col2));
}
/*
=======================================
--- /trunk/regress/ca/sqlpower/architect/ddl/GenericDDLGeneratorTest.java
Wed May 5 14:57:41 2010
+++ /trunk/regress/ca/sqlpower/architect/ddl/GenericDDLGeneratorTest.java
Fri May 7 11:49:29 2010
@@ -83,17 +83,17 @@
tbl.setPhysicalName("test_table");
SQLColumn col1 = new SQLColumn(tbl, "N_TEST",
SQLType.NVARCHAR, "NVARCHAR", 1000, 0, 0, "",
- null, false, null);
+ null, false);
assertEquals("NVARCHAR(1000)", ddl.getColumnDataTypeName(col1));
assertEquals("NVARCHAR(1000)", ddl.columnType(col1));
SQLColumn col2 = new SQLColumn(tbl, "N_CHARTEST",
SQLType.NCHAR, "NCHAR", 1000, 0, 0, "",
- null, false, null);
+ null, false);
assertEquals("NCHAR(1000)", ddl.getColumnDataTypeName(col2));
assertEquals("NCHAR(1000)", ddl.columnType(col2));
SQLColumn col3 = new SQLColumn(tbl, "N_CLOB_TEST",
SQLType.NCLOB, "NCLOB", 1000, 0, 0, "",
- null, false, null);
+ null, false);
assertEquals("NCLOB", ddl.getColumnDataTypeName(col3));
assertEquals("NCLOB", ddl.columnType(col3));
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
Thu May 6 15:50:49 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
Fri May 7 11:49:29 2010
@@ -256,6 +256,16 @@
public List<UserDefinedSQLType>
getSQLTypes() {
return
ArchitectClientSideSession.this.getSQLTypes();
}
+
+ @Override
+ public UserDefinedSQLType getNewSQLType(String name, int
jdbcCode) {
+ UserDefinedSQLType newType =
new UserDefinedSQLType();
+ newType.setName(name);
+ newType.setType(jdbcCode);
+ ArchitectProject systemWorkspace =
ArchitectClientSideSession.this.getSystemWorkspace();
+ systemWorkspace.addChild(newType,
systemWorkspace.getChildren(UserDefinedSQLType.class).size());
+ return newType;
+ }
};
plIni.read(response.getEntity().getContent());
logger.debug("Data source collection has URI " +
plIni.getServerBaseURI());
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/PlayPen.java Thu
May 6 09:26:31 2010
+++ /trunk/src/main/java/ca/sqlpower/architect/swingui/PlayPen.java Fri
May 7 11:49:29 2010
@@ -1266,6 +1266,8 @@
SQLColumn sourceColumn =
newTable.getColumnByName(column.getName());
ASUtils.correctSourceColumn(sourceColumn, duplicateProperties,
column, getSession().getSourceDatabases());
}
+
+ SQLColumn.assignTypes(newTable.getColumns(),
newTable.getParentDatabase().getDataSource().getParentCollection(),
newTable.getParentDatabase().getDataSource().getName());
String key = source.getName().toLowerCase();
boolean isAlreadyOnPlaypen = false;
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/TablePane.java Thu
May 6 12:36:52 2010
+++ /trunk/src/main/java/ca/sqlpower/architect/swingui/TablePane.java Fri
May 7 11:49:29 2010
@@ -70,6 +70,7 @@
import ca.sqlpower.object.annotation.Mutator;
import ca.sqlpower.object.annotation.NonBound;
import ca.sqlpower.object.annotation.Transient;
+import ca.sqlpower.sql.JDBCDataSource;
import ca.sqlpower.sqlobject.LockedColumnException;
import ca.sqlpower.sqlobject.SQLColumn;
import ca.sqlpower.sqlobject.SQLIndex;
@@ -842,6 +843,7 @@
droppedColumns.addAll(((SQLTable)
o).getChildren(SQLColumn.class));
}
}
+
for (int i = 0; i < importedKeys.size(); i++) {
// Not dealing with self-referencing tables right now.
if
(importedKeys.get(i).getPkTable().equals(importedKeys.get(i).getFkTable()))
continue;
@@ -852,6 +854,12 @@
}
}
}
+
+ // Note that it is safe to assign types to previously
assigned
+ // columns, they will be ignored.
+ JDBCDataSource ds =
getModel().getParentDatabase().getDataSource();
+ SQLColumn.assignTypes(droppedColumns,
ds.getParentCollection(), ds.getName());
+
ArchitectProject project = this.getParent().getParent();
success = false;
try {