Index: openide/loaders/src/org/openide/loaders/DataFolder.java =================================================================== RCS file: /cvs/openide/loaders/src/org/openide/loaders/DataFolder.java,v retrieving revision 1.35 diff -u -r1.35 DataFolder.java --- openide/loaders/src/org/openide/loaders/DataFolder.java 11 Feb 2005 12:44:55 -0000 1.35 +++ openide/loaders/src/org/openide/loaders/DataFolder.java 28 Apr 2005 07:28:36 -0000 @@ -1034,6 +1034,15 @@ return folderName.indexOf ('/') == -1 && folderName.indexOf ('\\') == -1; } + private static Collection renameHandlers; + private static Collection getRenameHandlers() { + if (renameHandlers == null) { + Lookup.Result result = Lookup.getDefault().lookup(new Lookup.Template(FolderRenameHandler.class)); + renameHandlers = result.allInstances(); + } + return renameHandlers; + } + /** Node for a folder. */ public class FolderNode extends DataNode { @@ -1183,6 +1192,17 @@ return new NewType[] { new NewFolder () }; } */ + } + + public void setName(String name) { + if (getRenameHandlers().isEmpty()) { + super.setName(name); + } else { + for (Iterator i = getRenameHandlers().iterator(); i.hasNext();) { + FolderRenameHandler handler = (FolderRenameHandler) i.next(); + handler.handleRename(DataFolder.this, name); + } + } } /* May add some paste types for objects being added to folders. Index: openide/loaders/src/org/openide/loaders/FolderRenameHandler.java =================================================================== RCS file: openide/loaders/src/org/openide/loaders/FolderRenameHandler.java diff -N openide/loaders/src/org/openide/loaders/FolderRenameHandler.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openide/loaders/src/org/openide/loaders/FolderRenameHandler.java 28 Apr 2005 07:28:36 -0000 @@ -0,0 +1,24 @@ +/* + * 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.openide.loaders; + +import org.openide.nodes.Node; + +/** + * + * @author Jan Becicka + */ +public interface FolderRenameHandler { + void handleRename(DataFolder folder, String newName); +} Index: java/project/src/org/netbeans/spi/java/project/support/ui/PackageRenameHandler.java =================================================================== RCS file: java/project/src/org/netbeans/spi/java/project/support/ui/PackageRenameHandler.java diff -N java/project/src/org/netbeans/spi/java/project/support/ui/PackageRenameHandler.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ java/project/src/org/netbeans/spi/java/project/support/ui/PackageRenameHandler.java 28 Apr 2005 07:28:36 -0000 @@ -0,0 +1,24 @@ +/* + * 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.spi.java.project.support.ui; + +import org.openide.nodes.Node; + +/** + * + * @author Jan Becicka + */ +public interface PackageRenameHandler { + void handleRename(Node node, String newName); +} Index: java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java =================================================================== RCS file: /cvs/java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java,v retrieving revision 1.57 diff -u -r1.57 PackageViewChildren.java --- java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java 26 Mar 2005 16:01:41 -0000 1.57 +++ java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java 28 Apr 2005 07:28:36 -0000 @@ -642,8 +642,24 @@ return false; } + private static Collection renameHandlers; + private static Collection getRenameHandlers() { + if (renameHandlers == null) { + Lookup.Result result = Lookup.getDefault().lookup(new Lookup.Template(PackageRenameHandler.class)); + renameHandlers = result.allInstances(); + } + return renameHandlers; + } public void setName(String name) { + if (!getRenameHandlers().isEmpty()) { + for (Iterator i = getRenameHandlers().iterator(); i.hasNext();) { + PackageRenameHandler handler = (PackageRenameHandler) i.next(); + handler.handleRename(this, name); + } + return; + } + if (isDefaultPackage) { return; } Index: java/src/org/netbeans/modules/java/JavaNode.java =================================================================== RCS file: /cvs/java/src/org/netbeans/modules/java/JavaNode.java,v retrieving revision 1.127 diff -u -r1.127 JavaNode.java --- java/src/org/netbeans/modules/java/JavaNode.java 24 Mar 2005 14:24:59 -0000 1.127 +++ java/src/org/netbeans/modules/java/JavaNode.java 28 Apr 2005 07:34:09 -0000 @@ -14,6 +14,7 @@ package org.netbeans.modules.java; import java.awt.Image; +import java.awt.datatransfer.Transferable; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyEditor; @@ -57,14 +58,19 @@ import org.openide.filesystems.FileObject; import org.openide.filesystems.FileStateInvalidException; import org.openide.filesystems.FileUtil; +import org.openide.loaders.DataFolder; import org.openide.loaders.DataNode; import org.openide.loaders.DataObject; import org.openide.nodes.Children; import org.openide.nodes.Node; +import org.openide.nodes.NodeTransfer; import org.openide.nodes.PropertySupport; import org.openide.nodes.Sheet; import org.openide.util.*; import org.openide.util.datatransfer.NewType; +import org.openide.util.datatransfer.PasteType; +import org.openide.util.lookup.AbstractLookup; +import org.openide.util.lookup.InstanceContent; /** * The node representation of Java source files. @@ -106,7 +112,7 @@ private HashSet currentBadges; private StatePropagator statePropagator; - + /** Create a node for the Java data object using the default children. * @param jdo the data object to represent */ @@ -412,6 +418,26 @@ public Image getOpenedIcon(int type) { return iconCache.getIcon(super.getOpenedIcon(type), getBadges()); + } + + public void setName(String name) { + if (getRenameHandlers().isEmpty()) { + super.setName(name); + } else { + for (Iterator i = getRenameHandlers().iterator(); i.hasNext();) { + RenameHandler handler = (RenameHandler) i.next(); + handler.handleRename(JavaNode.this, name); + } + } + } + + private static Collection renameHandlers; + private static Collection getRenameHandlers() { + if (renameHandlers == null) { + Lookup.Result result = Lookup.getDefault().lookup(new Lookup.Template(RenameHandler.class)); + renameHandlers = result.allInstances(); + } + return renameHandlers; } /** Get the icon base. Index: java/src/org/netbeans/modules/java/RenameHandler.java =================================================================== RCS file: java/src/org/netbeans/modules/java/RenameHandler.java diff -N java/src/org/netbeans/modules/java/RenameHandler.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ java/src/org/netbeans/modules/java/RenameHandler.java 28 Apr 2005 07:34:09 -0000 @@ -0,0 +1,24 @@ +/* + * 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; + +import org.openide.nodes.Node; + +/** + * + * @author Jan Becicka + */ +public interface RenameHandler { + void handleRename(Node node, String newName); +}