/*
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package javax.swing.event;
import javax.swing.RowSorter;
RowSorterEvent
provides notification of changes to
a RowSorter
. Two types of notification are possible:
Type.SORT_ORDER_CHANGED
: indicates the sort order has
changed. This is typically followed by a notification of:
Type.SORTED
: indicates the contents of the model have
been transformed in some way. For example, the contents may have
been sorted or filtered.
See Also: - RowSorter
Since: 1.6
/**
* <code>RowSorterEvent</code> provides notification of changes to
* a <code>RowSorter</code>. Two types of notification are possible:
* <ul>
* <li><code>Type.SORT_ORDER_CHANGED</code>: indicates the sort order has
* changed. This is typically followed by a notification of:
* <li><code>Type.SORTED</code>: indicates the contents of the model have
* been transformed in some way. For example, the contents may have
* been sorted or filtered.
* </ul>
*
* @see javax.swing.RowSorter
* @since 1.6
*/
@SuppressWarnings("serial") // Same-version serialization only
public class RowSorterEvent extends java.util.EventObject {
private Type type;
private int[] oldViewToModel;
Enumeration of the types of RowSorterEvent
s.
Since: 1.6
/**
* Enumeration of the types of <code>RowSorterEvent</code>s.
*
* @since 1.6
*/
public enum Type {
Indicates the sort order has changed.
/**
* Indicates the sort order has changed.
*/
SORT_ORDER_CHANGED,
Indicates the contents have been newly sorted or
transformed in some way.
/**
* Indicates the contents have been newly sorted or
* transformed in some way.
*/
SORTED
}
Creates a RowSorterEvent
of type
SORT_ORDER_CHANGED
.
Params: - source – the source of the change
Throws: - IllegalArgumentException – if
source
is
null
/**
* Creates a <code>RowSorterEvent</code> of type
* <code>SORT_ORDER_CHANGED</code>.
*
* @param source the source of the change
* @throws IllegalArgumentException if <code>source</code> is
* <code>null</code>
*/
public RowSorterEvent(RowSorter<?> source) {
this(source, Type.SORT_ORDER_CHANGED, null);
}
Creates a RowSorterEvent
.
Params: - source – the source of the change
- type – the type of event
- previousRowIndexToModel – the mapping from model indices to
view indices prior to the sort, may be
null
Throws: - IllegalArgumentException – if source or
type
is
null
/**
* Creates a <code>RowSorterEvent</code>.
*
* @param source the source of the change
* @param type the type of event
* @param previousRowIndexToModel the mapping from model indices to
* view indices prior to the sort, may be <code>null</code>
* @throws IllegalArgumentException if source or <code>type</code> is
* <code>null</code>
*/
public RowSorterEvent(RowSorter<?> source, Type type,
int[] previousRowIndexToModel) {
super(source);
if (type == null) {
throw new IllegalArgumentException("type must be non-null");
}
this.type = type;
this.oldViewToModel = previousRowIndexToModel;
}
Returns the source of the event as a RowSorter
.
Returns: the source of the event as a RowSorter
/**
* Returns the source of the event as a <code>RowSorter</code>.
*
* @return the source of the event as a <code>RowSorter</code>
*/
@Override
public RowSorter<?> getSource() {
return (RowSorter)super.getSource();
}
Returns the type of event.
Returns: the type of event
/**
* Returns the type of event.
*
* @return the type of event
*/
public Type getType() {
return type;
}
Returns the location of index
in terms of the
model prior to the sort. This method is only useful for events
of type SORTED
. This method will return -1 if the
index is not valid, or the locations prior to the sort have not
been provided.
Params: - index – the index in terms of the view
Returns: the index in terms of the model prior to the sort, or -1 if
the location is not valid or the mapping was not provided.
/**
* Returns the location of <code>index</code> in terms of the
* model prior to the sort. This method is only useful for events
* of type <code>SORTED</code>. This method will return -1 if the
* index is not valid, or the locations prior to the sort have not
* been provided.
*
* @param index the index in terms of the view
* @return the index in terms of the model prior to the sort, or -1 if
* the location is not valid or the mapping was not provided.
*/
public int convertPreviousRowIndexToModel(int index) {
if (oldViewToModel != null && index >= 0 &&
index < oldViewToModel.length) {
return oldViewToModel[index];
}
return -1;
}
Returns the number of rows before the sort. This method is only
useful for events of type SORTED
and if the
last locations have not been provided will return 0.
Returns: the number of rows in terms of the view prior to the sort
/**
* Returns the number of rows before the sort. This method is only
* useful for events of type <code>SORTED</code> and if the
* last locations have not been provided will return 0.
*
* @return the number of rows in terms of the view prior to the sort
*/
public int getPreviousRowCount() {
return (oldViewToModel == null) ? 0 : oldViewToModel.length;
}
}