/* * Copyright (C) 2002-@year@ by University of Maryland, College Park, MD 20742, USA * All rights reserved. * * Piccolo was written at the Human-Computer Interaction Laboratory * www.cs.umd.edu/hcil by Jesse Grosjean under the supervision of Ben Bederson. * The Piccolo website is www.cs.umd.edu/hcil/piccolo */ package edu.umd.cs.piccolox.swing; import java.awt.*; import java.awt.geom.*; import edu.umd.cs.piccolo.PCanvas; /** * The interface an application can implement to control scrolling in a * PScrollPane->PViewport->ZCanvas component hierarchy. * @see PDefaultScrollDirector * @author Lance Good */ public interface PScrollDirector { /** * Installs the scroll director * @param viewport The viewport on which this director directs * @param view The ZCanvas that the viewport looks at */ public void install(PViewport viewport, PCanvas view); /** * Uninstall the scroll director */ public void unInstall(); /** * Get the View position given the specified camera bounds * @param viewBounds The bounds for which the view position will be computed * @return The view position */ public Point getViewPosition(Rectangle2D viewBounds); /** * Set the view position * @param x The new x position * @param y The new y position */ public void setViewPosition(double x, double y); /** * Get the size of the view based on the specified camera bounds * @param viewBounds The view bounds for which the view size will be computed * @return The view size */ public Dimension getViewSize(Rectangle2D viewBounds); }