All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.draw2d.Animator Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright (c) 2005, 2010 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

package org.eclipse.draw2d;

/**
 * Animates some aspect of a figure. Each animator will capture some of the
 * effects of validation of the figures.
 * 

* Animators must be hooked to figure in special ways. Refer to each * implementation for the specific requirements. Animators are generally * stateless, which allows them to be shared and prevents them from leaking * memory. * * @since 3.2 */ public abstract class Animator { Animator() { } /** * Captures the final state of the given figure. This method is called once * after the update manager has completed validation of all invalid figures. * * @param figure * the container * @since 3.2 */ public void capture(IFigure figure) { recordFinalState(figure); } /** * Returns an object encapsulating the current state of the figure. This * method is called to capture both the initial and final states. * * @param figure * the figure * @return the current state * @since 3.2 */ protected abstract Object getCurrentState(IFigure figure); /** * Plays back the animation for the given figure and returns * true if successful. This method does nothing by default and * return false. * * @param figure * the figure being animated * @return true if playback was successful * @since 3.2 */ protected boolean playback(IFigure figure) { return false; } /** * Sent as playback is starting for a given figure. * * @param figure * the figure * @since 3.2 */ public void playbackStarting(IFigure figure) { } /** * Records the final state information for a figure. * * @param figure * the figure * @since 3.2 */ protected void recordFinalState(IFigure figure) { Animation.putFinalState(this, figure, getCurrentState(figure)); } /** * Records initial state information for the given figure. * * @param figure * the container. * @since 3.2 */ protected void recordInitialState(IFigure figure) { Animation.putInitialState(this, figure, getCurrentState(figure)); } /** * Sets up the animator for the given figure to be animated. This method is * called exactly once time prior to any layouts happening. The animator can * capture the figure's current state, and set any animation-time settings * for the figure. Changes made to the figure should be reverted in * {@link #tearDown(IFigure)}. * * @param figure * the animated figure * @since 3.2 */ public void init(IFigure figure) { recordInitialState(figure); } /** * Reverts any temporary changes made to the figure during animation. This * method is called exactly once after all animation has been completed. * Subclasses should extend this method to revert any changes. * * @param figure * the animated figure * @since 3.2 * @see #init(IFigure) */ public void tearDown(IFigure figure) { } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy