Eclipse GEF
2.1

org.eclipse.gef.editparts
Class ZoomManager

java.lang.Object
  |
  +--org.eclipse.gef.editparts.ZoomManager

public class ZoomManager
extends Object

Manage the primary zoom function in a graphical viewer. This class is used by the zoom contribution items, including:

A ZoomManager controls how zoom in and zoom out are performed. It also determines the list of choices the user sees in the drop-down Combo on the toolbar. The zoom manager controls a ScalableFigure, which performs the actual zoom, and also a Viewport. The viewport is needed so that the scrolled location is preserved as the zoom level changes.


Field Summary
static int ANIMATE_NEVER
          Style bit meaning don't animate any zooms
static int ANIMATE_ZOOM_IN_OUT
          Style bit meaning animate during zoomIn() and zoomOut()
 
Constructor Summary
ZoomManager(ScalableFigure pane, Viewport viewport)
          Creates a new ZoomManager
ZoomManager(ScalableFreeformLayeredPane pane, Viewport viewport)
          Deprecated. Use ZoomManager(ScalableFigure, Viewport) instead. Creates a new ZoomManager
 
Method Summary
 void addZoomListener(ZoomListener listener)
          Adds the given ZoomListener to this ZoomManager's list of listeners.
 boolean canZoomIn()
          returns true if the zoommanager can perform zoomIn().
 boolean canZoomOut()
          returns true if the zoommanager can perform zoomOut().
protected  void fireZoomChanged()
          Notifies listeners that the zoom level has changed.
 double getMaxZoom()
          Returns the maxZoom.
 double getMinZoom()
          Returns the minZoom.
 double getNextZoomLevel()
          Returns the zoom level that is one level higher than the current level.
 ScalableFreeformLayeredPane getPane()
          Deprecated. Use getScalableFigure() instead. Returns the pane.
 double getPreviousZoomLevel()
          Returns the zoom level that is one level higher than the current level.
 ScalableFigure getScalableFigure()
          Returns the figure which performs the actual zooming.
 double getUIMultiplier()
          Returns the mutltiplier.
 Viewport getViewport()
          Returns the viewport.
 double getZoom()
          Returns the current zoom level.
 String getZoomAsText()
          Returns the current zoom level as a percentage formatted String
 double[] getZoomLevels()
          Returns the zoomLevels.
 String[] getZoomLevelsAsText()
          Returns the list of zoom levels as Strings in percent notation
 void removeZoomListener(ZoomListener listener)
          Removes the given ZoomListener from this ZoomManager's list of listeners.
 void setUIMultiplier(double multiplier)
          Sets the UI multiplier.
 void setViewLocation(Point p)
          Sets the Viewport's view associated with this ZoomManager to the passed Point
 void setZoom(double zoom)
          Sets the zoom level to the given value.
 void setZoomAnimationStyle(int style)
          Sets which zoom methods get animated.
 void setZoomAsText(String zoomString)
          Sets zoom to the passed string.
 void setZoomLevels(double[] zoomLevels)
          Sets the zoomLevels.
 void zoomIn()
          Sets the zoom level to be one level higher
 void zoomOut()
          Sets the zoom level to be one level lower
 void zoomTo(Rectangle rect)
          Currently does nothing.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ANIMATE_NEVER

public static final int ANIMATE_NEVER
Style bit meaning don't animate any zooms

See Also:
Constant Field Values

ANIMATE_ZOOM_IN_OUT

public static final int ANIMATE_ZOOM_IN_OUT
Style bit meaning animate during zoomIn() and zoomOut()

See Also:
Constant Field Values
Constructor Detail

ZoomManager

public ZoomManager(ScalableFigure pane,
                   Viewport viewport)
Creates a new ZoomManager

Parameters:
pane - The ScalableFigure associated with this ZoomManager
viewport - The Viewport assoicated with this viewport

ZoomManager

public ZoomManager(ScalableFreeformLayeredPane pane,
                   Viewport viewport)
Deprecated. Use ZoomManager(ScalableFigure, Viewport) instead. Creates a new ZoomManager

Parameters:
pane - The ScalableFreeformLayeredPane associated with this ZoomManager
viewport - The Viewport assoicated with this viewport
Method Detail

