Eclipse GEF 3.2

## 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:

- `ZoomInAction`
- `ZoomOutAction`
- and `ZoomComboContributionItem`

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.

NOTE: For the settings of `Page`, `Width` and `Height` to work properly, the given `Viewport` should have its scrollbars always visible or never visible. Otherwise, these settings may cause undesired effects.

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()`
`static String` `FIT_ALL` String constant for the "Page" zoom level.
`static String` `FIT_HEIGHT` String constant for the "Height" zoom level.
`static String` `FIT_WIDTH` String constant for the "Width" zoom level.

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.
`protected double` `getFitHeightZoomLevel()` Calculates and returns the zoom percent required so that the entire height of the `scalable figure` is visible on the screen.
`protected double` `getFitPageZoomLevel()` Calculates and returns the zoom percentage required to fit the entire `scalable figure` on the screen.
`protected double` `getFitWidthZoomLevel()` Calculates and returns the zoom percentage required so that the entire width of the `scalable figure` is visible on the screen.
`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
`List` `getZoomLevelContributions()` Returns the list of strings that should be appended to the list of numerical zoom levels.
`double[]` `getZoomLevels()` Returns the zoomLevels.
`String[]` `getZoomLevelsAsText()` Returns the list of zoom levels as Strings in percent notation, plus any additional zoom levels that were contributed using `setZoomLevelContributions(List)`.
`protected void` `primSetZoom(double zoom)` Sets the zoom level to the given value.
`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` `setZoomLevelContributions(List contributions)` Sets the list of zoom level contributions (as strings).
`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

### FIT_HEIGHT

    public static final String FIT_HEIGHT

  String constant for the "Height" zoom level. At this zoom level, the zoom manager will adopt a zoom setting such that the entire height of the diagram will be visible on the screen.

### FIT_WIDTH

    public static final String FIT_WIDTH

  String constant for the "Width" zoom level. At this zoom level, the zoom manager will adopt a zoom setting such that the entire width of the diagram will be visible on the screen.

### FIT_ALL

    public static final String FIT_ALL

  String constant for the "Page" zoom level. At this zoom level, the zoom manager will adopt a zoom setting such that the entire diagram will be visible on the screen.

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 ZoomManager

### 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.

### getFitHeightZoomLevel

    protected double getFitHeightZoomLevel()

  Calculates and returns the zoom percent required so that the entire height of the `scalable figure` is visible on the screen. This is the zoom level associated with `FIT_HEIGHT`.

  Returns:
    zoom setting required to fit the scalable figure vertically on the screen

### getFitPageZoomLevel

    protected double getFitPageZoomLevel()

  Calculates and returns the zoom percentage required to fit the entire `scalable figure` on the screen. This is the zoom setting associated with `FIT_ALL`. It is the minimum of `getFitHeightZoomLevel()` and `getFitWidthZoomLevel()`.

  Returns:
    zoom setting required to fit the entire scalable figure on the screen

### getFitWidthZoomLevel

    protected double getFitWidthZoomLevel()

  Calculates and returns the zoom percentage required so that the entire width of the `scalable figure` is visible on the screen. This is the zoom setting associated with `FIT_WIDTH`.

  Returns:
    zoom setting required to fit the scalable figure horizontally on the screen

### 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

### getZoomLevelContributions

    public List getZoomLevelContributions()

  Returns the list of strings that should be appended to the list of numerical zoom levels. These could be things such as Fit Width, Fit Page, etc. May return `null`.

  Returns:
    the list of contributed zoom levels

### getZoomLevels

    public double[] getZoomLevels()

  Returns the zoomLevels.

  Returns:
    double[]

### getZoomLevelsAsText

    public String[] getZoomLevelsAsText()

  Returns the list of zoom levels as Strings in percent notation, plus any additional zoom levels that were contributed using `setZoomLevelContributions(List)`.

  Returns:
    List The list of zoom levels

### primSetZoom

    protected void primSetZoom(double zoom)

  Sets the zoom level to the given value. Min-max range check is not done.

  Parameters:
    `zoom` - the new zoom level

### 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. If the zoom is out of the min-max range, it will be ignored.

  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. If the zoom level contribution list has been set, this method should be overridden to provide the appropriate zoom implementation for the new zoom levels.

  Parameters:
    `zoomString` - The new zoom level

### setZoomLevelContributions

    public void setZoomLevelContributions(List contributions)

  Sets the list of zoom level contributions (as strings). If you contribute something other than `FIT_HEIGHT`, `FIT_WIDTH` and `FIT_ALL` you must subclass this class and override this method to implement your contributed zoom function.

  Parameters:
    `contributions` - the list of contributed zoom levels

### 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 3.2

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