diff options
author | kmoore | 2007-08-29 18:57:46 +0000 |
---|---|---|
committer | kmoore | 2007-08-29 18:57:46 +0000 |
commit | 6fe4964c615054b93afa07d003d78043179ffc71 (patch) | |
tree | d6971631d1ca1abefaf764bf5f1048f1d705c7fb | |
parent | 2517db3019ebd86c2c89b4ef1357a509ef96f7cb (diff) | |
download | webtools.dali-6fe4964c615054b93afa07d003d78043179ffc71.tar.gz webtools.dali-6fe4964c615054b93afa07d003d78043179ffc71.tar.xz webtools.dali-6fe4964c615054b93afa07d003d78043179ffc71.zip |
181816 - progress monitor support for entity generation
6 files changed, 46 insertions, 29 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/EntityGenerator.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/EntityGenerator.java index cdf3ee1c00..f1e6b92298 100644 --- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/EntityGenerator.java +++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/EntityGenerator.java @@ -21,6 +21,7 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.jdt.core.IJavaModelStatusConstants; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.JavaModelException; @@ -79,11 +80,16 @@ public class EntityGenerator { // ********** code gen ********** private void generateEntity() { + int totalWork = pkClassIsGenerated() ? 40 : 20; try { + this.monitor.beginTask("", totalWork); this.generateEntity_(); } catch (JavaModelException ex) { throw new RuntimeException(ex); } + finally { + this.monitor.done(); + } } private void generateEntity_() throws JavaModelException { @@ -92,15 +98,16 @@ public class EntityGenerator { if (this.pkClassIsGenerated()) { this.generateSourceFile(this.pkClassName, this.pkName() + ".java", this.buildSource(this.buildPKBodySource())); } + } private void generateSourceFile(String className, String fileName, String source) throws JavaModelException { try { - this.packageFragment.createCompilationUnit(fileName, source, false, this.monitor); + this.packageFragment.createCompilationUnit(fileName, source, false, new SubProgressMonitor(this.monitor, 10)); } catch (JavaModelException ex) { if (ex.getJavaModelStatus().getCode() == IJavaModelStatusConstants.NAME_COLLISION) { if (this.overwriteConfirmer.overwrite(className)) { - this.packageFragment.createCompilationUnit(fileName, source, true, this.monitor); + this.packageFragment.createCompilationUnit(fileName, source, true, new SubProgressMonitor(this.monitor, 0)); } } else { throw ex; @@ -117,6 +124,7 @@ public class EntityGenerator { PrintWriter pw = new PrintWriter(sw); this.printPackageAndImportsOn(pw, bodySource); pw.print(bodySource.source()); + this.monitor.worked(10); return sw.toString(); } diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenScope.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenScope.java index ee9db7fa8d..f5b07dcf64 100644 --- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenScope.java +++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenScope.java @@ -41,14 +41,20 @@ class GenScope { private void initialize(Collection<Table> tables, EntityGenerator.Config entityConfig, IProgressMonitor monitor) { this.progressMonitor = monitor; - this.buildGenTables(tables, entityConfig); - checkCanceled(); - this.configureManyToManyRelations(); - checkCanceled(); - this.configureManyToOneRelations(); - checkCanceled(); - this.configureFieldNames(); - checkCanceled(); + try { + this.progressMonitor.beginTask("", 1000); + this.buildGenTables(tables, entityConfig); + checkCanceled(); + this.configureManyToManyRelations(); + checkCanceled(); + this.configureManyToOneRelations(); + checkCanceled(); + this.configureFieldNames(); + checkCanceled(); + } + finally { + this.progressMonitor.done(); + } } private void buildGenTables(Collection<Table> tables, EntityGenerator.Config entityConfig) { @@ -57,7 +63,7 @@ class GenScope { Set<String> entityNames = new HashSet<String>(size); for (Table table : tables) { this.buildGenTable(table, entityConfig, entityNames); - this.progressMonitor.worked(40/size); + this.progressMonitor.worked(50/size); } } @@ -75,7 +81,7 @@ class GenScope { for (Iterator<GenTable> stream = this.tables(); stream.hasNext(); ) { checkCanceled(); stream.next().configureManyToManyRelations(); - this.progressMonitor.worked(730/tablesSize); + this.progressMonitor.worked(750/tablesSize); } // revert any "join" table that is referenced by another table back to an "entity" table Set<GenTable> referencedTables = this.buildReferencedTables(); @@ -85,7 +91,7 @@ class GenScope { if (referencedTables.contains(joinGenTable)) { joinGenTable.clearJoinTableRelation(); } - this.progressMonitor.worked(40/tablesSize); + this.progressMonitor.worked(50/tablesSize); } } @@ -167,7 +173,7 @@ class GenScope { Set<GenTable> referencedTables = new HashSet<GenTable>(this.genTables.size()); for (Iterator<GenTable> stream = this.tables(); stream.hasNext(); ) { stream.next().addReferencedTablesTo(referencedTables); - this.progressMonitor.worked(20/size); + this.progressMonitor.worked(50/size); } return referencedTables; } diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/PackageGenerator.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/PackageGenerator.java index bce0da3063..eb74550ca4 100644 --- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/PackageGenerator.java +++ b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/PackageGenerator.java @@ -13,6 +13,7 @@ import java.util.Collection; import java.util.Iterator; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jpt.db.internal.Table; import org.eclipse.jpt.gen.internal.EntityGenerator.OverwriteConfirmer; @@ -28,14 +29,19 @@ public class PackageGenerator { private final OverwriteConfirmer overwriteConfirmer; private final IProgressMonitor monitor; - // ********** public API ********** public static void generateEntities(Config config, EntityGenerator.Config entityConfig, Collection<Table> tables, OverwriteConfirmer overwriteConfirmer, IProgressMonitor monitor) { if ((config == null) || (entityConfig == null) || (tables == null)) { throw new NullPointerException(); } - new PackageGenerator(config, entityConfig, tables, overwriteConfirmer, monitor).generateEntities(); + try { + monitor.beginTask("", 1000); + new PackageGenerator(config, entityConfig, tables, overwriteConfirmer, monitor).generateEntities(); + } + finally { + monitor.done(); + } } @@ -45,7 +51,7 @@ public class PackageGenerator { super(); this.config = config; this.entityConfig = entityConfig; - this.scope = new GenScope(tables, entityConfig, monitor); + this.scope = new GenScope(tables, entityConfig, new SubProgressMonitor(monitor, 800)); this.overwriteConfirmer = overwriteConfirmer; this.monitor = monitor; } @@ -54,11 +60,11 @@ public class PackageGenerator { // ********** generation ********** private void generateEntities() { - int size = CollectionTools.size(this.scope.entityTables()); + int size = this.scope.numEntityTables(); + int ticks = 200/size; for (Iterator<GenTable> stream = this.scope.entityTables(); stream.hasNext(); ) { checkCanceled(); - this.buildEntity(stream.next()); - this.monitor.worked(50/size); + this.buildEntity(stream.next(), new SubProgressMonitor(this.monitor, ticks)); } } @@ -69,8 +75,8 @@ public class PackageGenerator { } - private void buildEntity(GenTable genTable) { - EntityGenerator.generateEntity(this.entityConfig, this.config.getPackageFragment(), genTable, overwriteConfirmer, this.monitor); + private void buildEntity(GenTable genTable, IProgressMonitor monitor) { + EntityGenerator.generateEntity(this.entityConfig, this.config.getPackageFragment(), genTable, overwriteConfirmer, monitor); } diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties index 1ff880ba95..48b8ad8d99 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties +++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties @@ -77,3 +77,5 @@ PersistentTypePage_mapAs=Map As: OverwriteConfirmerDialog_title=Overwrite Existing Class OverwriteConfirmerDialog_text=Overwrite source code for the class ''{0}''? + +EntitiesGenerator_jobName=Generating Entities
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java index cdc142e820..ff6bc50c09 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java @@ -144,6 +144,7 @@ public class JptUiMessages extends NLS public static String OverwriteConfirmerDialog_text; + public static String EntitiesGenerator_jobName; private JptUiMessages() { throw new UnsupportedOperationException(); diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/EntitiesGenerator.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/EntitiesGenerator.java index ee8cbe0ed2..300861cfd0 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/EntitiesGenerator.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/EntitiesGenerator.java @@ -9,7 +9,6 @@ *******************************************************************************/ package org.eclipse.jpt.ui.internal.generic; -import java.lang.reflect.InvocationTargetException; import java.util.Collection; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.WorkspaceJob; @@ -18,10 +17,8 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.window.Window; import org.eclipse.jface.wizard.WizardDialog; @@ -41,9 +38,6 @@ 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.PlatformUI; -import org.eclipse.ui.actions.WorkspaceModifyOperation; -import org.eclipse.ui.progress.IProgressService; /** * EntitiesGenerator @@ -116,7 +110,7 @@ public class EntitiesGenerator IJpaProject project, EntityGenerator.OverwriteConfirmer overwriteConfirmer ) { - super("Generating Entities"); + super(JptUiMessages.EntitiesGenerator_jobName); this.packageConfig = packageConfig; this.entityConfig = entityConfig; this.selectedTables = selectedTables; |