addZoomListener

public void addZoomListener(ZoomListener listener)
Adds the given ZoomListener to this ZoomManager's list of listeners.

Parameters:
listener - the ZoomListener to be added

canZoomIn

public boolean canZoomIn()
returns true if the zoommanager can perform zoomIn().

Returns:
boolean true if zoomIn can be called

canZoomOut

public boolean canZoomOut()
returns true if the zoommanager can perform zoomOut().

Returns:
boolean true if zoomOut can be called

fireZoomChanged

protected void fireZoomChanged()
Notifies listeners that the zoom level has changed.


getMaxZoom

public double getMaxZoom()
Returns the maxZoom.

Returns:
double

getMinZoom

public double getMinZoom()
Returns the minZoom.

Returns:
double

getUIMultiplier

public double getUIMultiplier()
Returns the mutltiplier. This value is used to use zoom levels internally that are proportionally different than those displayed to the user. e.g. with a multiplier value of 2.0, the zoom level 1.0 will be displayed as "200%".

Returns:
double The multiplier

getNextZoomLevel

public double getNextZoomLevel()
Returns the zoom level that is one level higher than the current level. If zoom level is at maximum, returns the maximum.

Returns:
double The next zoom level

getPane

public ScalableFreeformLayeredPane getPane()
Deprecated. Use getScalableFigure() instead. Returns the pane.

Returns:
the pane

getPreviousZoomLevel

public double getPreviousZoomLevel()
Returns the zoom level that is one level higher than the current level. If zoom level is at maximum, returns the maximum.

Returns:
double The previous zoom level

getScalableFigure

public ScalableFigure getScalableFigure()
Returns the figure which performs the actual zooming.

Returns:
the scalable figure

getViewport

public Viewport getViewport()
Returns the viewport.

Returns:
Viewport

getZoom

public double getZoom()
Returns the current zoom level.

Returns:
double the zoom level

getZoomAsText

public String getZoomAsText()
Returns the current zoom level as a percentage formatted String

Returns:
String The current zoom level as a String

getZoomLevels

public double[] getZoomLevels()
Returns the zoomLevels.

Returns:
double[]

getZoomLevelsAsText

public String[] getZoomLevelsAsText()
Returns the list of zoom levels as Strings in percent notation

Returns:
List The list of zoom levels

removeZoomListener

public void removeZoomListener(ZoomListener listener)
Removes the given ZoomListener from this ZoomManager's list of listeners.

Parameters:
listener - the ZoomListener to be removed

setUIMultiplier

public void setUIMultiplier(double multiplier)
Sets the UI multiplier. The UI multiplier is applied to all zoom settings when they are presented to the user (getZoomAsText()). Similarly, the multiplier is inversely applied when the user specifies a zoom level (setZoomAsText(String)).

When the UI multiplier is 1.0, the User will see the exact zoom level that is being applied. If the value is 2.0, then a scale of 0.5 will be labeled "100%" to the User.

Parameters:
multiplier - The mutltiplier to set

setViewLocation

public void setViewLocation(Point p)
Sets the Viewport's view associated with this ZoomManager to the passed Point

Parameters:
p - The new location for the Viewport's view.

setZoom

public void setZoom(double zoom)
Sets the zoom level to the given value.

Parameters:
zoom - the new zoom level

setZoomAnimationStyle

public void setZoomAnimationStyle(int style)
Sets which zoom methods get animated.

Parameters:
style - the style bits determining the zoom methods to be animated.

setZoomAsText

public void setZoomAsText(String zoomString)
Sets zoom to the passed string. The string must be composed of numeric characters only with the exception of a decimal point and a '%' as the last character.

Parameters:
zoomString - The new zoom level

setZoomLevels

public void setZoomLevels(double[] zoomLevels)
Sets the zoomLevels.

Parameters:
zoomLevels - The zoomLevels to set

zoomIn

public void zoomIn()
Sets the zoom level to be one level higher


zoomTo

public void zoomTo(Rectangle rect)
Currently does nothing.

Parameters:
rect - a rectangle

zoomOut

public void zoomOut()
Sets the zoom level to be one level lower


Eclipse GEF
2.1

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.