[jboss-svn-commits] JBL Code SVN: r5960 - in labs/jbossrules/trunk/drools-ide: . src/main/java/org/drools/ide/action src/main/java/org/drools/ide/wizard/project
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 22 18:21:44 EDT 2006
Author: KrisVerlaenen
Date: 2006-08-22 18:21:41 -0400 (Tue, 22 Aug 2006)
New Revision: 5960
Added:
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/action/ConvertToDroolsProjectAction.java
Modified:
labs/jbossrules/trunk/drools-ide/plugin.xml
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/wizard/project/NewDroolsProjectWizard.java
Log:
JBRULES-322: Allow the conversion of normal Java projects to Drools projects
- by right-clicking the .project file, you can select the "Convert to Drools Project"
which adds the drools builder (for validation of drl files) and the drools library
Modified: labs/jbossrules/trunk/drools-ide/plugin.xml
===================================================================
--- labs/jbossrules/trunk/drools-ide/plugin.xml 2006-08-22 22:21:38 UTC (rev 5959)
+++ labs/jbossrules/trunk/drools-ide/plugin.xml 2006-08-22 22:21:41 UTC (rev 5960)
@@ -244,4 +244,20 @@
-->
+ <extension point = "org.eclipse.ui.popupMenus">
+ <objectContribution
+ id="org.drools.ide.action.ConvertToDroolsProject"
+ objectClass="org.eclipse.core.resources.IFile"
+ nameFilter=".project">
+ <action id="org.drools.ide.action.ConvertToDroolsProjectAction"
+ label="Convert to JBoss Rules Project"
+ icon="icons/drools.gif"
+ menubarPath="additions"
+ class="org.drools.ide.action.ConvertToDroolsProjectAction"
+ definitionId="org.drools.ide.action.ConvertToDroolsProjectAction"
+ enablesFor="1">
+ </action>
+ </objectContribution>
+ </extension>
+
</plugin>
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/action/ConvertToDroolsProjectAction.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/action/ConvertToDroolsProjectAction.java 2006-08-22 22:21:38 UTC (rev 5959)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/action/ConvertToDroolsProjectAction.java 2006-08-22 22:21:41 UTC (rev 5960)
@@ -0,0 +1,67 @@
+package org.drools.ide.action;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.drools.ide.DroolsIDEPlugin;
+import org.drools.ide.builder.DroolsBuilder;
+import org.drools.ide.wizard.project.NewDroolsProjectWizard;
+import org.eclipse.core.resources.ICommand;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+public class ConvertToDroolsProjectAction implements IObjectActionDelegate {
+
+ private IFile file;
+
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ }
+
+ public void run(IAction action) {
+ IJavaProject javaProject = JavaCore.create(file.getProject());
+ if (javaProject != null && javaProject.exists()) {
+ try {
+ addDroolsBuilder(javaProject, null);
+ NewDroolsProjectWizard.addDroolsLibraries(javaProject, null);
+ } catch (Throwable t) {
+ DroolsIDEPlugin.log(t);
+ }
+ }
+
+ }
+
+ public void selectionChanged(IAction action, ISelection selection) {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structured = (IStructuredSelection) selection;
+ if (structured.size() == 1) {
+ Object element = structured.getFirstElement();
+ if (element instanceof IFile) {
+ file = (IFile) element;
+ }
+ }
+ }
+ }
+
+ public static void addDroolsBuilder(IJavaProject project, IProgressMonitor monitor) throws CoreException {
+ IProjectDescription description = project.getProject().getDescription();
+ 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);
+ }
+ }
+}
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/wizard/project/NewDroolsProjectWizard.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/wizard/project/NewDroolsProjectWizard.java 2006-08-22 22:21:38 UTC (rev 5959)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/wizard/project/NewDroolsProjectWizard.java 2006-08-22 22:21:41 UTC (rev 5960)
@@ -226,11 +226,11 @@
.toArray(new IClasspathEntry[list.size()]), monitor);
}
- private IPath getClassPathContainerPath() {
+ private static IPath getClassPathContainerPath() {
return new Path("DROOLS/" + getDroolsNamePref());
}
- private void createDroolsLibraryContainer(IJavaProject project, IProgressMonitor monitor)
+ private static void createDroolsLibraryContainer(IJavaProject project, IProgressMonitor monitor)
throws JavaModelException {
JavaCore.setClasspathContainer(getClassPathContainerPath(),
new IJavaProject[] { project },
@@ -238,11 +238,11 @@
project, getClassPathContainerPath()) }, monitor);
}
- private String getDroolsNamePref() {
+ private static String getDroolsNamePref() {
return JBOSS_RULES_NAME;
}
- private void addDroolsLibraries(IJavaProject project, IProgressMonitor monitor)
+ public static void addDroolsLibraries(IJavaProject project, IProgressMonitor monitor)
throws JavaModelException {
createDroolsLibraryContainer(project, monitor);
List list = new ArrayList();
More information about the jboss-svn-commits
mailing list