summaryrefslogtreecommitdiff
path: root/cmpcj/src/de/schwarzrot/control/support/TreeCellEditor.java
diff options
context:
space:
mode:
authorgeronimo <geronimo013@gmx.de>2012-08-16 09:47:55 +0200
committergeronimo <geronimo013@gmx.de>2012-08-16 09:47:55 +0200
commit301f77acdd559f0a5acb5d6750e025c4bd195b82 (patch)
tree071ec43d81f101b7beb720767b3f0ee098754004 /cmpcj/src/de/schwarzrot/control/support/TreeCellEditor.java
parent7573668ef0324f4a5050be428b15e40f7fa61ac3 (diff)
downloadcmp-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.java52
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;
+}