Bug 348145 - The list of discriminator columns/order columns not updated when table of entity changed
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyNamedColumn.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyNamedColumn.java
index 4cdd707..8475a29 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyNamedColumn.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyNamedColumn.java
@@ -69,6 +69,7 @@
* Return the column's datasource table.
*/
Table getDbTable();
+ String DB_TABLE_PROPERTY = "dbTable"; //$NON-NLS-1$
/**
* Return whether the column is found on the datasource.
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaNamedColumn.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaNamedColumn.java
index 74b8443..735064c 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaNamedColumn.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaNamedColumn.java
@@ -51,6 +51,7 @@
protected String columnDefinition;
+ protected Table dbTable;
protected AbstractJavaNamedColumn(JpaContextNode parent, O owner) {
this(parent, owner, null);
@@ -85,6 +86,7 @@
public void update() {
super.update();
this.setDefaultName(this.buildDefaultName());
+ this.setDbTable(this.buildDbTable());
}
@@ -191,6 +193,16 @@
}
public Table getDbTable() {
+ return this.dbTable;
+ }
+
+ protected void setDbTable(Table dbTable) {
+ Table old = this.dbTable;
+ this.dbTable = dbTable;
+ this.firePropertyChanged(DB_TABLE_PROPERTY, old, dbTable);
+ }
+
+ protected Table buildDbTable() {
return this.owner.resolveDbTable(this.getTable());
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualNamedColumn.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualNamedColumn.java
index ece6bb8..e090bd8 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualNamedColumn.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualNamedColumn.java
@@ -40,6 +40,7 @@
protected String columnDefinition;
+ protected Table dbTable;
protected AbstractJavaVirtualNamedColumn(JpaContextNode parent, O owner) {
super(parent);
@@ -57,6 +58,8 @@
this.setDefaultName(this.buildDefaultName());
this.setColumnDefinition(this.buildColumnDefinition());
+
+ this.setDbTable(this.buildDbTable());
}
@@ -128,6 +131,16 @@
}
public Table getDbTable() {
+ return this.dbTable;
+ }
+
+ protected void setDbTable(Table dbTable) {
+ Table old = this.dbTable;
+ this.dbTable = dbTable;
+ this.firePropertyChanged(DB_TABLE_PROPERTY, old, dbTable);
+ }
+
+ protected Table buildDbTable() {
return this.owner.resolveDbTable(this.getTable());
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmNamedColumn.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmNamedColumn.java
index 28013bc..b5174cf 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmNamedColumn.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmNamedColumn.java
@@ -52,6 +52,7 @@
protected String columnDefinition;
+ protected Table dbTable;
// ********** constructor/initialization **********
@@ -81,6 +82,7 @@
public void update() {
super.update();
this.setDefaultName(this.buildDefaultName());
+ this.setDbTable(this.buildDbTable());
}
@@ -199,6 +201,16 @@
}
public Table getDbTable() {
+ return this.dbTable;
+ }
+
+ protected void setDbTable(Table dbTable) {
+ Table old = this.dbTable;
+ this.dbTable = dbTable;
+ this.firePropertyChanged(DB_TABLE_PROPERTY, old, dbTable);
+ }
+
+ protected Table buildDbTable() {
return this.owner.resolveDbTable(this.getTable());
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVirtualNamedColumn.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVirtualNamedColumn.java
index df24982..792d412 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVirtualNamedColumn.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVirtualNamedColumn.java
@@ -41,6 +41,7 @@
protected String columnDefinition;
+ protected Table dbTable;
protected AbstractOrmVirtualNamedColumn(JpaContextNode parent, O owner) {
super(parent);
@@ -58,6 +59,8 @@
this.setDefaultName(this.buildDefaultName());
this.setColumnDefinition(this.buildColumnDefinition());
+
+ this.setDbTable(this.buildDbTable());
}
@@ -129,6 +132,16 @@
}
public Table getDbTable() {
+ return this.dbTable;
+ }
+
+ protected void setDbTable(Table dbTable) {
+ Table old = this.dbTable;
+ this.dbTable = dbTable;
+ this.firePropertyChanged(DB_TABLE_PROPERTY, old, dbTable);
+ }
+
+ protected Table buildDbTable() {
return this.owner.resolveDbTable(this.getTable());
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/DiscriminatorColumnComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/DiscriminatorColumnComposite.java
index fd831c7..e3e2495 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/DiscriminatorColumnComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/DiscriminatorColumnComposite.java
@@ -15,8 +15,8 @@
import org.eclipse.jpt.common.ui.internal.widgets.IntegerCombo;
import org.eclipse.jpt.common.ui.internal.widgets.Pane;
import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.jpa.core.context.DiscriminatorColumn;
import org.eclipse.jpt.jpa.core.context.DiscriminatorType;
import org.eclipse.jpt.jpa.core.context.Entity;
@@ -150,6 +150,16 @@
super.addPropertyNames(propertyNames);
propertyNames.add(ReadOnlyNamedColumn.SPECIFIED_NAME_PROPERTY);
propertyNames.add(ReadOnlyNamedColumn.DEFAULT_NAME_PROPERTY);
+ propertyNames.add(ReadOnlyNamedColumn.DB_TABLE_PROPERTY);
+ }
+
+ @Override
+ protected void propertyChanged(String propertyName) {
+ if (propertyName.equals(ReadOnlyNamedColumn.DB_TABLE_PROPERTY)) {
+ this.doPopulate();
+ } else {
+ super.propertyChanged(propertyName);
+ }
}
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/OrderColumnComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/OrderColumnComposite.java
index c8f5124..595d794 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/OrderColumnComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/OrderColumnComposite.java
@@ -10,14 +10,13 @@
package org.eclipse.jpt.jpa.ui.internal.jpa2.details;
import java.util.Collection;
-
import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
import org.eclipse.jpt.common.ui.internal.widgets.Pane;
import org.eclipse.jpt.common.ui.internal.widgets.TriStateCheckBox;
import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.jpa.core.context.BaseColumn;
import org.eclipse.jpt.jpa.core.context.NamedColumn;
import org.eclipse.jpt.jpa.core.jpa2.context.OrderColumn2_0;
@@ -84,6 +83,16 @@
super.addPropertyNames(propertyNames);
propertyNames.add(NamedColumn.DEFAULT_NAME_PROPERTY);
propertyNames.add(NamedColumn.SPECIFIED_NAME_PROPERTY);
+ propertyNames.add(NamedColumn.DB_TABLE_PROPERTY);
+ }
+
+ @Override
+ protected void propertyChanged(String propertyName) {
+ if (propertyName.equals(NamedColumn.DB_TABLE_PROPERTY)) {
+ this.doPopulate();
+ } else {
+ super.propertyChanged(propertyName);
+ }
}
@Override