Revision: 3938
Author: [email protected]
Date: Fri Sep  3 08:23:53 2010
Log: NEW - bug 2700: Generated sequence name grows to large values
http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=2700
Redesigned
http://code.google.com/p/power-architect/source/detail?r=3938

Modified:
 /trunk/src/main/java/ca/sqlpower/architect/swingui/ColumnEditPanel.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/ColumnEditPanel.java Fri Jul 30 12:56:08 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/ColumnEditPanel.java Fri Sep 3 08:23:53 2010
@@ -623,7 +623,6 @@
// Changing sequence name doesn't make sense in multi-edit
                     // because sequence names have to be unique
                     SQLColumn column = columns.iterator().next();
- colAutoIncSequenceName.setText(column.getAutoIncrementSequenceName()); if (column.getPhysicalName() != null && !column.getPhysicalName().trim().equals("")) { discoverSequenceNamePattern(column.getPhysicalName());
                     } else {
@@ -865,9 +864,19 @@
     private void discoverSequenceNamePattern(String colName) {
         String seqName = colAutoIncSequenceName.getText();
         int prefixEnd = seqName.indexOf(colName);
-        if (prefixEnd >= 0 && colName.length() > 0) {
+
+        String tableName = null;
+        if (columns.get(0).getParent() != null) {
+            tableName = columns.get(0).getParent().getPhysicalName();
+        }
+
+        if ((prefixEnd != -1 && seqName.substring
+                (prefixEnd + colName.length()).indexOf(colName) == -1)) {
             seqNamePrefix = seqName.substring(0, prefixEnd);
seqNameSuffix = seqName.substring(prefixEnd + colName.length());
+        } else if (seqName.equals(tableName + "_" + colName + "_seq")) {
+            seqNamePrefix = tableName + "_";
+            seqNameSuffix = "_seq";
         } else {
             seqNamePrefix = null;
             seqNameSuffix = null;
@@ -1044,6 +1053,11 @@

if (componentEnabledMap.get(colAutoIncSequenceName).isSelected()) { column.setAutoIncrementSequenceName(colAutoIncSequenceName.getText());
+
+                    if (colAutoIncSequenceName.getText().equals("")) {
+                        column.setAutoIncrementSequenceName(
+                                column.makeAutoIncrementSequenceName());
+                    }
                 }
             }
         } catch (SQLObjectException e) {

Reply via email to