//----------------------------------------------------------------------------// // // // A b s t r a c t C e l l E d i t o r // // // //----------------------------------------------------------------------------// // <editor-fold defaultstate="collapsed" desc="hdr"> // //----------------------------------------------------------------------------// // </editor-fold> package omr.ui.treetable; import java.util.EventObject; import javax.swing.CellEditor; import javax.swing.event.CellEditorListener; import javax.swing.event.ChangeEvent; import javax.swing.event.EventListenerList; /** * DOCUMENT ME! * * @author Hervé Bitteur */ public class AbstractCellEditor implements CellEditor { //~ Instance fields -------------------------------------------------------- /** * DOCUMENT ME! */ protected EventListenerList listenerList = new EventListenerList(); //~ Methods ---------------------------------------------------------------- //-----------------------// // addCellEditorListener // //-----------------------// /** * DOCUMENT ME! * * @param l DOCUMENT ME! */ @Override public void addCellEditorListener (CellEditorListener l) { listenerList.add(CellEditorListener.class, l); } //-------------------// // cancelCellEditing // //-------------------// /** * DOCUMENT ME! */ @Override public void cancelCellEditing () { } //--------------------// // getCellEditorValue // //--------------------// /** * DOCUMENT ME! * * @return DOCUMENT ME! */ @Override public Object getCellEditorValue () { return null; } //----------------// // isCellEditable // //----------------// /** * DOCUMENT ME! * * @param e DOCUMENT ME! * * @return DOCUMENT ME! */ @Override public boolean isCellEditable (EventObject e) { return true; } //--------------------------// // removeCellEditorListener // //--------------------------// /** * DOCUMENT ME! * * @param l DOCUMENT ME! */ @Override public void removeCellEditorListener (CellEditorListener l) { listenerList.remove(CellEditorListener.class, l); } //------------------// // shouldSelectCell // //------------------// /** * DOCUMENT ME! * * @param anEvent DOCUMENT ME! * * @return DOCUMENT ME! */ @Override public boolean shouldSelectCell (EventObject anEvent) { return false; } //-----------------// // stopCellEditing // //-----------------// /** * DOCUMENT ME! * * @return DOCUMENT ME! */ @Override public boolean stopCellEditing () { return true; } /* * Notify all listeners that have registered interest for notification on * this event type. * @see EventListenerList */ protected void fireEditingCanceled () { // Guaranteed to return a non-null array Object[] listeners = listenerList.getListenerList(); // Process the listeners last to first, notifying those that are // interested in this event for (int i = listeners.length - 2; i >= 0; i -= 2) { if (listeners[i] == CellEditorListener.class) { ((CellEditorListener) listeners[i + 1]).editingCanceled( new ChangeEvent(this)); } } } /* * Notify all listeners that have registered interest for * notification on this event type. * @see EventListenerList */ protected void fireEditingStopped () { // Guaranteed to return a non-null array Object[] listeners = listenerList.getListenerList(); // Process the listeners last to first, notifying // those that are interested in this event for (int i = listeners.length - 2; i >= 0; i -= 2) { if (listeners[i] == CellEditorListener.class) { ((CellEditorListener) listeners[i + 1]).editingStopped( new ChangeEvent(this)); } } } }