From fa5a694d16eb26af165a0cc7194b4405200cd3bc Mon Sep 17 00:00:00 2001 From: pfullbright Date: Thu, 6 Sep 2007 18:04:41 +0000 Subject: completed fix for bug 192477 --- .../eclipse/jpt/core/internal/JpaModelManager.java | 64 ++++++++++------------ 1 file changed, 29 insertions(+), 35 deletions(-) (limited to 'jpa/plugins/org.eclipse.jpt.core') 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()); } } -- cgit v1.2.3