Index: apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/apichanges.xml,v retrieving revision 1.12 diff -u -r1.12 apichanges.xml --- apichanges.xml 1 Jun 2007 14:27:29 -0000 1.12 +++ apichanges.xml 7 Jun 2007 15:09:46 -0000 @@ -23,6 +23,22 @@ Explorer API + + + + Added an interface and a registration slot + for explorer delete action interceptors. + + + + + Added an interface ExtendedDelete that can be registered to + handle deletion of selected nodes instead of the default implementation. + + + + + Added setters to show/hide the description area and Index: manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/manifest.mf,v retrieving revision 1.11 diff -u -r1.11 manifest.mf --- manifest.mf 1 Jun 2007 14:27:29 -0000 1.11 +++ manifest.mf 7 Jun 2007 15:09:46 -0000 @@ -1,6 +1,6 @@ Manifest-Version: 1.0 OpenIDE-Module: org.openide.explorer -OpenIDE-Module-Specification-Version: 6.9 +OpenIDE-Module-Specification-Version: 6.10 OpenIDE-Module-Implementation-Version: 1 OpenIDE-Module-Localizing-Bundle: org/openide/explorer/Bundle.properties Index: src/org/openide/explorer/ExplorerActionsImpl.java =================================================================== RCS file: /shared/data/ccvs/repository/openide/explorer/src/org/openide/explorer/ExplorerActionsImpl.java,v retrieving revision 1.10 diff -u -r1.10 ExplorerActionsImpl.java --- src/org/openide/explorer/ExplorerActionsImpl.java 28 Oct 2006 21:57:41 -0000 1.10 +++ src/org/openide/explorer/ExplorerActionsImpl.java 7 Jun 2007 15:09:47 -0000 @@ -538,6 +538,11 @@ return; } + for (ExtendedDelete del : Lookup.getDefault().lookupAll(ExtendedDelete.class)) { + if (del.delete(sel)) + return; + } + // perform action if confirmed if (!confirmDelete || doConfirm(sel)) { // clear selected nodes Index: src/org/openide/explorer/ExtendedDelete.java =================================================================== RCS file: src/org/openide/explorer/ExtendedDelete.java diff -N src/org/openide/explorer/ExtendedDelete.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/openide/explorer/ExtendedDelete.java 7 Jun 2007 15:09:47 -0000 @@ -0,0 +1,44 @@ +/* + * The contents of this file are subject to the terms of the Common Development + * and Distribution License (the License). You may not use this file except in + * compliance with the License. + * + * You can obtain a copy of the License at http://www.netbeans.org/cddl.html + * or http://www.netbeans.org/cddl.txt. + * + * When distributing Covered Code, include this CDDL Header Notice in each file + * and include the License file at http://www.netbeans.org/cddl.txt. + * If applicable, add the following below the CDDL Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * The Original Software is NetBeans. The Initial Developer of the Original + * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun + * Microsystems, Inc. All Rights Reserved. + */ + +package org.openide.explorer; + +import org.openide.nodes.Node; + +/** + * Register implementation of this interface into META-INF services + * lookup if you want to intercept Node deletion in explorer. + * If more instances are registered, they are invoked in order + * until one of them claim to have performed the action + * by returning true. + * + * @author Jan Becicka + * @since 6.10 + */ +public interface ExtendedDelete { + + /** + * handle delete of nodes + * @param nodes nodes to delete + * @return true if delete was handled + * false if delete was not handled + */ + boolean delete(Node[] nodes); + +}