diff --git a/org.flowable.designer.util/src/main/java/org/activiti/designer/util/extension/ExtensionUtil.java b/org.flowable.designer.util/src/main/java/org/activiti/designer/util/extension/ExtensionUtil.java index 0e8a286..e9390e2 100644 --- a/org.flowable.designer.util/src/main/java/org/activiti/designer/util/extension/ExtensionUtil.java +++ b/org.flowable.designer.util/src/main/java/org/activiti/designer/util/extension/ExtensionUtil.java @@ -41,6 +41,7 @@ import org.activiti.designer.util.eclipse.ExtensionConstants; import org.apache.commons.lang.StringUtils; import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectNature; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; @@ -99,18 +100,25 @@ public static void addProvidedCustomUserTaskDescriptors(List getDisabledPaletteEntries(IProject project) { - - Set result = new HashSet(); - + private static IJavaProject getJavaProject(IProject project) { // Determine the project IJavaProject javaProject = null; try { - javaProject = (IJavaProject) project.getNature(JavaCore.NATURE_ID); + IProjectNature nature = project.getNature(JavaCore.NATURE_ID); + javaProject = nature instanceof IJavaProject + ? (IJavaProject) nature + : JavaCore.create(project); } catch (CoreException e) { // skip, not a Java project } + return javaProject; + } + + public static final Set getDisabledPaletteEntries(IProject project) { + + Set result = new HashSet(); + IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { try { @@ -442,14 +450,7 @@ public static List getCustomServiceTasks(final IProject proje List result = new ArrayList(); - // Determine the project - IJavaProject javaProject = null; - try { - javaProject = (IJavaProject) project.getNature(JavaCore.NATURE_ID); - } catch (CoreException e) { - // skip, not a Java project - } - + IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { // get the contexts first @@ -477,14 +478,7 @@ public static List getCustomUserTasks(final IProject project) { List result = new ArrayList(); - // Determine the project - IJavaProject javaProject = null; - try { - javaProject = (IJavaProject) project.getNature(JavaCore.NATURE_ID); - } catch (CoreException e) { - // skip, not a Java project - } - + IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { // get the contexts first @@ -515,13 +509,7 @@ public static List getCustomServiceTaskContexts(final addToCustomServiceTasks(result); - IJavaProject javaProject = null; - try { - javaProject = (IJavaProject) project.getNature(JavaCore.NATURE_ID); - } catch (CoreException e) { - // skip, not a Java project - } - + IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { try { @@ -654,13 +642,7 @@ public static List getCustomUserTaskContexts(final IProje addToCustomUserTasks(result); - IJavaProject javaProject = null; - try { - javaProject = (IJavaProject) project.getNature(JavaCore.NATURE_ID); - } catch (CoreException e) { - // skip, not a Java project - } - + IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { try {