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

org.havi.ui.HAnimateEffect Maven / Gradle / Ivy

The newest version!
package org.havi.ui;

/*
 * Copyright 2000-2003 by HAVi, Inc. Java is a trademark of Sun
 * Microsystems, Inc. All rights reserved.  
 */


/**
   The {@link org.havi.ui.HAnimateEffect HAnimateEffect} interface
   defines effect constants and controls for time-varying animations.
   


Implementations of HAnimateEffect should have the following default behaviors:

  • By default the {@link org.havi.ui.HAnimateEffect HAnimateEffect} should be stopped. Hence, to start an {@link org.havi.ui.HAnimateEffect HAnimateEffect} the {@link org.havi.ui.HAnimateEffect#start start} method must be explicitly invoked. This mechanism allows for animations that are programmatically controlled, e.g. via the {@link org.havi.ui.HAnimateEffect#setPosition setPosition} method.
  • By default the position for rendering should be the first image in the sequence, i.e. 0.
  • By default the play mode should be {@link org.havi.ui.HAnimateEffect#PLAY_REPEATING PLAY_REPEATING}.
  • By default the repeat count should be {@link org.havi.ui.HAnimateEffect#REPEAT_INFINITE REPEAT_INFINITE}.
  • The default rendering should simply display the single image at the current position of the animation within the sequence.
*/ public interface HAnimateEffect { /** * Indicates that the animation should be played forwards (in a * repeating loop).

The images are rendered in the same order * that they are present in the sequence (array): *

0, 1, 2, 3, ... length-1

* If the animation has not repeated sufficiently, then the * rendering of the sequence is restarted from the first * image, i.e. the images will continue to be rendered in the * order: *

0, 1, 2, 3, ... length-1

* Each rendering of the sequence of images 0 to (length-1), * should be considered as a single "repeat". */ public static final int PLAY_REPEATING = 1; /** * Indicates that the animation should be played in a repeating * loop, alternating between the forward and reverse direction. *

The images are rendered in the same order that they are * present in the sequence (array): *

0, 1, 2, 3, ... length-2, length-1

* If the animation has not repeated sufficiently, then the * rendering of the sequence is reversed - i.e. the images are * rendered in the order *

length-2, length-3, ... 1, 0

* If the animation has not repeated sufficiently, then the * rendering of the sequence is reversed (again) back to a * forwards direction. I.e. the images are rendered in the order *

1, 2, 3, ... length-2, length-1

* Each rendering of the sequence of images forwards or backwards, * should be considered as a single "repeat". *

Note that when the sequence repeats, the last image (first * image) is not rendered consecutively, i.e. twice. */ public static final int PLAY_ALTERNATING = 2; /** * This value, when passed to setRepeatCount, * indicates that the animation shall repeat until the {@link * org.havi.ui.HAnimateEffect#stop stop} method is invoked. */ public static final int REPEAT_INFINITE = -1; /** * This method starts this {@link org.havi.ui.HAnimateEffect * HAnimateEffect} playing. If start is called when * the animation is already running it resets the animation * according to the current play mode, as returned by {@link * org.havi.ui.HAnimateEffect#getPlayMode getPlayMode}. */ public void start(); /** * This method indicates that the running {@link * org.havi.ui.HAnimateEffect HAnimateEffect} should be * stopped. After calling this method, there is no guarantee that * one or more frames will not be displayed before the animation * actually stops playing. If the animation is already stopped * further calls to stop have no effect. */ public void stop(); /** * This method indicates the animation (running) state of the * {@link org.havi.ui.HAnimateEffect HAnimateEffect}. * * @return true if this {@link org.havi.ui.HAnimateEffect * HAnimateEffect} is running, i.e. the start method * has been invoked - false otherwise. */ public boolean isAnimated(); /** * Set this {@link org.havi.ui.HAnimateEffect HAnimateEffect} to * display the content at the specified position. If the animation * is already running a call to setPosition will * change the current value and affect the animation immediately. * * @param position an index into the content array which specifies * the next piece of content to be displayed. If * position is less than 0, then the array element at * index 0 is displayed, if position is greater than * or equal to the length of the content array, then the array * element at index [length-1] will be used. */ public void setPosition(int position); /** * Get the current index into the content array which this {@link * org.havi.ui.HAnimateEffect HAnimateEffect} is using to display * content. * * @return the index of the content currently being displayed, in * the range 0 <= index < length */ public int getPosition(); /** * Sets the number of times that this {@link * org.havi.ui.HAnimateEffect HAnimateEffect} should be played. * If the animation is already running a call to * setRepeatCount will change the current value and * reset the current number of repeats to 0, affecting the * animation immediately. * * @param count the number of times that an {@link * org.havi.ui.HAnimateEffect HAnimateEffect} should be * played. Valid values of the repeat count are one or more, and * {@link org.havi.ui.HAnimateEffect#REPEAT_INFINITE * REPEAT_INFINITE}. */ public void setRepeatCount(int count); /** * Gets the number of times that this {@link org.havi.ui.HAnimateEffect * HAnimateEffect} is to be played. Note that this method does not * return the number of repeats that are remaining to be played. *

* Except for HAnimateEffect implementations that specify a * different default, getRepeatCount() returns * REPEAT_INFINITE if no call to * setRepeatCount() has previously been made. * * @return the total number of times that an {@link * org.havi.ui.HAnimateEffect HAnimateEffect} is to be played. The * returned value shall be greater than zero, or {@link * org.havi.ui.HAnimateEffect#REPEAT_INFINITE REPEAT_INFINITE}. */ public int getRepeatCount(); /** * Sets the delay between the presentation of successive pieces of * content (frames). *

* After calling {@link org.havi.ui.HAnimateEffect#setDelay * setDelay} on a currently playing {@link * org.havi.ui.HAnimateEffect HAnimateEffect}, there is no * guarantee that one or more frames will not be displayed using * the previous delay until the new delay value takes effect. * * @param count the content presentation delay in units of 0.1 * seconds duration. If count is less than one "unit", * then it shall be treated as if it were a delay of one * "unit", i.e. 0.1 seconds. */ public void setDelay(int count); /** * Gets the presentation delay for this {@link * org.havi.ui.HAnimateEffect HAnimateEffect}. * * @return the presentation delay in units of 0.1 seconds. */ public int getDelay(); /** * Sets the playing mode for this {@link org.havi.ui.HAnimateEffect * HAnimateEffect}. If the animation is already running a call to * setPlayMode will change the current value and * affect the animation immediately. The position of the animation * is unchanged. * * @param mode the play mode for this {@link * org.havi.ui.HAnimateEffect HAnimateEffect}, which must be either {@link * org.havi.ui.HAnimateEffect#PLAY_ALTERNATING} or {@link * org.havi.ui.HAnimateEffect#PLAY_REPEATING}. */ public void setPlayMode(int mode); /** * Gets the playing mode for this {@link org.havi.ui.HAnimateEffect * HAnimateEffect}. * * @return the play mode for this {@link * org.havi.ui.HAnimateEffect HAnimateEffect}. */ public int getPlayMode(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy