package prefuse.data.query;
import java.util.HashMap;
import java.util.Map;
import javax.swing.DefaultBoundedRangeModel;
import prefuse.util.ui.ValuedRangeModel;
/**
* Supports an ordered range of arbitrary objects. Designed to support
* range-based dynamic queries over ordered, but not necessarily numerical,
* data.
* @author jeffrey heer
*/
public class ObjectRangeModel extends DefaultBoundedRangeModel
implements ValuedRangeModel
{
private Object[] m_objects;
private Map m_ordinal;
/**
* Create a new ObjectRangeModel with the given objects. The objects are
* assumed to sorted in ascending order.
* @param objects the members of this ObjectRangeModel, sorted in ascending
* order.
*/
public ObjectRangeModel(Object[] objects) {
setValueRange(objects);
}
/**
* Sets the range model to the given objects. The objects are
* assumed to sorted in ascending order.
* @param objects the members of this ObjectRangeModel, sorted in ascending
* order.
*/
public void setValueRange(Object[] objects) {
if ( m_objects != null && objects.length == m_objects.length ) {
boolean equal = true;
for ( int i=0; iindex map
if ( m_ordinal == null ) {
m_ordinal = new HashMap();
} else {
m_ordinal.clear();
}
for ( int i=0; i