001: /*
002: * $Id: ColumnModelReport.java,v 1.1 2006/11/01 16:23:14 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.swingx.test;
009:
010: import java.beans.PropertyChangeEvent;
011: import java.util.LinkedList;
012: import java.util.List;
013:
014: import javax.swing.event.ChangeEvent;
015: import javax.swing.event.ListSelectionEvent;
016: import javax.swing.event.TableColumnModelEvent;
017:
018: import org.jdesktop.swingx.event.TableColumnModelExtListener;
019:
020: /**
021: * A TableColumnExtListener that stores the received TableColumnEvents and
022: * PropertyChangeEvents originating from the TableColumns contained in the
023: * TableColumnModel.
024: */
025: public class ColumnModelReport implements TableColumnModelExtListener {
026:
027: /**
028: * Holds a list of all received ValueChangeEvents.
029: */
030: private List<TableColumnModelEvent> removedEvents = new LinkedList<TableColumnModelEvent>();
031: private List<TableColumnModelEvent> addedEvents = new LinkedList<TableColumnModelEvent>();
032: private List<TableColumnModelEvent> movedEvents = new LinkedList<TableColumnModelEvent>();
033:
034: private List<ListSelectionEvent> selectionEvents = new LinkedList<ListSelectionEvent>();
035: private List<ChangeEvent> changeEvents = new LinkedList<ChangeEvent>();
036:
037: private List<PropertyChangeEvent> columnPropertyEvents = new LinkedList<PropertyChangeEvent>();
038:
039: //------------------------ implement TableColumnModelListener
040: public void columnAdded(TableColumnModelEvent e) {
041: addedEvents.add(0, e);
042:
043: }
044:
045: public void columnMarginChanged(ChangeEvent e) {
046: changeEvents.add(0, e);
047:
048: }
049:
050: public void columnMoved(TableColumnModelEvent e) {
051: movedEvents.add(0, e);
052:
053: }
054:
055: public void columnRemoved(TableColumnModelEvent e) {
056: removedEvents.add(0, e);
057:
058: }
059:
060: public void columnSelectionChanged(ListSelectionEvent e) {
061: selectionEvents.add(0, e);
062:
063: }
064:
065: //---------------------- implement TableColumnModelExtListener
066:
067: public void columnPropertyChange(PropertyChangeEvent e) {
068: columnPropertyEvents.add(0, e);
069:
070: }
071:
072: public boolean hasEvents() {
073: return getEventCount() > 0;
074: }
075:
076: public void clear() {
077: addedEvents.clear();
078: removedEvents.clear();
079: movedEvents.clear();
080: changeEvents.clear();
081: selectionEvents.clear();
082: columnPropertyEvents.clear();
083: }
084:
085: public int getEventCount() {
086: return addedEvents.size() + removedEvents.size()
087: + movedEvents.size() + changeEvents.size()
088: + selectionEvents.size() + columnPropertyEvents.size();
089: }
090:
091: // -------------- access reported TableModelEvents
092:
093: public boolean hasRemovedEvent() {
094: return !removedEvents.isEmpty();
095: }
096:
097: public TableColumnModelEvent getLastRemoveEvent() {
098: return removedEvents.isEmpty() ? null : removedEvents.get(0);
099: }
100:
101: public boolean hasAddedEvent() {
102: return !addedEvents.isEmpty();
103: }
104:
105: public TableColumnModelEvent getLastAddEvent() {
106: return addedEvents.isEmpty() ? null : addedEvents.get(0);
107: }
108:
109: //--------------- access reported propertyChangeEvent
110:
111: public boolean hasColumnPropertyEvent() {
112: return !columnPropertyEvents.isEmpty();
113: }
114:
115: public int getColumnPropertyEventCount() {
116: return columnPropertyEvents.size();
117: }
118:
119: public PropertyChangeEvent getLastColumnPropertyEvent() {
120: return columnPropertyEvents.isEmpty() ? null
121: : columnPropertyEvents.get(0);
122: }
123:
124: }
|