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);
+
+}