content: /*
   * @(#)AbstractGraphicsManager.java
   *
   * Copyright 2002 EGANTT LLP. All rights reserved.
   * PROPRIETARY/QPL. Use is subject to license terms.
   */
  
  package com.egantt.awt.graphics.manager;
  
  import com.egantt.awt.graphics.GraphicsManager;
  
  import com.egantt.model.drawing.DrawingTransform;
  
  import com.egantt.model.drawing.axis.AxisInterval;
  
  import java.awt.Component;
  import java.awt.Rectangle;
  
  /**
    * Useful for generating Graphics2D's
    */
  public abstract class AbstractGraphicsManager implements GraphicsManager
  {
  	// _________________________________________________________________________
  
  	public Rectangle create(Component c, AxisInterval[] intervals,
                            DrawingTransform[] transforms)
  	{
  		int[] points = new int [2];
  		points[0]= c.getWidth();
  		points[1]= c.getHeight();
  
  		int[] r = new int [points.length * 2];
  		for (int i=0; i < points.length; i++)
  		{
  			r[i *2] = transforms[i].transform(intervals[i].getStart(), points[i]);
  			r[i *2+1] = transforms[i].transform(intervals[i].getFinish(), points[i]);
  		}
  
  		int width = r[1] - r[0];
  		int height = r[3] - r[2];
  		return width > 0 && height > 0 ? new Rectangle(r[0], r[2], width, height) : null;
  	}
  }
  