Index: j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEActionProvider.java =================================================================== RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEActionProvider.java,v --- j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEActionProvider.java 7 Apr 2005 11:16:36 -0000 1.42 +++ j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEActionProvider.java 20 Jun 2005 10:46:59 -0000 @@ -80,6 +80,7 @@ COMMAND_DEBUG_TEST_SINGLE, JavaProjectConstants.COMMAND_DEBUG_FIX, COMMAND_DEBUG_STEP_INTO, + COMMAND_DELETE, }; // Project @@ -124,6 +125,11 @@ } public void invokeAction( String command, Lookup context ) throws IllegalArgumentException { + if (COMMAND_DELETE.equals(command)) { + project.getAntProjectHelper().performDefaultDeleteOperation(); + return ; + } + Properties p = new Properties(); String[] targetNames; Index: j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProject.java =================================================================== RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProject.java,v --- j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProject.java 23 Mar 2005 16:17:34 -0000 1.52 +++ j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProject.java 20 Jun 2005 10:46:59 -0000 @@ -122,6 +122,10 @@ public Lookup getLookup() { return lookup; } + + public AntProjectHelper getAntProjectHelper() { + return helper; + } private Lookup createLookup(AuxiliaryConfiguration aux) { SubprojectProvider spp = refHelper.createSubprojectProvider(); @@ -148,6 +152,7 @@ new RecommendedTemplatesImpl (this.updateHelper), new J2SEProjectClassPathExtender(this, this.updateHelper, eval,refHelper), this, // never cast an externally obtained Project to J2SEProject - use lookup instead + new J2SEProjectOperation(this), }); } Index: j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProjectOperation.java =================================================================== RCS file: j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProjectOperation.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProjectOperation.java 20 Jun 2005 10:46:59 -0000 @@ -0,0 +1,105 @@ +/* + * Sun Public License Notice + * + * The contents of this file are subject to the Sun Public License + * Version 1.0 (the "License"). You may not use this file except in + * compliance with the License. A copy of the License is available at + * http://www.sun.com/ + * + * The Original Code is NetBeans. The Initial Developer of the Original + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2005 Sun + * Microsystems, Inc. All Rights Reserved. + */ + +package org.netbeans.modules.java.j2seproject; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; +import org.apache.tools.ant.module.api.support.ActionUtils; +import org.netbeans.spi.project.ActionProvider; +import org.netbeans.spi.project.ProjectOperationsImplementation.DeleteOperationImplementation; +import org.netbeans.spi.project.support.ant.GeneratedFilesHelper; +import org.openide.ErrorManager; +import org.openide.filesystems.FileObject; +import org.openide.filesystems.FileUtil; +import org.openide.util.Lookup; +import org.openide.util.lookup.Lookups; + +/** + * + * @author Jan Lahoda + */ +public class J2SEProjectOperation implements DeleteOperationImplementation { + + private J2SEProject project; + + public J2SEProjectOperation(J2SEProject project) { + this.project = project; + } + + private static void addFile(FileObject projectDirectory, String fileName, List/**/ result) { + FileObject file = projectDirectory.getFileObject(fileName); + + if (file != null) { + result.add(file); + } + } + + public List/**/ getMetadataFiles() { + FileObject projectDirectory = project.getProjectDirectory(); + List/**/ files = new ArrayList(); + + addFile(projectDirectory, "nbproject", files); // NOI18N + addFile(projectDirectory, "build.xml", files); // NOI18N + + return files; + } + + public List/**/ getDataFiles() { + FileObject projectDirectory = project.getProjectDirectory(); + List/**/ files = new ArrayList(); + + SourceRoots src = project.getSourceRoots(); + FileObject[] srcRoots = src.getRoots(); + + for (int cntr = 0; cntr < srcRoots.length; cntr++) { + if (FileUtil.isParentOf(projectDirectory, srcRoots[cntr])) + files.add(srcRoots[cntr]); + } + + SourceRoots test = project.getTestSourceRoots(); + FileObject[] testRoots = test.getRoots(); + + for (int cntr = 0; cntr < testRoots.length; cntr++) { + if (FileUtil.isParentOf(projectDirectory, testRoots[cntr])) + files.add(testRoots[cntr]); + } + + addFile(projectDirectory, "manifest.mf", files); // NOI18N + + return files; + } + + public void performClean() throws IOException { + J2SEActionProvider ap = (J2SEActionProvider) project.getLookup().lookup(J2SEActionProvider.class); + + assert ap != null; + + Lookup context = Lookups.fixed(new Object[0]); + Properties p = new Properties(); + String[] targetNames = ap.getTargetNames(ActionProvider.COMMAND_CLEAN, context, p); + FileObject buildXML = project.getProjectDirectory().getFileObject(GeneratedFilesHelper.BUILD_XML_PATH); + + assert targetNames != null; + assert targetNames.length > 0; + + ActionUtils.runTarget(buildXML, targetNames, p).waitFinished(); + } + + public void notifyDeleted() throws IOException { + project.getAntProjectHelper().notifyDeleted(); + } + +} Index: j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java =================================================================== RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java,v --- j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java 2 Jun 2005 08:38:59 -0000 1.54 +++ j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java 20 Jun 2005 10:47:00 -0000 @@ -495,6 +495,8 @@ actions.add(CommonProjectActions.openSubprojectsAction()); actions.add(CommonProjectActions.closeProjectAction()); actions.add(null); + actions.add(CommonProjectActions.deleteProjectAction()); + actions.add(null); actions.add(SystemAction.get( org.openide.actions.FindAction.class )); /* null,