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 {

Reply via email to