/**
* Enable or disable action on selection change.
*
* @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
*/
public void valueChanged(ListSelectionEvent event) {
// return if selection change is in flux
if (event.getValueIsAdjusting()) {
return;
}
FocusOwner focusOwner = FocusManager.getInstance().getCurrentOwner();
TableController table = ((AddressbookFrameMediator) frameMediator).getTable();
if (table.equals(focusOwner)) {
// table has focus
Object[] uids = ((AddressbookFrameMediator) frameMediator).getTable().getUids();
if (uids.length > 0) {
setEnabled(true);
return;
}
}
setEnabled(false);
}
public void valueChanged(TreeSelectionEvent e) {
TreePath path = e.getNewLeadSelectionPath();
FocusOwner focusOwner = FocusManager.getInstance().getCurrentOwner();
TreeController tree = ((AddressbookFrameMediator) frameMediator).getTree();
if (tree.equals(focusOwner)) {
// tree has focus
AddressbookTreeNode treeNode = null;
// remember last selected folder treenode
if (path != null) {
treeNode = (AddressbookTreeNode) path.getLastPathComponent();
}
// enable, if more than zero treenodes selected
if ((path != null) && (treeNode instanceof IGroupFolder)) {
setEnabled(true);
}
else
setEnabled(false);
}
else
setEnabled(false);
}
|