1 package prefuse.data.query; 2 3 import java.util.HashMap ; 4 import java.util.Map ; 5 6 import javax.swing.DefaultBoundedRangeModel ; 7 8 import prefuse.util.ui.ValuedRangeModel; 9 10 16 public class ObjectRangeModel extends DefaultBoundedRangeModel 17 implements ValuedRangeModel 18 { 19 private Object [] m_objects; 20 private Map m_ordinal; 21 22 28 public ObjectRangeModel(Object [] objects) { 29 setValueRange(objects); 30 } 31 32 38 public void setValueRange(Object [] objects) { 39 if ( m_objects != null && objects.length == m_objects.length ) { 40 boolean equal = true; 41 for ( int i=0; i<objects.length; ++i ) { 42 if ( objects[i] != m_objects[i] ) { 43 equal = false; break; 44 } 45 } 46 if ( equal ) return; } 48 m_objects = new Object [objects.length]; 50 System.arraycopy(objects, 0, m_objects, 0, objects.length); 51 52 if ( m_ordinal == null ) { 54 m_ordinal = new HashMap (); 55 } else { 56 m_ordinal.clear(); 57 } 58 for ( int i=0; i<objects.length; ++i ) { 59 m_ordinal.put(objects[i], new Integer (i)); 60 } 61 setRangeProperties(0, objects.length-1, 0, objects.length-1, false); 62 } 63 64 69 public Object getObject(int i) { 70 return m_objects[i]; 71 } 72 73 74 80 public int getIndex(Object o) { 81 Integer idx = (Integer )m_ordinal.get(o); 82 return (idx==null ? -1 : idx.intValue()); 83 } 84 85 88 public Object getMinValue() { 89 return m_objects[getMinimum()]; 90 } 91 92 95 public Object getMaxValue() { 96 return m_objects[getMaximum()]; 97 } 98 99 102 public Object getLowValue() { 103 return m_objects[getValue()]; 104 } 105 106 109 public Object getHighValue() { 110 return m_objects[getValue()+getExtent()]; 111 } 112 113 } | Popular Tags |