diff -r dff620cf2e14 refactoring.api/src/org/netbeans/modules/refactoring/spi/impl/Bundle.properties --- a/refactoring.api/src/org/netbeans/modules/refactoring/spi/impl/Bundle.properties Wed Jul 15 06:31:45 2009 +0400 +++ b/refactoring.api/src/org/netbeans/modules/refactoring/spi/impl/Bundle.properties Wed Jul 15 11:40:24 2009 +0200 @@ -143,3 +143,5 @@ LBL_ProposedRefactoring=Proposed Refactoring LBL_NewFile=New File LBL_Refactored=Refactored {0} +SAFE_DELETE_QUESTION=Would you like to invoke safe delete? +SAFE_DELETE_QUESTION_TITLE=Refactoring safe delete diff -r dff620cf2e14 refactoring.api/src/org/netbeans/modules/refactoring/spi/impl/SafeDeleteAction.java --- a/refactoring.api/src/org/netbeans/modules/refactoring/spi/impl/SafeDeleteAction.java Wed Jul 15 06:31:45 2009 +0400 +++ b/refactoring.api/src/org/netbeans/modules/refactoring/spi/impl/SafeDeleteAction.java Wed Jul 15 11:40:24 2009 +0200 @@ -44,8 +44,12 @@ import java.util.logging.LogRecord; import java.util.logging.Logger; import javax.swing.SwingUtilities; +import javax.swing.text.html.Option; import org.netbeans.modules.refactoring.api.impl.ActionsImplementationFactory; import org.netbeans.modules.refactoring.api.ui.ExplorerContext; +import org.openide.DialogDescriptor; +import org.openide.DialogDisplayer; +import org.openide.NotifyDescriptor; import org.openide.nodes.Node; import org.openide.util.HelpCtx; import org.openide.util.Lookup; @@ -108,6 +112,16 @@ private boolean regularDelete = false; public boolean delete(final Node[] nodes) { if (enable(nodes)) { + if (nodes.length > 1) { + Object o = DialogDisplayer.getDefault().notify(new NotifyDescriptor ( + NbBundle.getBundle(SafeDeleteAction.class).getString("SAFE_DELETE_QUESTION"), // NOI18N + NbBundle.getBundle(SafeDeleteAction.class).getString("SAFE_DELETE_QUESTION_TITLE"), // NOI18N + DialogDescriptor.YES_NO_OPTION, + DialogDescriptor.QUESTION_MESSAGE, null, DialogDescriptor.NO_OPTION)); + if (!DialogDescriptor.YES_OPTION.equals(o)) { + return false; + } + } if (java.awt.EventQueue.isDispatchThread()) { regularDelete = true; performAction(nodes);