/*
* $Id$
*
* Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
* Santa Clara, California 95054, U.S.A. All rights reserved.
*/
package org.jdesktop.test;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
/**
* A CellEditorListener that stores the received ChangeEvents.
*
*/
public class CellEditorReport implements CellEditorListener {
/**
* Holds a list of all canceled events.
*/
protected List<ChangeEvent> canceledEvents = Collections.synchronizedList(new LinkedList<ChangeEvent>());
protected List<ChangeEvent> stoppedEvents = Collections.synchronizedList(new LinkedList<ChangeEvent>());
protected List<ChangeEvent> allEvents = Collections.synchronizedList(new LinkedList<ChangeEvent>());
//------------------------ implement CellEditorListener
public void editingCanceled(ChangeEvent e) {
canceledEvents.add(0, e);
allEvents.add(0, e);
}
public void editingStopped(ChangeEvent e) {
stoppedEvents.add(0, e);
allEvents.add(0, e);
}
//----------------------- utility methods to access all events
public void clear() {
canceledEvents.clear();
stoppedEvents.clear();
allEvents.clear();
}
public int getEventCount() {
return allEvents.size();
}
public boolean hasEvents() {
return !allEvents.isEmpty();
}
public ChangeEvent getLastEvent() {
return allEvents.isEmpty()
? null
: allEvents.get(0);
}
//------------------ access canceled events
public int getCanceledEventCount() {
return canceledEvents.size();
}
public boolean hasCanceledEvents() {
return !canceledEvents.isEmpty();
}
public ChangeEvent getLastCanceledEvent() {
return canceledEvents.isEmpty()
? null
: canceledEvents.get(0);
}
//----------------- access stopped events
public int getStoppedEventCount() {
return stoppedEvents.size();
}
public boolean hasStoppedEvents() {
return !stoppedEvents.isEmpty();
}
public ChangeEvent getLastStoppedEvent() {
return stoppedEvents.isEmpty()
? null
: stoppedEvents.get(0);
}
}