1 package com.genimen.djeneric.tools.specifier.base; 2 3 import java.awt.Component ; 4 import java.awt.event.ActionEvent ; 5 import java.awt.event.ActionListener ; 6 import java.awt.event.ItemEvent ; 7 import java.awt.event.ItemListener ; 8 import java.awt.event.MouseEvent ; 9 import java.io.Serializable ; 10 import java.util.EventObject ; 11 12 import javax.swing.AbstractCellEditor ; 13 import javax.swing.JComponent ; 14 import javax.swing.JTable ; 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 23 implements 24 CustomCellEditor, 25 ActionListener , 26 ItemListener , 27 Serializable 28 { 29 protected JComponent _editorComponent; 30 protected int _clickCountToStart = 2; 31 32 DjenericContextManager _manager; 33 DjenericObjectModel _model; 34 35 public BaseCellEditor(final JComponent editorComp) 36 { 37 _editorComponent = editorComp; 38 this._clickCountToStart = 2; 39 40 } 44 45 abstract public void setValue(Object value); 46 47 abstract public Object getCellEditorValue(); 48 49 public Component 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 getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) 65 { 66 setValue(value); 67 return _editorComponent; 68 } 69 70 public boolean isCellEditable(EventObject anEvent) 71 { 72 if (anEvent instanceof MouseEvent ) 73 { 74 return ((MouseEvent ) anEvent).getClickCount() >= _clickCountToStart; 75 } 76 return true; 77 } 78 79 public boolean shouldSelectCell(EventObject anEvent) 80 { 81 return true; 82 } 83 84 public boolean startCellEditing(EventObject 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 e) 101 { 102 } 103 104 public void itemStateChanged(ItemEvent 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 |