KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > specifier > base > BaseCellEditor


1 package com.genimen.djeneric.tools.specifier.base;
2
3 import java.awt.Component JavaDoc;
4 import java.awt.event.ActionEvent JavaDoc;
5 import java.awt.event.ActionListener JavaDoc;
6 import java.awt.event.ItemEvent JavaDoc;
7 import java.awt.event.ItemListener JavaDoc;
8 import java.awt.event.MouseEvent JavaDoc;
9 import java.io.Serializable JavaDoc;
10 import java.util.EventObject JavaDoc;
11
12 import javax.swing.AbstractCellEditor JavaDoc;
13 import javax.swing.JComponent JavaDoc;
14 import javax.swing.JTable JavaDoc;
15
16 import com.genimen.djeneric.repository.DjPersistenceManager;
17 import com.genimen.djeneric.repository.DjSession;
18 import com.genimen.djeneric.tools.specifier.editor.DjenericContextManager;
19 import com.genimen.djeneric.tools.specifier.editor.DjenericObjectModel;
20 import com.genimen.djeneric.tools.specifier.interfaces.CustomCellEditor;
21
22 public abstract class BaseCellEditor extends AbstractCellEditor JavaDoc
23     implements
24       CustomCellEditor,
25       ActionListener JavaDoc,
26       ItemListener JavaDoc,
27       Serializable JavaDoc
28 {
29   protected JComponent JavaDoc _editorComponent;
30   protected int _clickCountToStart = 2;
31
32   DjenericContextManager _manager;
33   DjenericObjectModel _model;
34
35   public BaseCellEditor(final JComponent JavaDoc editorComp)
36   {
37     _editorComponent = editorComp;
38     this._clickCountToStart = 2;
39
40     // In the subclass do the following:
41
// editorComp.removeActionListener(this);
42
// editorComp.addActionListener(this);
43
}
44
45   abstract public void setValue(Object JavaDoc value);
46
47   abstract public Object JavaDoc getCellEditorValue();
48
49   public Component JavaDoc getComponent()
50   {
51     return _editorComponent;
52   }
53
54   public void setClickCountToStart(int count)
55   {
56     _clickCountToStart = count;
57   }
58
59   public int getClickCountToStart()
60   {
61     return _clickCountToStart;
62   }
63
64   public Component JavaDoc getTableCellEditorComponent(JTable JavaDoc table, Object JavaDoc value, boolean isSelected, int row, int column)
65   {
66     setValue(value);
67     return _editorComponent;
68   }
69
70   public boolean isCellEditable(EventObject JavaDoc anEvent)
71   {
72     if (anEvent instanceof MouseEvent JavaDoc)
73     {
74       return ((MouseEvent JavaDoc) anEvent).getClickCount() >= _clickCountToStart;
75     }
76     return true;
77   }
78
79   public boolean shouldSelectCell(EventObject JavaDoc anEvent)
80   {
81     return true;
82   }
83
84   public boolean startCellEditing(EventObject JavaDoc anEvent)
85   {
86     return true;
87   }
88
89   public boolean stopCellEditing()
90   {
91     fireEditingStopped();
92     return true;
93   }
94
95   public void cancelCellEditing()
96   {
97     fireEditingCanceled();
98   }
99
100   public void actionPerformed(ActionEvent JavaDoc e)
101   {
102   }
103
104   public void itemStateChanged(ItemEvent JavaDoc e)
105   {
106     BaseCellEditor.this.stopCellEditing();
107   }
108
109   public void setContextManager(DjenericContextManager manager)
110   {
111     _manager = manager;
112   }
113
114   public DjenericContextManager getContextManager()
115   {
116     return _manager;
117   }
118
119   public DjenericObjectModel getModel()
120   {
121     return _model;
122   }
123
124   public DjSession getSession()
125   {
126     return _model.getSession();
127   }
128
129   public DjPersistenceManager getPersistenceManager()
130   {
131     return getSession().getPersistenceManager();
132   }
133
134   public void setModel(DjenericObjectModel model)
135   {
136     _model = model;
137   }
138
139 }
Popular Tags