Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2007-09-06 18:04:41 +0000
committerpfullbright2007-09-06 18:04:41 +0000
commitfa5a694d16eb26af165a0cc7194b4405200cd3bc (patch)
treed1fce0faea3aaa38860b6e82a83b79a3adffc856 /jpa/plugins/org.eclipse.jpt.core
parent2f37b65d8916cef434ae3877ab65da74f2241795 (diff)
downloadwebtools.dali-fa5a694d16eb26af165a0cc7194b4405200cd3bc.tar.gz
webtools.dali-fa5a694d16eb26af165a0cc7194b4405200cd3bc.tar.xz
webtools.dali-fa5a694d16eb26af165a0cc7194b4405200cd3bc.zip
completed fix for bug 192477
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModelManager.java64
1 files changed, 29 insertions, 35 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModelManager.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModelManager.java
index 2de2b44c77..26a4f6b519 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModelManager.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModelManager.java
@@ -190,6 +190,33 @@ public class JpaModelManager
}
}
+ /*
+ * determine whether project should be created, then create it if necessary
+ */
+ private synchronized void processProject(IProject project) {
+ JpaProject jpaProject = (JpaProject) model.getJpaProject(project);
+ boolean jpaFacetExists = false;
+ try {
+ jpaFacetExists = FacetedProjectFramework.hasProjectFacet(project, JptCorePlugin.FACET_ID);
+ }
+ catch (CoreException ce) {
+ // nothing to do, assume facet doesn't exist
+ JptCorePlugin.log(ce);
+ }
+
+ if (jpaProject == null && jpaFacetExists) {
+ try {
+ JpaModelManager.instance().createFilledJpaProject(project);
+ }
+ catch (CoreException ce) {
+ JptCorePlugin.log(ce);
+ }
+ }
+ else if (jpaProject != null && ! jpaFacetExists) {
+ jpaProject.dispose();
+ }
+ }
+
/**
* INTERNAL ONLY
* Create an IJpaProject without files filled in
@@ -400,8 +427,6 @@ public class JpaModelManager
// - if the project is closed, it has already lost its jpa facet
IProject project = (IProject) resource;
- // could be problems here ...
- JpaProject jpaProject = (JpaProject) model.getJpaProject(project);
switch (delta.getKind()) {
case IResourceDelta.REMOVED :
// we should have already handled this in the PRE_DELETE event
@@ -414,16 +439,7 @@ public class JpaModelManager
case IResourceDelta.CHANGED :
if ((delta.getFlags() & IResourceDelta.OPEN) != 0) {
if (project.isOpen()) {
- // project has been opened, but don't create it if it's already there
- // (which can happen on project creation)
- if (jpaProject == null) {
- try {
- JpaModelManager.instance().createFilledJpaProject(project);
- }
- catch (CoreException ce) {
- JptCorePlugin.log(ce);
- }
- }
+ JpaModelManager.instance().processProject(project);
}
}
break;
@@ -524,29 +540,7 @@ public class JpaModelManager
}
protected void handleEvent(IFacetedProjectEvent event) {
- IProject project = event.getProject().getProject();
- JpaProject jpaProject = (JpaProject) model.getJpaProject(project);
- boolean jpaFacetExists = false;
- try {
- jpaFacetExists = FacetedProjectFramework.hasProjectFacet(project, JptCorePlugin.FACET_ID);
- }
- catch (CoreException ce) {
- // nothing to do, assume facet doesn't exist
- JptCorePlugin.log(ce);
- }
-
- if (jpaFacetExists && jpaProject == null) {
- try {
- JpaModelManager.instance().createFilledJpaProject(project);
- }
- catch (CoreException ce) {
- // nothing to do, nothing we *can* do
- JptCorePlugin.log(ce);
- }
- }
- else if (jpaProject != null && ! jpaFacetExists) {
- jpaProject.dispose();
- }
+ JpaModelManager.instance().processProject(event.getProject().getProject());
}
}

Back to the top