diff options
author | geronimo <geronimo013@gmx.de> | 2012-08-16 09:47:55 +0200 |
---|---|---|
committer | geronimo <geronimo013@gmx.de> | 2012-08-16 09:47:55 +0200 |
commit | 301f77acdd559f0a5acb5d6750e025c4bd195b82 (patch) | |
tree | 071ec43d81f101b7beb720767b3f0ee098754004 /cmpcj/src/de/schwarzrot/control/support/TreeCellEditor.java | |
parent | 7573668ef0324f4a5050be428b15e40f7fa61ac3 (diff) | |
download | cmp-301f77acdd559f0a5acb5d6750e025c4bd195b82.tar.gz cmp-301f77acdd559f0a5acb5d6750e025c4bd195b82.tar.bz2 |
fixed revoke of config dialog, and genre editing, improved visual consistency
Diffstat (limited to 'cmpcj/src/de/schwarzrot/control/support/TreeCellEditor.java')
-rw-r--r-- | cmpcj/src/de/schwarzrot/control/support/TreeCellEditor.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/cmpcj/src/de/schwarzrot/control/support/TreeCellEditor.java b/cmpcj/src/de/schwarzrot/control/support/TreeCellEditor.java new file mode 100644 index 0000000..b436207 --- /dev/null +++ b/cmpcj/src/de/schwarzrot/control/support/TreeCellEditor.java @@ -0,0 +1,52 @@ +package de.schwarzrot.control.support; + + +import java.util.List; +import javax.swing.JTree; +import javax.swing.event.CellEditorListener; +import javax.swing.event.ChangeEvent; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeCellEditor; +import javax.swing.tree.DefaultTreeCellRenderer; +import de.schwarzrot.media.domain.AbstractMediaNode; +import de.schwarzrot.media.domain.Genre; + + +public class TreeCellEditor extends DefaultTreeCellEditor implements CellEditorListener { + public TreeCellEditor(JTree tree, List<AbstractMediaNode> changes) { + super(tree, (DefaultTreeCellRenderer) tree.getCellRenderer()); + this.changes = changes; + addCellEditorListener(this); + } + + + @Override + public void editingCanceled(ChangeEvent e) { + System.out.println("editing cancelled"); + } + + + @Override + public void editingStopped(ChangeEvent e) { + System.out.println("editing stopped"); + Genre genre = (Genre) editedNode.getUserObject(); + + genre.setName((String) editedValue); + if (!changes.contains(genre)) + changes.add(genre); + } + + + @Override + public Object getCellEditorValue() { + editedValue = super.getCellEditorValue(); + editedNode = (DefaultMutableTreeNode) lastPath.getLastPathComponent(); + Genre genre = (Genre) editedNode.getUserObject(); + + return genre; + } + + private Object editedValue; + private DefaultMutableTreeNode editedNode; + private List<AbstractMediaNode> changes; +} |