org.eclipse.gef.editparts
Class ZoomManager
java.lang.Object
org.eclipse.gef.editparts.ZoomManager
- public class ZoomManager
- extends java.lang.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.
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 java.lang.String
|
FIT_ALL
String constant for the "Page" zoom level. |
static java.lang.String
|
FIT_HEIGHT
String constant for the "Height" zoom level. |
static java.lang.String
|
FIT_WIDTH
String constant for the "Width" zoom level. |
Methods inherited from class java.lang.Object
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
|
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 java.lang.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 java.lang.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 java.lang.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.
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
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 java.lang.String getZoomAsText()
- Returns the current zoom level as a percentage formatted String
-
-
Returns:
- String The current zoom level as a String
getZoomLevelContributions
public java.util.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 java.lang.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(java.lang.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(java.util.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
-
Copyright (c) IBM Corp. and others 2000, 2007. All Rights Reserved.