org.apache.batik.anim.timing
public abstract class TimedElement extends Object implements SMILConstants
Field Summary | |
---|---|
protected LinkedList | beginDependents
List of TimingSpecifiers on other elements that depend on this
element's begin times. |
protected List | beginInstanceTimes
List of begin InstanceTimes. |
protected TimingSpecifier[] | beginTimes
Timing specifiers for the begin times of this element. |
protected Interval | currentInterval
The current Interval. |
protected int | currentRepeatIteration
The current repeat iteration. |
protected boolean | durMedia
Whether the simple duration of this element should be equal
to the implicit duration. |
protected LinkedList | endDependents
List of TimingSpecifiers on other elements that depend on this
element's end times. |
protected List | endInstanceTimes
List of end InstanceTimes. |
protected TimingSpecifier[] | endTimes
Timing specifiers for the end times of this element. |
protected int | fillMode
The fill mode for this element. |
static int | FILL_FREEZE |
static int | FILL_REMOVE |
protected Map | handledEvents
Map of {@link Event} objects to {@link HashSet}s of {@link
TimingSpecifier}s that caught them. |
protected boolean | hasParsed
Whether this timed element has parsed its timing attributes yet. |
protected boolean | hasPropagated
Whether an instance time update message has already been propagated to
this timed element. |
protected boolean | isActive
Whether the element is currently active. |
protected boolean | isFrozen
Whether the element is currently frozen. |
protected boolean | isSampling
Whether this timed element is currently being sampled. |
static float | INDEFINITE |
protected float | lastIntervalEnd
The end time of the previous interval, initially
{@link Float#NEGATIVE_INFINITY}. |
protected float | lastRepeatTime
The local active time of the last repeat. |
protected float | lastSampleTime
The current time of this element in local active time. |
protected static LocalizableSupport | localizableSupport
The localizable support for the error messages. |
protected float | max
The maximum active duration of this element. |
protected boolean | maxMedia
Whether the max value was specified as 'media'. |
protected float | min
The minimum active duration of this element. |
protected boolean | minMedia
Whether the min value was specified as 'media'. |
protected TimeContainer | parent
The parent time container. |
protected LinkedList | previousIntervals
List of previous intervals. |
protected float | repeatCount
The number of repeats. |
protected float | repeatDur
The duration of repeats. |
protected float | repeatDuration
The computed repeat duration of the element. |
protected int | restartMode
The restart mode for this element. |
protected TimedDocumentRoot | root
The root time container. |
protected static String | RESOURCES
The error messages bundle class name. |
static int | RESTART_ALWAYS |
static int | RESTART_NEVER |
static int | RESTART_WHEN_NOT_ACTIVE |
protected boolean | shouldUpdateCurrentInterval
Whether the list of instance times should be checked to update
the current interval. |
protected float | simpleDur
Duration of this element, if {@link #durMedia} = false .
|
static float | UNRESOLVED |
Constructor Summary | |
---|---|
TimedElement()
Creates a new TimedElement. |
Method Summary | |
---|---|
protected void | addDependent(TimingSpecifier dependent, boolean forBegin)
Adds a dependent TimingSpecifier for this element. |
protected float | addInstanceTime(InstanceTime time, boolean isBegin)
Called by a TimingSpecifier of this element when a new
InstanceTime is created. |
void | beginElement()
Adds a time to the begin time instance list that will cause
the element to begin immediately (if restart semantics allow it). |
void | beginElement(float offset)
Adds a time to the begin time instance list that will cause
the element to begin at some offset to the current time (if restart
semantics allow it). |
boolean | canBegin()
Returns whether this element can be begun or restarted currently. |
boolean | canEnd()
Returns whether this element can be ended currently. |
protected Interval | computeInterval(boolean first, boolean fixedBegin, float beginAfter)
Computes an interval from the begin and end instance time lists. |
AnimationException | createException(String code, Object[] params)
Creates and returns a new {@link AnimationException}. |
void | deinitialize()
Deinitializes this timed element. |
void | endElement()
Adds a time to the end time instance list that will cause
the element to end immediately (if restart semantics allow it). |
void | endElement(float offset)
Adds a time to the end time instance list that will cause
the element to end at some offset to the current time (if restart
semantics allow it). |
protected boolean | endHasEventConditions()
Returns whether the end timing specifier list contains any eventbase,
accesskey or repeat timing specifiers. |
protected void | fireTimeEvent(String eventType, float time, int detail)
Fires a TimeEvent of the given type on this element. |
protected abstract void | fireTimeEvent(String eventType, Calendar time, int detail)
Fires a TimeEvent of the given type on this element. |
static String | formatMessage(String key, Object[] args)
Implements {@link
org.apache.batik.i18n.Localizable#formatMessage(String,Object[])}. |
float | getActiveDur(float B, float end)
Returns the active duration time of this element. |
float | getActiveTime()
Returns the current active time of this element. |
protected abstract EventTarget | getAnimationEventTarget()
Returns the target of this animation as an {@link EventTarget}. |
float | getCurrentBeginTime()
Returns the begin time of the current interval, in parent simple time,
or Float.NaN if the element is not active. |
abstract Element | getElement()
Returns the DOM element that corresponds to this timed element, if
such a DOM element exists. |
protected abstract EventTarget | getEventTargetById(String id)
Returns the event target with the given ID. |
protected float | getImplicitDur()
Returns the implicit duration of the element. |
float | getLastSampleTime()
Returns the last sample time of this element, in local active time. |
static Locale | getLocale()
Implements {@link org.apache.batik.i18n.Localizable#getLocale()}. |
TimedDocumentRoot | getRoot()
Returns the root time container of this timed element. |
protected abstract EventTarget | getRootEventTarget()
Returns the event target that should be listened to for
access key events. |
float | getSimpleDur()
Returns the simple duration time of this element. |
float | getSimpleTime()
Returns the current simple time of this element. |
protected abstract TimedElement | getTimedElementById(String id)
Returns the timed element with the given ID. |
void | initialize()
Initializes this timed element. |
protected float | instanceTimeChanged(InstanceTime time, boolean isBegin)
Called by a TimingSpecifier of this element when an InstanceTime
has been updated. |
abstract boolean | isBefore(TimedElement other)
Returns whether this timed element comes before the given timed element
in document order. |
protected abstract boolean | isConstantAnimation()
Returns whether this timed element is for a constant animation (i.e., a
'set' animation. |
static boolean | isUnresolved(float t)
Returns whether the given time value is equal to the
{@link #UNRESOLVED} value. |
protected float | maxTime(float t1, float t2)
Returns the maximum of two time values. |
protected float | minTime(float t1, float t2)
Returns the minimum of two time values. |
protected float | minusTime(float t1, float t2)
Subtracts one simple time from another. |
protected float | multiplyTime(float t, float n)
Multiplies one simple time by n. |
protected float | notifyNewInterval(Interval interval)
Notifies dependents of a new interval. |
protected float | notifyRemoveInterval(Interval interval)
Notifies dependents of a removed interval. |
void | parseAttributes(String begin, String dur, String end, String min, String max, String repeatCount, String repeatDur, String fill, String restart)
Parses the animation attributes for this timed element. |
protected void | parseBegin(String begin)
Parses a new 'begin' attribute. |
protected float | parseClockValue(String s, boolean parseOffset)
Parses a clock value or offset and returns it as a float. |
protected void | parseDur(String dur)
Parses a new 'dur' attribute. |
protected void | parseEnd(String end)
Parses a new 'end' attribute. |
protected void | parseFill(String fill)
Parses a new 'fill' attribute. |
protected void | parseMax(String max)
Parses a new 'max' attribute. |
protected void | parseMin(String min)
Parses a new 'min' attribute. |
protected void | parseRepeatCount(String repeatCount)
Parses a new 'repeatCount' attribute. |
protected void | parseRepeatDur(String repeatDur)
Parses a new 'repeatDur' attribute. |
protected void | parseRestart(String restart)
Parses a new 'restart' attribute. |
protected void | removeDependent(TimingSpecifier dependent, boolean forBegin)
Removes a dependent TimingSpecifier for this element. |
protected abstract void | removeFill()
Invoked to indicate that this timed element has had its fill removed. |
protected float | removeInstanceTime(InstanceTime time, boolean isBegin)
Called by a TimingSpecifier of this element when an InstanceTime
should be removed. |
protected void | reset(boolean clearCurrentBegin)
Resets this element. |
protected float | sampleAt(float parentSimpleTime, boolean hyperlinking)
Calculates the local simple time. |
protected abstract void | sampledAt(float simpleTime, float simpleDur, int repeatIteration)
Invoked to indicate that this timed element has been sampled at the
given time. |
protected abstract void | sampledLastValue(int repeatIteration)
Invoked to indicate that this timed element has been sampled
at the end of its active time, at an integer multiple of the
simple duration. |
protected float | selectNewInterval(float time, Interval interval)
Sets the current interval to the one specified. |
static void | setLocale(Locale l)
Implements {@link org.apache.batik.i18n.Localizable#setLocale(java.util.Locale)}. |
protected abstract void | toActive(float begin)
Invoked to indicate this timed element became active at the
specified time. |
protected abstract void | toInactive(boolean stillActive, boolean isFrozen)
Invoked to indicate that this timed element became inactive. |
static String | toString(float time)
Returns a string representation of the given time value. |
= true
, it will be {@link #INDEFINITE}.= true
, it will be 0f
.= false
.
If unspecified, it will be {@link #UNRESOLVED}.Parameters: first indicates whether this is the first interval to compute fixedBegin if true, specifies that the value given for {@code beginAfter} is taken to be the actual begin time for the interval; only the end value is computed. beginAfter the earliest possible begin time for the computed interval.
Parameters: eventType the type of TimeEvent ("beginEvent", "endEvent" or "repeatEvent"). time the timestamp of the event object detail the repeat iteration, if this event is a repeat event
Parameters: eventType the type of TimeEvent ("beginEvent", "endEvent" or "repeatEvent"). time the timestamp of the event object
Float.NaN
if the element is not active.Returns: the number of seconds until this element becomes active again
if it currently is not, {@link Float#POSITIVE_INFINITY} if this
element will become active at some undetermined point in the
future (because of unresolved begin times, for example) or
will never become active again, or 0f
if the
element is currently active.
Parameters: simpleTime the sample time in local simple time simpleDur the simple duration of the element repeatIteration the repeat iteration during which the element was sampled
Parameters: time the current sampling time interval the Interval object to select to be current
Returns: the minimum time the animation engine can safely wait, as determined by dependents of the interval
Parameters: begin the time the element became active, in document simple time
Parameters: stillActive if true, indicates that the element is still actually active, but between the end of the computed repeat duration and the end of the interval isFrozen whether the element is frozen or not