Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2007-08-29 18:57:46 +0000
committerkmoore2007-08-29 18:57:46 +0000
commit6fe4964c615054b93afa07d003d78043179ffc71 (patch)
treed6971631d1ca1abefaf764bf5f1048f1d705c7fb
parent2517db3019ebd86c2c89b4ef1357a509ef96f7cb (diff)
downloadwebtools.dali-6fe4964c615054b93afa07d003d78043179ffc71.tar.gz
webtools.dali-6fe4964c615054b93afa07d003d78043179ffc71.tar.xz
webtools.dali-6fe4964c615054b93afa07d003d78043179ffc71.zip
181816 - progress monitor support for entity generation
-rw-r--r--jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/EntityGenerator.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenScope.java30
-rw-r--r--jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/PackageGenerator.java22
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties2
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java1
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/EntitiesGenerator.java8
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;

Back to the top