blob: 8a393a33af823b75ec78e33b5520cbc947820eca [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 Sybase, Inc. and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jsf.facesconfig.ui.pageflow;
// import org.eclipse.core.runtime.ListenerList;
import org.eclipse.core.runtime.ListenerList;
import org.eclipse.draw2d.ScalableFigure;
import org.eclipse.draw2d.Viewport;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.editparts.ZoomListener;
import org.eclipse.gef.editparts.ZoomManager;
/**
* A delegating ZoomManager.
*
*/
public class DelegatingZoomManager extends ZoomManager implements ZoomListener {
/** Default string or double value of zoom level */
private static final String DEFAULT_ZOOM_LEVEL_STRING = "100%"; //$NON-NLS-1$
private static final double DEFAULT_ZOOM_LEVEL = 1;
/** the current ZoomManager all work is delegated to */
private ZoomManager currentZoomManager = null;
/** listeners of zoom */
private ListenerList zoomListeners = new ListenerList(
ListenerList.IDENTITY);
/**
* Creates a new DelegatingZoomManager instance.
*/
public DelegatingZoomManager() {
super((ScalableFigure) null, (Viewport) null);
}
/*
* (non-Javadoc)
*
* @see ZoomListener#zoomChanged(double)
*/
public void zoomChanged(double zoom) {
Object[] listeners = zoomListeners.getListeners();
for (int i = 0; i < listeners.length; ++i) {
((ZoomListener) listeners[i]).zoomChanged(zoom);
}
}
/*
* (non-Javadoc)
*
* @see ZoomManager#addZoomListener(ZoomListener)
*/
public void addZoomListener(ZoomListener listener) {
zoomListeners.add(listener);
}
/*
* (non-Javadoc)
*
* @see ZoomManager#removeZoomListener(oZoomListener)
*/
public void removeZoomListener(ZoomListener listener) {
zoomListeners.remove(listener);
}
/**
* Sets the ZoomManager all work should be delegated to.
*
* @param zoomManager
*/
public void setCurrentZoomManager(ZoomManager zoomManager) {
if (null != currentZoomManager) {
currentZoomManager.removeZoomListener(this);
}
currentZoomManager = zoomManager;
if (null != currentZoomManager) {
currentZoomManager.addZoomListener(this);
zoomChanged(currentZoomManager.getZoom());
}
}
/*
* (non-Javadoc)
*
* @see ZoomManager#canZoomIn()
*/
public boolean canZoomIn() {
if (null == currentZoomManager) {
return false;
}
return currentZoomManager.canZoomIn();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#canZoomOut()
*/
public boolean canZoomOut() {
if (null == currentZoomManager) {
return false;
}
return currentZoomManager.canZoomOut();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getMaxZoom()
*/
public double getMaxZoom() {
if (null == currentZoomManager) {
return DEFAULT_ZOOM_LEVEL;
}
return currentZoomManager.getMaxZoom();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getMinZoom()
*/
public double getMinZoom() {
if (null == currentZoomManager) {
return DEFAULT_ZOOM_LEVEL;
}
return currentZoomManager.getMinZoom();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getNextZoomLevel()
*/
public double getNextZoomLevel() {
if (null == currentZoomManager) {
return DEFAULT_ZOOM_LEVEL;
}
return currentZoomManager.getNextZoomLevel();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getPreviousZoomLevel()
*/
public double getPreviousZoomLevel() {
if (null == currentZoomManager) {
return DEFAULT_ZOOM_LEVEL;
}
return currentZoomManager.getPreviousZoomLevel();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getScalableFigure()
*/
public ScalableFigure getScalableFigure() {
if (null == currentZoomManager) {
return null;
}
return currentZoomManager.getScalableFigure();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getUIMultiplier()
*/
public double getUIMultiplier() {
if (null == currentZoomManager) {
return DEFAULT_ZOOM_LEVEL;
}
return currentZoomManager.getUIMultiplier();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getViewport()
*/
public Viewport getViewport() {
if (null == currentZoomManager) {
return null;
}
return currentZoomManager.getViewport();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getZoom()
*/
public double getZoom() {
if (null == currentZoomManager) {
return DEFAULT_ZOOM_LEVEL;
}
return currentZoomManager.getZoom();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getZoomAsText()
*/
public String getZoomAsText() {
if (null == currentZoomManager) {
return DEFAULT_ZOOM_LEVEL_STRING;
}
return currentZoomManager.getZoomAsText();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getZoomLevels()
*/
public double[] getZoomLevels() {
if (null == currentZoomManager) {
return new double[] { DEFAULT_ZOOM_LEVEL };
}
return currentZoomManager.getZoomLevels();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#getZoomLevelsAsText()
*/
public String[] getZoomLevelsAsText() {
if (null == currentZoomManager) {
return new String[] { DEFAULT_ZOOM_LEVEL_STRING };
}
return currentZoomManager.getZoomLevelsAsText();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#setUIMultiplier(double)
*/
public void setUIMultiplier(double multiplier) {
if (null == currentZoomManager) {
return;
}
currentZoomManager.setUIMultiplier(multiplier);
}
/*
* (non-Javadoc)
*
* @see ZoomManager#setViewLocation(Point)
*/
public void setViewLocation(Point p) {
if (null == currentZoomManager) {
return;
}
currentZoomManager.setViewLocation(p);
}
/*
* (non-Javadoc)
*
* @see ZoomManager#setZoom(double)
*/
public void setZoom(double zoom) {
if (null == currentZoomManager) {
return;
}
currentZoomManager.setZoom(zoom);
}
/*
* (non-Javadoc)
*
* @see ZoomManager#setZoomAnimationStyle(int)
*/
public void setZoomAnimationStyle(int style) {
if (null == currentZoomManager) {
return;
}
currentZoomManager.setZoomAnimationStyle(style);
}
/*
* (non-Javadoc)
*
* @see ZoomManager#setZoomAsText(String)
*/
public void setZoomAsText(String zoomString) {
if (null == currentZoomManager) {
return;
}
currentZoomManager.setZoomAsText(zoomString);
}
/*
* (non-Javadoc)
*
* @see ZoomManager#setZoomLevels(double[])
*/
public void setZoomLevels(double[] zoomLevels) {
if (null == currentZoomManager) {
return;
}
currentZoomManager.setZoomLevels(zoomLevels);
}
/*
* (non-Javadoc)
*
* @see ZoomManager#zoomIn()
*/
public void zoomIn() {
if (null == currentZoomManager) {
return;
}
currentZoomManager.zoomIn();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#zoomOut()
*/
public void zoomOut() {
if (null == currentZoomManager) {
return;
}
currentZoomManager.zoomOut();
}
/*
* (non-Javadoc)
*
* @see ZoomManager#zoomTo(Rectangle)
*/
public void zoomTo(Rectangle rect) {
if (null == currentZoomManager) {
return;
}
currentZoomManager.zoomTo(rect);
}
}