// Near Infinity - An Infinity Engine Browser and Editor // Copyright (C) 2001 - 2005 Jon Olav Hauglid // See LICENSE.txt for license information package org.infinity.gui.treetable; import java.util.ArrayList; import java.util.EventObject; import java.util.List; import javax.swing.CellEditor; import javax.swing.event.CellEditorListener; import javax.swing.event.ChangeEvent; public class AbstractCellEditor implements CellEditor { private final List<CellEditorListener> listeners = new ArrayList<CellEditorListener>(); // --------------------- Begin Interface CellEditor --------------------- @Override public Object getCellEditorValue() { return null; } @Override public boolean isCellEditable(EventObject e) { return true; } @Override public boolean shouldSelectCell(EventObject anEvent) { return false; } @Override public boolean stopCellEditing() { return true; } @Override public void cancelCellEditing() {} @Override public void addCellEditorListener(CellEditorListener l) { listeners.add(l); } @Override public void removeCellEditorListener(CellEditorListener l) { listeners.remove(l); } // --------------------- End Interface CellEditor --------------------- protected void fireEditingCanceled() { ChangeEvent event = new ChangeEvent(this); for (int i = 0; i < listeners.size(); i++) listeners.get(i).editingCanceled(event); } protected void fireEditingStopped() { ChangeEvent event = new ChangeEvent(this); for (int i = 0; i < listeners.size(); i++) listeners.get(i).editingStopped(event); } }