[jboss-svn-commits] JBL Code SVN: r14156 - in labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin: src/main/java/org/drools/eclipse/action and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 10 20:05:31 EDT 2007
Author: KrisVerlaenen
Date: 2007-08-10 20:05:31 -0400 (Fri, 10 Aug 2007)
New Revision: 14156
Modified:
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/plugin.xml
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/action/ConvertToDroolsProjectAction.java
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectWizard.java
Log:
JBRULES-322: Allow the conversion of normal Java projects to Drools projects
- Made a better solution, now allows you to right-click any (Java)Project and
select convert action
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/plugin.xml
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/plugin.xml 2007-08-10 20:12:51 UTC (rev 14155)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/plugin.xml 2007-08-11 00:05:31 UTC (rev 14156)
@@ -315,10 +315,10 @@
</extension>
<extension point = "org.eclipse.ui.popupMenus">
- <objectContribution
- id="org.drools.eclipse.action.ConvertToDroolsProject"
- objectClass="org.eclipse.core.resources.IFile"
- nameFilter=".project">
+ <objectContribution
+ objectClass="org.eclipse.core.resources.IProject"
+ id="org.drools.eclipse.action.ConvertToDroolsProject1">
+ <filter name="nature" value="org.eclipse.jdt.core.javanature"/>
<action id="org.drools.eclipse.action.ConvertToDroolsProjectAction"
label="Convert to Drools Project"
icon="icons/drools.gif"
@@ -327,7 +327,19 @@
definitionId="org.drools.eclipse.action.ConvertToDroolsProjectAction"
enablesFor="1">
</action>
- </objectContribution>
+ </objectContribution>
+ <objectContribution
+ objectClass="org.eclipse.jdt.core.IJavaProject"
+ id="org.drools.eclipse.action.ConvertToDroolsProject2">
+ <action id="org.drools.eclipse.action.ConvertToDroolsProjectAction"
+ label="Convert to Drools Project"
+ icon="icons/drools.gif"
+ menubarPath="additions"
+ class="org.drools.eclipse.action.ConvertToDroolsProjectAction"
+ definitionId="org.drools.eclipse.action.ConvertToDroolsProjectAction"
+ enablesFor="1">
+ </action>
+ </objectContribution>
</extension>
<extension
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/action/ConvertToDroolsProjectAction.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/action/ConvertToDroolsProjectAction.java 2007-08-10 20:12:51 UTC (rev 14155)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/action/ConvertToDroolsProjectAction.java 2007-08-11 00:05:31 UTC (rev 14156)
@@ -3,14 +3,15 @@
import org.drools.eclipse.DroolsEclipsePlugin;
import org.drools.eclipse.builder.DroolsBuilder;
import org.drools.eclipse.wizard.project.NewDroolsProjectWizard;
-import org.drools.util.ArrayUtils;
import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -19,17 +20,16 @@
public class ConvertToDroolsProjectAction implements IObjectActionDelegate {
- private IFile file;
+ private IJavaProject project;
public void setActivePart(IAction action, IWorkbenchPart targetPart) {
}
public void run(IAction action) {
- IJavaProject javaProject = JavaCore.create(file.getProject());
- if (javaProject != null && javaProject.exists()) {
+ if (project != null && project.exists()) {
try {
- addDroolsBuilder(javaProject, null);
- NewDroolsProjectWizard.addDroolsLibraries(javaProject, null);
+ addDroolsBuilder(project, null);
+ addDroolsLibraries(project, null);
} catch (Throwable t) {
DroolsEclipsePlugin.log(t);
}
@@ -42,8 +42,13 @@
IStructuredSelection structured = (IStructuredSelection) selection;
if (structured.size() == 1) {
Object element = structured.getFirstElement();
- if (element instanceof IFile) {
- file = (IFile) element;
+ if (element instanceof IJavaProject) {
+ project = (IJavaProject) element;
+ } else if (element instanceof IProject) {
+ IJavaProject javaProject = JavaCore.create((IProject) element);
+ if (javaProject != null && javaProject.exists()) {
+ project = javaProject;
+ }
}
}
}
@@ -51,18 +56,34 @@
public static void addDroolsBuilder(IJavaProject project, IProgressMonitor monitor) throws CoreException {
IProjectDescription description = project.getProject().getDescription();
+ // check whether Drools builder is already part of the project
ICommand[] commands = description.getBuildSpec();
- if (!ArrayUtils.contains(commands, DroolsBuilder.BUILDER_ID)) {
- ICommand[] newCommands = new ICommand[commands.length + 1];
- System.arraycopy(commands, 0, newCommands, 0, commands.length);
-
- ICommand droolsCommand = description.newCommand();
- droolsCommand.setBuilderName(DroolsBuilder.BUILDER_ID);
- newCommands[commands.length] = droolsCommand;
-
- description.setBuildSpec(newCommands);
- project.getProject().setDescription(description, monitor);
+ for (int i = 0; i < commands.length; i++) {
+ if (DroolsBuilder.BUILDER_ID.equals(commands[i].getBuilderName())) {
+ return;
+ }
}
+ // add Drools builder
+ ICommand[] newCommands = new ICommand[commands.length + 1];
+ System.arraycopy(commands, 0, newCommands, 0, commands.length);
+
+ ICommand droolsCommand = description.newCommand();
+ droolsCommand.setBuilderName(DroolsBuilder.BUILDER_ID);
+ newCommands[commands.length] = droolsCommand;
+
+ description.setBuildSpec(newCommands);
+ project.getProject().setDescription(description, monitor);
}
+
+ public static void addDroolsLibraries(IJavaProject project, IProgressMonitor monitor) throws JavaModelException {
+ IClasspathEntry[] classpathEntries = project.getRawClasspath();
+ for (int i = 0; i < classpathEntries.length; i++) {
+ System.out.println(classpathEntries[i].getPath().toString());
+ if (NewDroolsProjectWizard.DROOLS_CLASSPATH_CONTAINER_PATH.equals(classpathEntries[i].getPath().toString())) {
+ return;
+ }
+ }
+ NewDroolsProjectWizard.addDroolsLibraries(project, null);
+ }
}
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectWizard.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectWizard.java 2007-08-10 20:12:51 UTC (rev 14155)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/wizard/project/NewDroolsProjectWizard.java 2007-08-11 00:05:31 UTC (rev 14156)
@@ -49,7 +49,8 @@
*/
public class NewDroolsProjectWizard extends BasicNewResourceWizard {
- private static final String JBOSS_RULES_NAME = "Drools";
+ public static final String DROOLS_CLASSPATH_CONTAINER_PATH = "DROOLS/Drools";
+
private IProject newProject;
private WizardNewProjectCreationPage mainPage;
private NewDroolsProjectWizardPage extraPage;
@@ -227,7 +228,7 @@
}
private static IPath getClassPathContainerPath() {
- return new Path("DROOLS/" + getDroolsNamePref());
+ return new Path(DROOLS_CLASSPATH_CONTAINER_PATH);
}
private static void createDroolsLibraryContainer(IJavaProject project, IProgressMonitor monitor)
@@ -238,10 +239,6 @@
project, getClassPathContainerPath()) }, monitor);
}
- private static String getDroolsNamePref() {
- return JBOSS_RULES_NAME;
- }
-
public static void addDroolsLibraries(IJavaProject project, IProgressMonitor monitor)
throws JavaModelException {
createDroolsLibraryContainer(project, monitor);
More information about the jboss-svn-commits
mailing list