1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.cosylab.gui.components.table.renderers;
21
22 import com.cosylab.gui.components.table.cells.LongEnumCell;
23
24 import java.awt.Component;
25 import java.awt.event.MouseEvent;
26 import java.awt.event.MouseListener;
27
28 import javax.swing.DefaultCellEditor;
29 import javax.swing.JComboBox;
30 import javax.swing.JTable;
31
32
33
34
35
36
37
38
39
40
41 public class LongEnumCellEditor extends DefaultCellEditor
42 {
43 private static final long serialVersionUID = 1L;
44 EnumComboBoxModel comboModel;
45
46
47
48
49 public LongEnumCellEditor()
50 {
51 super(new JComboBox(new EnumComboBoxModel()));
52
53 getComponent().addMouseListener(new MouseListener() {
54 public void mouseClicked(MouseEvent e) {
55 }
56
57 public void mouseEntered(MouseEvent e) {
58 }
59
60 public void mouseExited(MouseEvent e) {
61 cancelCellEditing();
62 }
63
64 public void mousePressed(MouseEvent e) {
65 }
66
67 public void mouseReleased(MouseEvent e) {
68 }
69 });
70 }
71
72
73
74
75 public Component getTableCellEditorComponent(JTable table, Object value,
76 boolean isSelected, int row, int column)
77 {
78 JComboBox box = (JComboBox)super.getTableCellEditorComponent(table,
79 value, isSelected, row, column);
80
81 if (comboModel == null) {
82 comboModel = (EnumComboBoxModel)box.getModel();
83 }
84
85 if (value instanceof LongEnumCell) {
86 LongEnumCell cell = (LongEnumCell)value;
87 comboModel.setCell(cell);
88 } else {
89 comboModel.setCell(null);
90 }
91
92 return box;
93 }
94
95
96
97
98 public Object getCellEditorValue()
99 {
100 return comboModel.getLongVale();
101 }
102 }
103
104