001: /*
002: * $Id: ListDataReport.java,v 1.1 2006/11/01 16:23:06 kleopatra Exp $
003: *
004: * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
005: * Santa Clara, California 95054, U.S.A. All rights reserved.
006: */
007:
008: package org.jdesktop.test;
009:
010: import java.util.LinkedList;
011: import java.util.List;
012:
013: import javax.swing.event.ListDataEvent;
014: import javax.swing.event.ListDataListener;
015:
016: /**
017: * A <code>ListDataListener</code> that stores the received
018: * <code>ListDataEvents</code>.
019: *
020: */
021: public class ListDataReport implements ListDataListener {
022:
023: /**
024: * Holds a list of all canceled events.
025: */
026: protected List<ListDataEvent> changedEvents = new LinkedList<ListDataEvent>();
027: protected List<ListDataEvent> addedEvents = new LinkedList<ListDataEvent>();
028: protected List<ListDataEvent> removedEvents = new LinkedList<ListDataEvent>();
029: protected List<ListDataEvent> allEvents = new LinkedList<ListDataEvent>();
030:
031: // ------------------ implement ListDataListener
032:
033: public void contentsChanged(ListDataEvent e) {
034: changedEvents.add(0, e);
035: allEvents.add(0, e);
036: }
037:
038: public void intervalAdded(ListDataEvent e) {
039: addedEvents.add(e);
040: allEvents.add(0, e);
041: }
042:
043: public void intervalRemoved(ListDataEvent e) {
044: removedEvents.add(e);
045: allEvents.add(0, e);
046: }
047:
048: //----------------------- utility methods to access all events
049:
050: public void clear() {
051: changedEvents.clear();
052: addedEvents.clear();
053: removedEvents.clear();
054: allEvents.clear();
055: }
056:
057: public int getEventCount() {
058: return allEvents.size();
059: }
060:
061: public boolean hasEvents() {
062: return !allEvents.isEmpty();
063: }
064:
065: public ListDataEvent getLastEvent() {
066: return allEvents.isEmpty() ? null : allEvents.get(0);
067: }
068:
069: // ------------------ access changed events
070: public int getChangedEventCount() {
071: return changedEvents.size();
072: }
073:
074: public boolean hasChangedEvents() {
075: return !changedEvents.isEmpty();
076: }
077:
078: public ListDataEvent getLastChangedEvent() {
079: return changedEvents.isEmpty() ? null : changedEvents.get(0);
080: }
081:
082: // ----------------- access added events
083:
084: public int getAddedEventCount() {
085: return addedEvents.size();
086: }
087:
088: public boolean hasAddedEvents() {
089: return !addedEvents.isEmpty();
090: }
091:
092: public ListDataEvent getLastAddedEvent() {
093: return addedEvents.isEmpty() ? null : addedEvents.get(0);
094: }
095:
096: // ----------------- removed added events
097:
098: public int getRemovedEventCount() {
099: return removedEvents.size();
100: }
101:
102: public boolean hasRemovedEvents() {
103: return !removedEvents.isEmpty();
104: }
105:
106: public ListDataEvent getLastRemovedEvent() {
107: return removedEvents.isEmpty() ? null : removedEvents.get(0);
108: }
109:
110: }
|