/** * 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); }
/** * Compute an ordinal axis layout. */ protected void ordinalLayout(TupleSet ts) { if ( !m_modelSet) { Object[] array = DataLib.ordinalArray(ts, m_field); if ( m_model == null ) { m_model = new ObjectRangeModel(array); } else { ((ObjectRangeModel)m_model).setValueRange(array); } } ObjectRangeModel model = (ObjectRangeModel)m_model; int start = model.getValue(); int end = start + model.getExtent(); double total = (double)(end-start); Iterator iter = m_vis.items(m_group, m_filter); while ( iter.hasNext() ) { VisualItem item = (VisualItem)iter.next(); int order = model.getIndex(item.get(m_field)) - start; set(item, (total > 0.0) ? order/total : 0.5); } }