251293 - latest contribution for entity generation
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/Association.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/Association.java
index aef08c4..cf4eb38 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/Association.java
+++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/Association.java
@@ -190,7 +190,8 @@
*/
public List<ORMGenColumn> getReferrerColumns() {
if (mReferrerCols == null) {
- mReferrerCols = getReferrerTable().getColumnsByNames(mReferrerColNames);
+ ORMGenTable referrerTable = getReferrerTable();
+ mReferrerCols = referrerTable.getColumnsByNames(mReferrerColNames);
}
return mReferrerCols;
}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/BaseEntityGenCustomizer.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/BaseEntityGenCustomizer.java
index 8b6191c..15c4a9a 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/BaseEntityGenCustomizer.java
+++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/BaseEntityGenCustomizer.java
@@ -190,7 +190,7 @@
*/
public String genFetch(ORMGenTable table) {
String fetch = table.getDefaultFetch();
- if (fetch == null) {
+ if (fetch == null || ORMGenTable.DEFAULT_FETCH.equals( fetch)) {
return "";
} else if (fetch.equals(ORMGenTable.LAZY_FETCH)) {
return "FetchType.LAZY";
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenColumn.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenColumn.java
index 24d4211..556977f 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenColumn.java
+++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenColumn.java
@@ -9,8 +9,11 @@
******************************************************************************/
package org.eclipse.jpt.gen.internal2;
+import java.util.Collections;
+
import org.eclipse.jpt.db.Column;
import org.eclipse.jpt.db.Table;
+import org.eclipse.jpt.gen.internal.EntityGenTools;
import org.eclipse.jpt.gen.internal2.util.DTPUtil;
import org.eclipse.jpt.gen.internal2.util.StringUtil;
@@ -89,7 +92,8 @@
public String getPropertyName() {
String name = customized(PROPERTY_NAME);
if (name == null) {
- name = StringUtil.columnNameToVarName(getName());
+ //name = StringUtil.columnNameToVarName(getName());
+ name = EntityGenTools.convertToUniqueJavaStyleAttributeName(getName(), Collections.EMPTY_SET);
}
return name;
}
@@ -117,8 +121,11 @@
*/
public boolean isDefaultname(){
String propName = getPropertyName();
- String dbColumnName = getName();
- return propName.equalsIgnoreCase( dbColumnName );
+// String dbColumnName = getName();
+// return propName.equalsIgnoreCase( dbColumnName );
+ String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().
+ buildColumnAnnotationName(propName , this.mDbColumn );
+ return annotationName==null;
}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenCustomizer.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenCustomizer.java
index 32496eb..9ed46bc 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenCustomizer.java
+++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenCustomizer.java
@@ -52,6 +52,7 @@
* indicating that the value applies to any table.
*/
public static final String ANY_TABLE = "__anyTable__";
+ public static final String GENERATE_DDL_ANNOTATION = "generateDDLAnnotations";
/*the string used in the property name in mProps to indicate
* a null table value.*/
private static final String NULL_TABLE = "";
@@ -170,10 +171,7 @@
mFile = file;
if (!file.exists()) {
- /*A hack to set the default to eager so thet app does not throw at runtime for new apps
- * (in case a lazy strategy is not developed yet). This is done instead of in ORMGenTable.getDefaultFetch
- * for backward compatibility.*/
- setProperty(ORMGenTable.DEFAULT_FETCH, ORMGenTable.EAGER_FETCH, ORMGenCustomizer.ANY_TABLE, null);
+ setProperty(ORMGenTable.DEFAULT_FETCH, ORMGenTable.DEFAULT_FETCH, ORMGenCustomizer.ANY_TABLE, null);
return;
}
InputStream istream = null;
@@ -276,6 +274,16 @@
}
/**
+ * Returns {@link #GENERATE_DDL_ANNOTATION} indicating whether
+ * the optional DDL parameters like length, nullable, unqiue, etc should be generated
+ * in @Column annotation.
+ * defaults to false.
+ */
+ public boolean isGenerateDDLAnnotations() {
+ return "true".equals(getProperty(GENERATE_DDL_ANNOTATION, ANY_TABLE, null)); //defaults to false
+ }
+
+ /**
* Returns a property value.
*/
public String getProperty(String propertyName, String tableName, String colName) {
@@ -322,6 +330,16 @@
public List<String> getTableNames() {
return mTableNames != null ? mTableNames : java.util.Collections.EMPTY_LIST;
}
+
+ /**
+ * Returns the fetch type annotation member value, or empty string
+ * if none.
+ * Empty string is returned instead of null because Velocity does not like null
+ * when used in #set.
+ */
+ public String genFetch(ORMGenTable table) {
+ return "";
+ }
/**
* Called when the table user selection is changed in the
* generation wizard.
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenTable.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenTable.java
index 11ab29a..e03c7d2 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenTable.java
+++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/ORMGenTable.java
@@ -16,6 +16,7 @@
import org.eclipse.jpt.db.Column;
import org.eclipse.jpt.db.Table;
+import org.eclipse.jpt.gen.internal.EntityGenTools;
import org.eclipse.jpt.gen.internal2.util.DTPUtil;
import org.eclipse.jpt.gen.internal2.util.StringUtil;
import org.eclipse.jpt.utility.JavaType;
@@ -85,9 +86,7 @@
public String getName() {
if( mDbTable == null )
return ORMGenCustomizer.ANY_TABLE;
- String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().
- buildTableAnnotationName(mDbTable.getName(), mDbTable);
- return annotationName != null ? annotationName : mDbTable.getName();
+ return mDbTable.getName();
}
public String getJoinTableAnnotationName(){
@@ -129,8 +128,9 @@
public String getClassName() {
String name = customized(CLASS_NAME);
if (name == null) {
- name = StringUtil.tableNameToVarName(getName());
- name = StringUtil.initUpper(name);
+ //name = StringUtil.tableNameToVarName(getName());
+ //name = StringUtil.initUpper(name);
+ name = EntityGenTools.convertToUniqueJavaStyleClassName( getName(), new ArrayList<String>() );
name = StringUtil.singularise(name);
}
return name;
@@ -533,11 +533,11 @@
* defaults to false.
*/
public boolean isGenerateDDLAnnotations() {
- return "true".equals(customized(GENERATE_DDL_ANNOTATION)); //defaults to false
+ return "true".equals(customized(ORMGenCustomizer.GENERATE_DDL_ANNOTATION)); //defaults to false
}
public void setGenerateDDLAnnotations(boolean generate) {
- setCustomizedBoolean(GENERATE_DDL_ANNOTATION, generate, false);
+ setCustomizedBoolean(ORMGenCustomizer.GENERATE_DDL_ANNOTATION, generate, false);
}
/**
@@ -623,9 +623,11 @@
* @return true
*/
public boolean isDefaultname(){
- String className = this.getClassName();
- String tableName = this.getDbTable().getName();
- return className.equalsIgnoreCase( tableName) ;
+ String entityName = getClassName();
+ String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().
+ buildTableAnnotationName(entityName, mDbTable);
+
+ return annotationName==null;
}
/**
@@ -790,6 +792,7 @@
public static final String FIELD_ACCESS = "field";
/*default fech constants. Note that these strings are used in the gen velocity templates.*/
+ public static final String DEFAULT_FETCH = "defaultFetch";
public static final String LAZY_FETCH = "lazy";
public static final String EAGER_FETCH = "eager";
@@ -820,9 +823,7 @@
private static final String SEQUENCE = "sequence";
private static final String COMPOSITE_KEY_CLASS_NAME = "compositeKeyClassName";
private static final String IMPLEMENT_EQUALS = "implementEquals";
- private static final String GENERATE_DDL_ANNOTATION = "generateDDLAnnotations";
private static final String ACCESS = "access";
- static final String DEFAULT_FETCH = "defaultFetch";
private static final String DEFAULT_COLLECTION_TYPE = "defaultCollectionType";
}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/PackageGenerator2.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/PackageGenerator2.java
index 3b85b09..1969221 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/PackageGenerator2.java
+++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal2/PackageGenerator2.java
@@ -49,7 +49,11 @@
private IJavaProject javaProject;
private ORMGenCustomizer customizer ;
+ private static OverwriteConfirmer overwriteConfirmer = null;
+ static public void setOverwriteConfirmer(OverwriteConfirmer confirmer){
+ overwriteConfirmer = confirmer;
+ }
/**
* @param customizer
* @param synchronizePersistenceXml
@@ -99,10 +103,12 @@
String tableName = (String) iter.next();
ORMGenTable table = (ORMGenTable) customizer.getTable(tableName);
+ String className = table.getQualifiedClassName();
+
generateClass(table, templDir.getAbsolutePath(), progress);
progress.worked(1);
- genClasses.add(table.getQualifiedClassName());
+ genClasses.add( className );
/*
* add the composite key class to persistence.xml because some
* JPA provider(e.g. Kodo) requires it. Hibernate doesn't seem to care).
@@ -162,6 +168,11 @@
IFolder javaPackageFolder = getJavaPackageFolder(table, monitor);
IFile javaFile = javaPackageFolder.getFile( table.getClassName() + ".java"); //$NON-NLS-1$
+ if( javaFile.exists() ){
+ if( overwriteConfirmer!=null && !overwriteConfirmer.overwrite(javaFile.getName()) )
+ return;
+ }
+
Properties vep = new Properties();
vep.setProperty("file.resource.loader.path", templateDirPath); //$NON-NLS-1$
VelocityEngine ve = new VelocityEngine();
diff --git a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/column.vm b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/column.vm
index 8bb4910..d8e7f32 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/column.vm
+++ b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/column.vm
@@ -18,7 +18,7 @@
@Temporal( TemporalType.$column.temporalType)
#end
#set ($members = "")
-#if ( !$column.default || $table.generateDDLAnnotations )
+#if ( !$column.default || $customizer.generateDDLAnnotations )
#set ($members = "name=$customizer.quote($column.name)")
#if (!$column.insertable)
#set ($members = "$members, insertable=false")
@@ -27,7 +27,7 @@
#set ($members = "$members, updatable=false")
#end
#end
-#if( $table.generateDDLAnnotations )
+#if( $customizer.generateDDLAnnotations )
#if ($column.unique)
#append($members "unique=true")
#end
diff --git a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/join.vm b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/join.vm
index ece3ff4..32117c6 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/join.vm
+++ b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/join.vm
@@ -7,7 +7,7 @@
#if( !$referencedColumn.primaryKey )
#set ($members = "$members, referencedColumnName=$customizer.quote($referencedColumn.name)")
#end
-#if( $table.generateDDLAnnotations )
+#if( $customizer.generateDDLAnnotations )
#if ($column.unique && !$column.primaryKey)
#set ($members = "$members, unique=true")
#end
@@ -15,7 +15,7 @@
#set ($members = "$members, nullable=false")
#end
#end
-#if (!$role.association.joinTable && !$role.referrerTable.isColumnUpdateInsert($role, $column))
+#if ($customizer.generateDDLAnnotations && !$role.association.joinTable && !$role.referrerTable.isColumnUpdateInsert($role, $column))
#set ($members = "$members, insertable=false, updatable=false")
#end
@JoinColumn($members)#end
@@ -48,8 +48,16 @@
#if ($role.referrerColumns.size() == 1)
#set ($column = $role.referrerColumns.get(0))
#set ($referencedColumn = $role.getReferencedColumn(${column.name}))
+#set ($referencedTableName = $role.getReferencedTable().getName() )
+#set( $referencedTablePkName = $role.getReferencedTable().getPrimaryKeyColumn().name )
+#set( $computedJoinColumnName = "${role.propertyName}_${referencedTablePkName}" )
+#if($column.name.toUpperCase() != $computedJoinColumnName.toUpperCase() )
#joinColumn($column $referencedColumn)
+#elseif( $customizer.generateDDLAnnotations )
+ #joinColumn($column $referencedColumn)
+
+#end
#else
@JoinColumns({
#foreach ($column in $role.referrerColumns)
diff --git a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/main.java.vm b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/main.java.vm
index 28c861c..0eb6c4b 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/main.java.vm
+++ b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/main.java.vm
@@ -1,6 +1,7 @@
#if ($table.package != "")
package ${table.package};
#end
+
import java.io.Serializable;
import javax.persistence.*;
@@ -9,7 +10,9 @@
*
*/
@Entity
+#if( !${table.defaultname} || $customizer.generateDDLAnnotations)
@Table(name="${table.name}")
+#end
public class ${table.className} ${table.generateExtendsImplements()} {
private static final long serialVersionUID = 1L;
#####
diff --git a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/manyToMany.vm b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/manyToMany.vm
index fe3bfed..affed63 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/manyToMany.vm
+++ b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/manyToMany.vm
@@ -4,11 +4,15 @@
#if ($role.association.bidirectional && !$role.isReferrerRole())##the owning side (either side for many-to-many)
#set ($members = $customizer.appendAnnotation("", "mappedBy", $role.oppositeRole.propertyName, true))
#set ($members = $customizer.appendAnnotation($members, "cascade", $customizer.genCascades($role), false))
+#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.LAZY")
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
+#end
@ManyToMany($members)
#else
#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))
+#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.LAZY")
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
+#end
@ManyToMany($members)
#parse("join.vm")
#end
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/manyToOne.vm b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/manyToOne.vm
index 8253462..7d279bb 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/manyToOne.vm
+++ b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/manyToOne.vm
@@ -2,6 +2,12 @@
##Assumes that the context has a "role" object representing the generated AssociationRole
##
#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))
+#if( $customizer.genFetch($role.referrerTable)!= "" && $customizer.genFetch($role.referrerTable)!= "FetchType.EAGER")
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
+#end
+#if($members!="")
@ManyToOne($members)
+#else
+ @ManyToOne
+#end
#parse("join.vm")
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/oneToMany.vm b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/oneToMany.vm
index bb89d5b..46f15cb 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/oneToMany.vm
+++ b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/oneToMany.vm
@@ -4,11 +4,15 @@
#if ($role.association.bidirectional)
#set ($members = $customizer.appendAnnotation("", "mappedBy", $role.oppositeRole.propertyName, true))
#set ($members = $customizer.appendAnnotation($members, "cascade", $customizer.genCascades($role), false))
+#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable) !="FetchType.LAZY")
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
+#end
@OneToMany($members)
#else
#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))
+#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable) !="FetchType.LAZY")
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
+#end
@OneToMany($members)
#parse("join.vm")
#end
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/oneToOne.vm b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/oneToOne.vm
index 862c967..7bd7519 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/oneToOne.vm
+++ b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/oneToOne.vm
@@ -4,11 +4,19 @@
#if ($role.association.bidirectional && !$role.isReferrerRole())##the owning side (either side for one-to-one)
#set ($members = $customizer.appendAnnotation("", "mappedBy", $role.oppositeRole.propertyName, true))
#set ($members = $customizer.appendAnnotation($members, "cascade", $customizer.genCascades($role), false))
+#if( $customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.EAGER" )
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
+#end
@OneToOne($members)
#else
#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))
+#if( $customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.EAGER" )
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
+#end
+#if($members!="")
@OneToOne($members)
+#else
+ @OneToOne
+#end
#parse("join.vm")
#end
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/pk.java.vm b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/pk.java.vm
index 780037e..1831098 100644
--- a/jpa/plugins/org.eclipse.jpt.gen/templates/entities/pk.java.vm
+++ b/jpa/plugins/org.eclipse.jpt.gen/templates/entities/pk.java.vm
@@ -1,6 +1,7 @@
#if ($table.package != "")
package ${table.package};
#end
+
import java.io.Serializable;
import javax.persistence.*;
@@ -8,7 +9,7 @@
* The primary key class for the ${table.name} database table.
*
*/
-@Embeddable()
+@Embeddable
public class ${table.compositeKeyClassName} implements Serializable {
//default serial version id, required for serializable classes.
private static final long serialVersionUID = 1L;
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_gen.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_gen.properties
index 9b8c42a..c9eda75 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_gen.properties
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_entity_gen.properties
@@ -11,14 +11,11 @@
cardinality=Car&dinality:
property=P&roperty:
cascade=&Cascade:
-databaseSettings=Database Settings
connection=&Connection:
schema=&Schema:
schemaInfo=(Note: You must have an active connection to select schema.)
addConnectionLink=Add connections...
-reconnectLink=Reconnect...
connectLink=Connect
-connectingMessage=Connecting...
manyToOne=&Many to one
manyToMany=Man&y to many
oneToMany=&One to many
@@ -29,21 +26,15 @@
add=&Add
remove=&Remove
-browse=B&rowse...
-
-showInSchemaViewer=Show in Schema Viewer
-showInEntityEditor=Show in Entity Relationship Editor
GenerateEntitiesWizard_generateEntities=Generate Custom Entities
GenerateEntitiesWizard_selectJPAProject=JPA Project Selection
GenerateEntitiesWizard_selectJPAProject_msg=Select a JPA project.
-GenerateEntitiesWizard_selectJPAProject_label=JPA projects in the workspace:
GenerateEntitiesWizard_tableSelectPage_selectTable=Select Tables
GenerateEntitiesWizard_tableSelectPage_chooseEntityTable=Select tables to generate entities from.
GenerateEntitiesWizard_tableSelectPage_synchronizeClasses=Synchronize classes listed in persistence.xml
-GenerateEntitiesWizard_tableSelectPage_copyJdbcDrive = Add JDBC driver to project classpath
GenerateEntitiesWizard_tableSelectPage_tables=&Tables:
GenerateEntitiesWizard_tableSelectPage_tableColumn=Table
@@ -69,19 +60,13 @@
GenerateEntitiesWizard_defaultTablePage_sequenceNote=You can use the patterns %s and/or %s in the sequence name.\n\
These patterns will be replaced by the table name and the primary key \n\
column name when a table mapping is generated.
-GenerateEntitiesWizard_defaultTablePage_package=Java Package *:
-GenerateEntitiesWizard_defaultTablePage_baseClass=Base Class:
-GenerateEntitiesWizard_defaultTablePage_interfaces=Interfaces:
-GenerateEntitiesWizard_defaultTablePage_chooseInterfaces=Choose Class Interfaces
+
GenerateEntitiesWizard_tablesAndColumnsPage_title=Customize Individual Entities
GenerateEntitiesWizard_tablesAndColumnsPage_desc=Customize detail of individual entities by selecting the associated tables or columns and changing values in the editing panel.
GenerateEntitiesWizard_tablesAndColumnsPage_labelTableAndColumns=&Tables and columns
-GenerateEntitiesWizard_tablesAndColumnsPage_tableMapping=Table Mapping
-GenerateEntitiesWizard_tablesAndColumnsPage_columnMapping=Column Mapping
GenerateEntitiesWizard_tablePanel_className=&Class name:
-GenerateEntitiesWizard_tablePanel_implementEq=Implement equals/hashCode
GenerateEntitiesWizard_colPanel_genProp=Generate this property
GenerateEntitiesWizard_colPanel_colMapping=Column mapping
GenerateEntitiesWizard_colPanel_propName=Property &name:
@@ -92,15 +77,11 @@
GenerateEntitiesWizard_colPanel_setterScope=Setter Scope:
GenerateEntitiesWizard_colPanel_colUpdateable=Column is &updatable
GenerateEntitiesWizard_colPanel_colInsertable=Column is &insertable
-GenerateEntitiesWizard_colPanel_useInToString=Use in toString
-GenerateEntitiesWizard_colPanel_useInEquals=Use in equals/hashCode
GenerateEntitiesWizard_newAssoc_title=Create New Association
-GenerateEntitiesWizard_newAssoc_exists=A similar association between %s and %s already exists.
GenerateEntitiesWizard_newAssoc_tablesPage_title=Association Tables
GenerateEntitiesWizard_newAssoc_tablesPage_desc=Specify the association tables.
-GenerateEntitiesWizard_tablesSelPage_newConn=New...
GenerateEntitiesWizard_newAssoc_tablesPage_assocKind=Association Kind
GenerateEntitiesWizard_newAssoc_tablesPage_assocTables=Association &tables:
GenerateEntitiesWizard_newAssoc_tablesPage_table1=Table &1:
@@ -121,8 +102,8 @@
GenerateEntitiesWizard_assocEditor_tableJoin=Table &join:
GenerateEntitiesWizard_assocEditor_joinedWhen=The table rows are joined when:\n%s
GenerateEntitiesWizard_assocEditor_genAssoc=Generate &this association
-GenerateEntitiesWizard_fileWillBeOverwritten = Note that the generated .java files will *overwrite* existing files with the same name.
GenerateEntitiesWizard_doNotShowWarning = Don't show me this warning again
-GenerateEntitiesWizard_inconsistentConn=The selected connection url is different than the connection url specified in the "%s" file .
-
+selectCascadeDlgTitle=Select Cascade
+selectTableDlgTitle=Table Selection
+selectTableDlgDesc=&Select a table
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator2.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator2.java
index 5eb9f0e..65c4a08 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator2.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator2.java
@@ -73,164 +73,5 @@
return Display.getCurrent().getActiveShell();
}
- // ********** overwrite confirmer **********
-
- static class OverwriteConfirmer implements org.eclipse.jpt.gen.internal2.OverwriteConfirmer {
- private Shell shell;
- private boolean overwriteAll = false;
- private boolean skipAll = false;
-
- OverwriteConfirmer(Shell shell) {
- super();
- this.shell = shell;
- }
-
- public boolean overwrite(final String className) {
- if (this.overwriteAll) {
- return true;
- }
- if (this.skipAll) {
- return false;
- }
- return this.promptUser(className);
- }
-
- private boolean promptUser(String className) {
- final OverwriteConfirmerDialog dialog = new OverwriteConfirmerDialog(this.shell, className);
- // get on the UI thread synchronously, need feedback before continuing
- this.shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- dialog.open();
- }
- });
- if (dialog.getReturnCode() == Window.CANCEL) {
- throw new OperationCanceledException();
- }
- if (dialog.yes()) {
- return true;
- }
- if (dialog.yesToAll()) {
- this.overwriteAll = true;
- return true;
- }
- if (dialog.no()) {
- return false;
- }
- if (dialog.noToAll()) {
- this.skipAll = true;
- return false;
- }
- throw new IllegalStateException();
- }
-
- }
-
-
- // ********** overwrite dialog **********
-
- static class OverwriteConfirmerDialog extends Dialog {
- private final String className;
- private boolean yes = false;
- private boolean yesToAll = false;
- private boolean no = false;
- private boolean noToAll = false;
-
- OverwriteConfirmerDialog(Shell parent, String className) {
- super(parent);
- this.className = className;
- }
-
- @Override
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- shell.setText(JptUiMessages.OverwriteConfirmerDialog_title);
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite composite = (Composite) super.createDialogArea(parent);
- GridLayout gridLayout = (GridLayout) composite.getLayout();
- gridLayout.numColumns = 2;
-
- Label text = new Label(composite, SWT.LEFT);
- text.setText(NLS.bind(JptUiMessages.OverwriteConfirmerDialog_text, this.className));
- text.setLayoutData(new GridData());
-
- return composite;
- }
-
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- this.createButton(parent, IDialogConstants.YES_ID, IDialogConstants.YES_LABEL, false);
- this.createButton(parent, IDialogConstants.YES_TO_ALL_ID, IDialogConstants.YES_TO_ALL_LABEL, false);
- this.createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, true);
- this.createButton(parent, IDialogConstants.NO_TO_ALL_ID, IDialogConstants.NO_TO_ALL_LABEL, false);
- this.createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
- }
-
- @Override
- protected void buttonPressed(int buttonId) {
- switch (buttonId) {
- case IDialogConstants.YES_ID :
- this.yesPressed();
- break;
- case IDialogConstants.YES_TO_ALL_ID :
- this.yesToAllPressed();
- break;
- case IDialogConstants.NO_ID :
- this.noPressed();
- break;
- case IDialogConstants.NO_TO_ALL_ID :
- this.noToAllPressed();
- break;
- case IDialogConstants.CANCEL_ID :
- this.cancelPressed();
- break;
- default :
- break;
- }
- }
-
- private void yesPressed() {
- this.yes = true;
- this.setReturnCode(OK);
- this.close();
- }
-
- private void yesToAllPressed() {
- this.yesToAll = true;
- this.setReturnCode(OK);
- this.close();
- }
-
- private void noPressed() {
- this.no = true;
- this.setReturnCode(OK);
- this.close();
- }
-
- private void noToAllPressed() {
- this.noToAll = true;
- this.setReturnCode(OK);
- this.close();
- }
-
- boolean yes() {
- return this.yes;
- }
-
- boolean yesToAll() {
- return this.yesToAll;
- }
-
- boolean no() {
- return this.no;
- }
-
- boolean noToAll() {
- return this.noToAll;
- }
- }
-
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/AssociationTablesPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/AssociationTablesPage.java
index e4d690d..b53a27e 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/AssociationTablesPage.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/AssociationTablesPage.java
@@ -112,7 +112,7 @@
}
});
- createLabel(assocTablesGroup, 1, JptUiEntityGenMessages.GenerateEntitiesWizard_newAssoc_tablesPage_assocTables );
+ createLabel(assocTablesGroup, 1, JptUiEntityGenMessages.GenerateEntitiesWizard_newAssoc_tablesPage_intermediateTable );
joinTableTextField = createText(assocTablesGroup, 1);
joinTableTextField.setEnabled(false);
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/GenerateEntitiesFromSchemaWizard.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/GenerateEntitiesFromSchemaWizard.java
index 65713b2..de65bab 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/GenerateEntitiesFromSchemaWizard.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/GenerateEntitiesFromSchemaWizard.java
@@ -15,7 +15,6 @@
import java.util.Collection;
import java.util.Collections;
-import org.eclipse.core.internal.runtime.AdapterManager;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -23,12 +22,15 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jpt.core.EntityGeneratorDatabaseAnnotationNameBuilder;
@@ -50,25 +52,29 @@
import org.eclipse.jpt.ui.internal.JptUiIcons;
import org.eclipse.jpt.ui.internal.JptUiMessages;
import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
-@SuppressWarnings("restriction")
public class GenerateEntitiesFromSchemaWizard extends Wizard
implements INewWizard {
public static final String HELP_CONTEXT_ID = JptUiPlugin.PLUGIN_ID + ".GenerateEntitiesFromSchemaWizard"; //$NON-NLS-1$
+ private static final String DONT_SHOW_OVERWRITE_WARNING_DIALOG = "DONT_SHOW_OVERWRITE_WARNING_DIALOG";
+
private JpaProject jpaProject;
private IStructuredSelection selection;
@@ -160,8 +166,8 @@
*/
public ORMGenCustomizer createORMGenCustomizer(Schema schema){
JpaPlatform jpaPlatform = this.jpaProject.getJpaPlatform();
- Object obj = AdapterManager.getDefault().getAdapter( jpaPlatform, ORMGenCustomizer.class );
- if( obj != null ){
+ Object obj = Platform.getAdapterManager().getAdapter( jpaPlatform, ORMGenCustomizer.class );
+ if( obj != null && obj instanceof ORMGenCustomizer){
customizer = (ORMGenCustomizer) obj ;
customizer.init(getCustomizationFile(), schema );
}else{
@@ -205,10 +211,8 @@
this.synchronizePersistenceXml = this.tablesSelectorPage.synchronizePersistenceXml();
- if( WarnOverwriteDialog.shouldShowDialog() ){
- if( !this.openConfirmDialog() )
- return false;
- }
+ if(shouldShowOverwriteWarning())
+ PackageGenerator2.setOverwriteConfirmer( new OverwriteConfirmer());
WorkspaceJob genEntitiesJob = new GenerateEntitiesJob( this.jpaProject, getCustomizer() );
@@ -244,11 +248,199 @@
@Override
public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
- PackageGenerator2.generate(jpaProject.getJavaProject(),this.customizer, monitor);
+ try{
+ PackageGenerator2.generate(jpaProject.getJavaProject(),this.customizer, monitor);
+ }catch(OperationCanceledException e){
+ //user canceled generation
+ }
return Status.OK_STATUS;
}
}
+ public static boolean shouldShowOverwriteWarning(){
+ IEclipsePreferences pref = new InstanceScope().getNode( JptUiPlugin.PLUGIN_ID);
+ boolean ret = ! pref.getBoolean( DONT_SHOW_OVERWRITE_WARNING_DIALOG, false) ;
+ return( ret );
+ }
+
+ // ********** overwrite confirmer **********
+
+ static class OverwriteConfirmer implements org.eclipse.jpt.gen.internal2.OverwriteConfirmer {
+ private boolean overwriteAll = false;
+ private boolean skipAll = false;
+
+ OverwriteConfirmer() {
+ }
+
+ public boolean overwrite(final String className) {
+ if (this.overwriteAll) {
+ return true;
+ }
+ if (this.skipAll) {
+ return false;
+ }
+ return this.promptUser(className);
+ }
+
+ private boolean promptUser(final String className) {
+ // get on the UI thread synchronously, need feedback before continuing
+ final boolean ret[]=new boolean[1];
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ final OverwriteConfirmerDialog dialog = new OverwriteConfirmerDialog(Display.getCurrent().getActiveShell(), className);
+ dialog.open();
+ if (dialog.getReturnCode() == Window.CANCEL) {
+ //throw new OperationCanceledException();
+ skipAll = true;
+ ret[0] = false;
+ return;
+ }
+ if (dialog.yes()) {
+ ret[0] = true;
+ }
+ if (dialog.yesToAll()) {
+ overwriteAll = true;
+ ret[0] = true;
+ }
+ if (dialog.no()) {
+ ret[0] = false;
+ }
+ if (dialog.noToAll()) {
+ skipAll = true;
+ ret[0] = false;
+ }
+ }
+ });
+ return ret[0];
+ }
+
+ }
+
+
+ // ********** overwrite dialog **********
+
+ static class OverwriteConfirmerDialog extends Dialog {
+ private final String className;
+ private boolean yes = false;
+ private boolean yesToAll = false;
+ private boolean no = false;
+ private boolean noToAll = false;
+
+ OverwriteConfirmerDialog(Shell parent, String className) {
+ super(parent);
+ this.className = className;
+ }
+
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setText(JptUiMessages.OverwriteConfirmerDialog_title);
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ Composite composite = (Composite) super.createDialogArea(parent);
+ GridLayout gridLayout = (GridLayout) composite.getLayout();
+ gridLayout.numColumns = 1;
+
+ Label text = new Label(composite, SWT.LEFT);
+ text.setText(NLS.bind(JptUiMessages.OverwriteConfirmerDialog_text, this.className));
+ text.setLayoutData(new GridData());
+
+ createDontShowControl(composite);
+
+ return composite;
+ }
+
+ protected Control createDontShowControl(Composite composite) {
+ final Button checkbox = new Button( composite, SWT.CHECK );
+ checkbox.setText( JptUiEntityGenMessages.GenerateEntitiesWizard_doNotShowWarning );
+ checkbox.setSelection(false);
+ final IEclipsePreferences pref = new InstanceScope().getNode( JptUiPlugin.PLUGIN_ID);
+ checkbox.setLayoutData( new GridData(GridData.FILL_BOTH) );
+ checkbox.addSelectionListener(new SelectionListener (){
+ public void widgetDefaultSelected(SelectionEvent e) {}
+ public void widgetSelected(SelectionEvent e) {
+ boolean b = checkbox.getSelection();
+ pref.putBoolean( DONT_SHOW_OVERWRITE_WARNING_DIALOG, b);
+ }
+ });
+ return checkbox;
+ }
+
+ @Override
+ protected void createButtonsForButtonBar(Composite parent) {
+ this.createButton(parent, IDialogConstants.YES_ID, IDialogConstants.YES_LABEL, false);
+ this.createButton(parent, IDialogConstants.YES_TO_ALL_ID, IDialogConstants.YES_TO_ALL_LABEL, false);
+ this.createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, true);
+ this.createButton(parent, IDialogConstants.NO_TO_ALL_ID, IDialogConstants.NO_TO_ALL_LABEL, false);
+ this.createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
+ }
+
+ @Override
+ protected void buttonPressed(int buttonId) {
+ switch (buttonId) {
+ case IDialogConstants.YES_ID :
+ this.yesPressed();
+ break;
+ case IDialogConstants.YES_TO_ALL_ID :
+ this.yesToAllPressed();
+ break;
+ case IDialogConstants.NO_ID :
+ this.noPressed();
+ break;
+ case IDialogConstants.NO_TO_ALL_ID :
+ this.noToAllPressed();
+ break;
+ case IDialogConstants.CANCEL_ID :
+ this.cancelPressed();
+ break;
+ default :
+ break;
+ }
+ }
+
+ private void yesPressed() {
+ this.yes = true;
+ this.setReturnCode(OK);
+ this.close();
+ }
+
+ private void yesToAllPressed() {
+ this.yesToAll = true;
+ this.setReturnCode(OK);
+ this.close();
+ }
+
+ private void noPressed() {
+ this.no = true;
+ this.setReturnCode(OK);
+ this.close();
+ }
+
+ private void noToAllPressed() {
+ this.noToAll = true;
+ this.setReturnCode(OK);
+ this.close();
+ }
+
+ boolean yes() {
+ return this.yes;
+ }
+
+ boolean yesToAll() {
+ return this.yesToAll;
+ }
+
+ boolean no() {
+ return this.no;
+ }
+
+ boolean noToAll() {
+ return this.noToAll;
+ }
+ }
+
private DatabaseAnnotationNameBuilder buildDatabaseAnnotationNameBuilder() {
return new LocalDatabaseAnnotationNameBuilder(this.jpaProject.getJpaPlatform().getEntityGeneratorDatabaseAnnotationNameBuilder());
@@ -358,59 +550,5 @@
this.setWindowTitle( JptUiEntityGenMessages.GenerateEntitiesWizard_generateEntities);
}
-
- public boolean openConfirmDialog() {
- Shell parent = Display.getDefault().getActiveShell();
- String title = JptUiEntityGenMessages.WarningDialogTitle;
- String message = JptUiEntityGenMessages.GenerateEntitiesWizard_fileWillBeOverwritten;
- WarnOverwriteDialog dialog = new WarnOverwriteDialog(parent, title, null, // accept
- // the
- // default
- // window
- // icon
- message, MessageDialog.QUESTION, new String[] { IDialogConstants.OK_LABEL,
- IDialogConstants.CANCEL_LABEL }, 0); // OK is the
- // default
- return dialog.open() == 0;
- }
}
-
-/**
- * A simple dialog displaying warning message that existing files would be overwritten
- */
-class WarnOverwriteDialog extends MessageDialog {
- static final String DONT_SHOW_OVERWRITE_WARNING = "DONT_SHOW_OVERWRITE_WARNING"; //$NON-NLS-1$
-
- public WarnOverwriteDialog (Shell parentShell, String dialogTitle,
- Image dialogTitleImage, String dialogMessage, int dialogImageType,
- String[] dialogButtonLabels, int defaultIndex) {
- super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType,
- dialogButtonLabels, defaultIndex);
- }
-
- @Override
- protected Control createCustomArea(Composite composite) {
- final Button checkbox = new Button( composite, SWT.CHECK );
- checkbox.setText( JptUiEntityGenMessages.GenerateEntitiesWizard_doNotShowWarning );
- checkbox.setSelection(false);
- final IEclipsePreferences pref = new InstanceScope().getNode( JptUiPlugin.PLUGIN_ID);
- checkbox.setLayoutData( new GridData(GridData.FILL_BOTH) );
- checkbox.addSelectionListener(new SelectionListener (){
- public void widgetDefaultSelected(SelectionEvent e) {}
- public void widgetSelected(SelectionEvent e) {
- boolean b = checkbox.getSelection();
- if( b ){
- pref.putBoolean( DONT_SHOW_OVERWRITE_WARNING, true);
- }
- }
- });
- return checkbox;
- }
-
- public static boolean shouldShowDialog(){
- IEclipsePreferences pref = new InstanceScope().getNode( JptUiPlugin.PLUGIN_ID);
- boolean ret = ! pref.getBoolean( DONT_SHOW_OVERWRITE_WARNING, true) ;
- return( ret );
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/JptUiEntityGenMessages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/JptUiEntityGenMessages.java
index 4a90b55..fe7f275 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/JptUiEntityGenMessages.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/JptUiEntityGenMessages.java
@@ -12,8 +12,6 @@
private static final String BUNDLE_NAME = "jpt_ui_entity_gen"; //$NON-NLS-1$
private static final Class<?> BUNDLE_CLASS = JptUiEntityGenMessages.class;
public static String GenerateEntitiesWizard_generateEntities;
- public static String GenerateEntitiesWizard_fileWillBeOverwritten;
- public static String WarningDialogTitle;
public static String GenerateEntitiesWizard_doNotShowWarning;
public static String GenerateEntitiesWizard_selectJPAProject;
public static String GenerateEntitiesWizard_selectJPAProject_msg;
@@ -73,6 +71,7 @@
public static String GenerateEntitiesWizard_newAssoc_tablesPage_assocTables;
public static String GenerateEntitiesWizard_newAssoc_tablesPage_table1;
public static String GenerateEntitiesWizard_newAssoc_tablesPage_table2;
+ public static String GenerateEntitiesWizard_newAssoc_tablesPage_intermediateTable;
public static String GenerateEntitiesWizard_newAssoc_colsPage_title;
public static String GenerateEntitiesWizard_newAssoc_colsPage_desc;
public static String GenerateEntitiesWizard_newAssoc_colsPage_label;
@@ -85,8 +84,8 @@
public static String oneToOne;
public static String manyToMany;
//select table dialog
- public static String AnnotateJavaClassWizard_classMappingPage_selectTableDlgTitle;
- public static String AnnotateJavaClassWizard_classMappingPage_selectTableDlgDesc;
+ public static String selectTableDlgTitle;
+ public static String selectTableDlgDesc;
//individual table and column gen properties
public static String GenerateEntitiesWizard_tablesAndColumnsPage_title;
public static String GenerateEntitiesWizard_tablesAndColumnsPage_desc;
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/SelectTableDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/SelectTableDialog.java
index 66311e5..0e071b3 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/SelectTableDialog.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/SelectTableDialog.java
@@ -47,8 +47,8 @@
public void removeListener(ILabelProviderListener listener) {}
});
- this.setTitle( JptUiEntityGenMessages.AnnotateJavaClassWizard_classMappingPage_selectTableDlgTitle );//
- this.setMessage( JptUiEntityGenMessages.AnnotateJavaClassWizard_classMappingPage_selectTableDlgDesc);//
+ this.setTitle( JptUiEntityGenMessages.selectTableDlgTitle );//
+ this.setMessage( JptUiEntityGenMessages.selectTableDlgDesc);//
}
public SelectTableDialog(Shell shell, Schema schema){
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TableGenPanel.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TableGenPanel.java
index c0c4293..9b3d487 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TableGenPanel.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/gen/TableGenPanel.java
@@ -49,6 +49,7 @@
private Button entityAccessField;
private Button entityAccessProperty;
+ private Button associationFetchDefault;
private Button associationFetchEager;
private Button associationFetchLazy;
@@ -161,7 +162,10 @@
Composite parent = new Composite( composite, SWT.NONE);
parent.setLayout(new RowLayout());
SWTUtil.fillColumns( parent , 3);
-
+ associationFetchDefault = new Button( parent, SWT.RADIO );
+ associationFetchDefault.setText( "Default");
+ associationFetchDefault.setData( ORMGenTable.DEFAULT_FETCH );
+
associationFetchEager = new Button( parent, SWT.RADIO );
associationFetchEager.setText( "&Eager");
associationFetchEager.setData( ORMGenTable.EAGER_FETCH );
@@ -171,6 +175,7 @@
associationFetchLazy.setData( ORMGenTable.LAZY_FETCH );
AssociationFetchListener associationFetchListener = new AssociationFetchListener();
+ associationFetchDefault.addSelectionListener( associationFetchListener );
associationFetchLazy.addSelectionListener( associationFetchListener );
associationFetchEager.addSelectionListener( associationFetchListener );
@@ -243,7 +248,9 @@
if(associationFetchLazy!=null && associationFetchEager != null ){
String defaultFetch = mTable.getDefaultFetch();
- if( ORMGenTable.EAGER_FETCH.equals( defaultFetch ) )
+ if( ORMGenTable.DEFAULT_FETCH.equals( defaultFetch ) )
+ associationFetchDefault.setSelection(true);
+ else if( ORMGenTable.EAGER_FETCH.equals( defaultFetch ) )
associationFetchEager.setSelection(true);
else
associationFetchLazy.setSelection(true);