content: /*
   * @(#)BasicViewRange.java
   *
   * Copyright 2002 EGANTT LLP. All rights reserved.
   * PROPRIETARY/QPL. Use is subject to license terms.
   */
  
  package com.egantt.model.scrolling.range.view;
  
  import com.egantt.model.drawing.DrawingTransform;
  
  import com.egantt.model.drawing.axis.AxisInterval;
  
  public class BasicViewRange extends AbstractViewRange
  {
  	protected int range;
  	
  	public BasicViewRange(int range)
  	{
  		this.range = range;
  	}
  	
  	public BasicViewRange()
  	{
  		this (Integer.MAX_VALUE);
  	}
  	
  	// __________________________________________________________________________
  	
  	public int getRange()
  	{
  		return range;
  	}
  	
  	// __________________________________________________________________________
  
  	public int getExtent()
  	{
  		AxisInterval interval = manager.getView().getInterval();
  		DrawingTransform transform = manager.getAxis().getTransform();
  		
  		int x1 = transform.transform(interval.getStart(), range);
  		int x2 = transform.transform(interval.getFinish(), range);
  		return x2 - x1;
  	}
  	
  	
  	public int getValue()
  	{
  		AxisInterval interval = manager.getView().getInterval();
  		DrawingTransform transform = manager.getAxis().getTransform();
  		return transform.transform(interval.getStart(), range);
  	}
  
  	//___________________________________________________________________________
  
  	public void setValue(int value)
  	{
  		DrawingTransform transform = manager.getAxis().getTransform();
  		manager.setStart(transform.inverseTransform(value, range));
     }
  
  	public int getBlockIncrement() {
  		return getExtent() / 100;
  	}
  
  	public int getUnitIncrement() {
  		AxisInterval interval = manager.getView().getInterval();
  		DrawingTransform transform = manager.getAxis().getTransform();
  		int start = transform.transform(interval.getStart(), range);
  		int finish = transform.transform(interval.getFinish(), range);
  		return finish - start;
  	}
  }
  