Line 27
Link Here
|
|
|
27 |
import java.util.Collection; |
Line 70
Link Here
|
|
|
71 |
/** Delete behaviour customizer */ |
72 |
private static DeleteHandler deleteHandler = null; |
Line 463
Link Here
|
|
|
466 |
/** |
467 |
* Gets a delete handler. |
468 |
*/ |
469 |
private static DeleteHandler getDeleteHandler() { |
470 |
if (deleteHandler == null) { |
471 |
org.openide.util.Lookup.Template template = new org.openide.util.Lookup.Template(DeleteHandler.class); |
472 |
Collection deletes = org.openide.util.Lookup.getDefault().lookup(template).allInstances(); |
473 |
if (deletes.size() == 1) { |
474 |
deleteHandler = (DeleteHandler)deletes.iterator().next(); |
475 |
} else { |
476 |
deleteHandler = new StandardDelete(); |
477 |
} |
478 |
} |
479 |
return deleteHandler; |
480 |
} |
481 |
|
Lines 585-587
Link Here
|
585 |
|
604 |
|
586 |
/** Class which performs delete action */ |
605 |
// Basic delete handler that provides a confirmation dialog and that |
587 |
private class DeleteActionPerformer extends AbstractAction implements ActionPerformer { |
606 |
// uses Node.destroy() to perform deletes. |
588 |
-- |
607 |
private static class StandardDelete implements DeleteHandler { |
Lines 589-624
Link Here
|
589 |
DeleteActionPerformer() {} |
609 |
public boolean confirmDelete(Node[] sel) { |
590 |
|
|
|
591 |
public boolean isEnabled() { |
592 |
updateActionsState(); |
593 |
return super.isEnabled(); |
594 |
} |
595 |
|
596 |
/** Perform delete action. */ |
597 |
public void performAction(org.openide.util.actions.SystemAction action) { |
598 |
final Node[] sel = manager.getSelectedNodes (); |
599 |
if ((sel == null) || (sel.length == 0)) |
600 |
return; |
601 |
|
602 |
// perform action if confirmed |
603 |
if (!confirmDelete || doConfirm(sel)) { |
604 |
|
605 |
// clear selected nodes |
606 |
try { |
607 |
if (manager != null) { |
608 |
manager.setSelectedNodes(new Node[] {}); |
609 |
} |
610 |
} catch (java.beans.PropertyVetoException e) { |
611 |
// never thrown, setting empty selected nodes cannot be vetoed |
612 |
} |
613 |
|
614 |
doDestroy(sel); |
615 |
|
616 |
if (attachPerformers) { |
617 |
delete.setActionPerformer (null); // fixes bug #673 |
618 |
} else { |
619 |
setEnabled (false); |
620 |
} |
621 |
} |
622 |
} |
623 |
|
624 |
private boolean doConfirm(Node[] sel) { |
625 |
-- |
Line 655
Link Here
|
|
|
640 |
|
Line 668
Link Here
|
668 |
private void doDestroy(final Node[] sel) { |
654 |
public void performDelete(final Node[] sel) { |
669 |
-- |
|
|
Line 688
Link Here
|
|
|
674 |
} |
675 |
|
676 |
/** Class which performs delete action */ |
677 |
private class DeleteActionPerformer extends AbstractAction implements ActionPerformer { |
678 |
|
679 |
DeleteActionPerformer() {} |
680 |
|
681 |
public boolean isEnabled() { |
682 |
updateActionsState(); |
683 |
return super.isEnabled(); |
684 |
} |
685 |
|
686 |
/** Perform delete action. */ |
687 |
public void performAction(org.openide.util.actions.SystemAction action) { |
688 |
final Node[] sel = manager.getSelectedNodes (); |
689 |
if ((sel == null) || (sel.length == 0)) |
690 |
return; |
691 |
|
692 |
// perform action if confirmed |
693 |
if (!confirmDelete || doConfirm(sel)) { |
694 |
|
695 |
// clear selected nodes |
696 |
try { |
697 |
if (manager != null) { |
698 |
manager.setSelectedNodes(new Node[] {}); |
699 |
} |
700 |
} catch (java.beans.PropertyVetoException e) { |
701 |
// never thrown, setting empty selected nodes cannot be vetoed |
702 |
} |
703 |
|
704 |
doDestroy(sel); |
705 |
|
706 |
if (attachPerformers) { |
707 |
delete.setActionPerformer (null); // fixes bug #673 |
708 |
} else { |
709 |
setEnabled (false); |
710 |
} |
711 |
} |
712 |
} |
713 |
|
714 |
|
715 |
private boolean doConfirm(Node[] sel) { |
716 |
return getDeleteHandler().confirmDelete(sel); |
717 |
} |
718 |
|
719 |
private void doDestroy(final Node[] sel) { |
720 |
getDeleteHandler().performDelete(sel); |
721 |
} |
722 |
|