org.apache.batik.anim.timing
Class TimedDocumentRoot

java.lang.Object
  extended byorg.apache.batik.anim.timing.TimedElement
      extended byorg.apache.batik.anim.timing.TimeContainer
          extended byorg.apache.batik.anim.timing.TimedDocumentRoot
All Implemented Interfaces:
SMILConstants
Direct Known Subclasses:
SVGAnimationEngine.AnimationRoot

public abstract class TimedDocumentRoot
extends TimeContainer

An abstract base class for the root time container element for a document.


Field Summary
protected  Calendar documentBeginTime
          The wallclock time that the document began.
protected  boolean isHyperlinking
          Whether the document is currently being sampled for a hyperlink.
protected  boolean isSampling
          Whether the document is currently being sampled.
protected  LinkedList listeners
          List of {link TimegraphListener}s to be notified of changes to the timed elements in this document.
protected  DoublyIndexedSet propagationFlags
          A set to determine when propagation of new Instance times should be stopped.
protected  boolean useSVG11AccessKeys
          Allows the use of accessKey() timing specifiers with a single character, as specified in SVG 1.1.
protected  boolean useSVG12AccessKeys
          Allows the use of accessKey() timing specifiers with a DOM 3 key name, as specified in SVG 1.2.
 
Fields inherited from class org.apache.batik.anim.timing.TimeContainer
children
 
Fields inherited from class org.apache.batik.anim.timing.TimedElement
beginDependents, beginInstanceTimes, beginTimes, currentInterval, currentRepeatIteration, durMedia, endDependents, endInstanceTimes, endTimes, FILL_FREEZE, FILL_REMOVE, fillMode, handledEvents, hasParsed, hasPropagated, INDEFINITE, isActive, isFrozen, lastIntervalEnd, lastRepeatTime, lastSampleTime, localizableSupport, max, maxMedia, min, minMedia, parent, previousInterval, repeatCount, repeatDur, repeatDuration, RESOURCES, RESTART_ALWAYS, RESTART_NEVER, RESTART_WHEN_NOT_ACTIVE, restartMode, root, shouldUpdateCurrentInterval, simpleDur, UNRESOLVED
 
Fields inherited from interface org.apache.batik.util.SMILConstants
SMIL_ACCUMULATE_ATTRIBUTE, SMIL_ADDITIVE_ATTRIBUTE, SMIL_ALWAYS_VALUE, SMIL_ANIMATE_COLOR_TAG, SMIL_ANIMATE_MOTION_TAG, SMIL_ANIMATE_TAG, SMIL_ATTRIBUTE_NAME_ATTRIBUTE, SMIL_ATTRIBUTE_TYPE_ATTRIBUTE, SMIL_AUTO_VALUE, SMIL_BEGIN_ATTRIBUTE, SMIL_BEGIN_DEFAULT_VALUE, SMIL_BEGIN_EVENT_NAME, SMIL_BY_ATTRIBUTE, SMIL_CALC_MODE_ATTRIBUTE, SMIL_CSS_VALUE, SMIL_DEFAULT_VALUE, SMIL_DISCRETE_VALUE, SMIL_DUR_ATTRIBUTE, SMIL_END_ATTRIBUTE, SMIL_END_EVENT_NAME, SMIL_FILL_ATTRIBUTE, SMIL_FREEZE_VALUE, SMIL_FROM_ATTRIBUTE, SMIL_HOLD_VALUE, SMIL_INDEFINITE_VALUE, SMIL_KEY_POINTS_ATTRIBUTE, SMIL_KEY_SPLINES_ATTRIBUTE, SMIL_KEY_TIMES_ATTRIBUTE, SMIL_LINEAR_VALUE, SMIL_MAX_ATTRIBUTE, SMIL_MEDIA_VALUE, SMIL_MIN_ATTRIBUTE, SMIL_NEVER_VALUE, SMIL_NONE_VALUE, SMIL_ORIGIN_ATTRIBUTE, SMIL_PACED_VALUE, SMIL_PATH_ATTRIBUTE, SMIL_REMOVE_VALUE, SMIL_REPEAT_COUNT_ATTRIBUTE, SMIL_REPEAT_DUR_ATTRIBUTE, SMIL_REPEAT_EVENT_ALT_NAME, SMIL_REPEAT_EVENT_NAME, SMIL_REPLACE_VALUE, SMIL_RESTART_ATTRIBUTE, SMIL_SET_TAG, SMIL_SPLINE_VALUE, SMIL_SUM_VALUE, SMIL_TO_ATTRIBUTE, SMIL_VALUES_ATTRIBUTE, SMIL_WHEN_NOT_ACTIVE_VALUE, SMIL_XML_VALUE
 
Constructor Summary
TimedDocumentRoot(boolean useSVG11AccessKeys, boolean useSVG12AccessKeys)
          Creates a new TimedDocumentRoot.
 
Method Summary
 void addTimegraphListener(TimegraphListener l)
          Adds a TimegraphListener to the document.
 float convertEpochTime(long t)
          Converts an epoch time to document time.
 float convertWallclockTime(Calendar time)
          Converts a wallclock time to document time.
protected  void currentIntervalWillUpdate()
          Invoked by timed elements in this document to indicate that the current interval will be re-evaluated at the next sample.
 float getCurrentTime()
          Returns the last sampled document time.
 float getDefaultBegin(TimedElement child)
          Returns the default begin time for the given child timed element.
 Calendar getDocumentBeginTime()
          Returns the wallclock time that the document began.
protected abstract  String getEventNamespaceURI(String eventName)
          Returns the namespace URI of the event that corresponds to the given animation event name.
protected abstract  String getEventType(String eventName)
          Returns the type of the event that corresponds to the given animation event name.
protected  float getImplicitDur()
          Returns the implicit duration of the element.
protected abstract  String getRepeatEventName()
          Returns the name of the repeat event.
 boolean isHyperlinking()
          Returns whether the document is currently being sampled for a hyperlink.
 boolean isSampling()
          Returns whether the document is currently being sampled.
 void removeTimegraphListener(TimegraphListener l)
          Removes a TimegraphListener from the document.
 void resetDocument(Calendar documentBeginTime)
          Resets the entire timegraph.
 float seekTo(float time, boolean hyperlinking)
          Samples the entire timegraph at the given time.
 
Methods inherited from class org.apache.batik.anim.timing.TimeContainer
addChild, getChildren, isConstantAnimation, removeChild, reset, sampleAt, sampleChildren, setRoot
 
Methods inherited from class org.apache.batik.anim.timing.TimedElement
addDependent, addInstanceTime, beginElement, beginElement, canBegin, canEnd, computeInterval, createException, deinitialize, endElement, endElement, endHasEventConditions, fireTimeEvent, fireTimeEvent, formatMessage, getActiveDur, getActiveTime, getAnimationEventTarget, getBeginTimingSpecifiers, getCurrentBeginTime, getElement, getEndTimingSpecifiers, getEventTargetById, getHyperlinkBeginTime, getLastSampleTime, getLocale, getRoot, getRootEventTarget, getSimpleDur, getSimpleTime, getTimedElementById, initialize, instanceTimeChanged, isBefore, isUnresolved, maxTime, minTime, minusTime, multiplyTime, notifyNewInterval, notifyRemoveInterval, parseAttributes, parseBegin, parseClockValue, parseDur, parseEnd, parseFill, parseMax, parseMin, parseRepeatCount, parseRepeatDur, parseRestart, removeDependent, removeFill, removeInstanceTime, sampledAt, sampledLastValue, selectNewInterval, setLocale, toActive, toInactive, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

documentBeginTime

protected Calendar documentBeginTime
The wallclock time that the document began.


useSVG11AccessKeys

protected boolean useSVG11AccessKeys
Allows the use of accessKey() timing specifiers with a single character, as specified in SVG 1.1.


useSVG12AccessKeys

protected boolean useSVG12AccessKeys
Allows the use of accessKey() timing specifiers with a DOM 3 key name, as specified in SVG 1.2.


propagationFlags

protected DoublyIndexedSet propagationFlags
A set to determine when propagation of new Instance times should be stopped.


listeners

protected LinkedList listeners
List of {link TimegraphListener}s to be notified of changes to the timed elements in this document.


isSampling

protected boolean isSampling
Whether the document is currently being sampled.


isHyperlinking

protected boolean isHyperlinking
Whether the document is currently being sampled for a hyperlink.

Constructor Detail

TimedDocumentRoot

public TimedDocumentRoot(boolean useSVG11AccessKeys,
                         boolean useSVG12AccessKeys)
Creates a new TimedDocumentRoot.

Parameters:
useSVG11AccessKeys - allows the use of accessKey() timing specifiers with a single character
useSVG12AccessKeys - allows the use of accessKey() with a DOM 3 key name
Method Detail

getImplicitDur

protected float getImplicitDur()
Returns the implicit duration of the element. The document root has an TimedElement.INDEFINITE implicit duration.

Overrides:
getImplicitDur in class TimedElement

getDefaultBegin

public float getDefaultBegin(TimedElement child)
Returns the default begin time for the given child timed element. In SVG, this is always 0, since the only time container is the root SVG element, which acts like a 'par'.

Specified by:
getDefaultBegin in class TimeContainer

getCurrentTime

public float getCurrentTime()
Returns the last sampled document time.


isSampling

public boolean isSampling()
Returns whether the document is currently being sampled.


isHyperlinking

public boolean isHyperlinking()
Returns whether the document is currently being sampled for a hyperlink.


seekTo

public float seekTo(float time,
                    boolean hyperlinking)
Samples the entire timegraph at the given time.


resetDocument

public void resetDocument(Calendar documentBeginTime)
Resets the entire timegraph.


getDocumentBeginTime

public Calendar getDocumentBeginTime()
Returns the wallclock time that the document began.


convertEpochTime

public float convertEpochTime(long t)
Converts an epoch time to document time.


convertWallclockTime

public float convertWallclockTime(Calendar time)
Converts a wallclock time to document time.


addTimegraphListener

public void addTimegraphListener(TimegraphListener l)
Adds a TimegraphListener to the document.


removeTimegraphListener

public void removeTimegraphListener(TimegraphListener l)
Removes a TimegraphListener from the document.


currentIntervalWillUpdate

protected void currentIntervalWillUpdate()
Invoked by timed elements in this document to indicate that the current interval will be re-evaluated at the next sample. This should be overridden in a concrete class so that ticks can be scheduled immediately if they are currently paused due to no animations being active.


getEventNamespaceURI

protected abstract String getEventNamespaceURI(String eventName)
Returns the namespace URI of the event that corresponds to the given animation event name.


getEventType

protected abstract String getEventType(String eventName)
Returns the type of the event that corresponds to the given animation event name.


getRepeatEventName

protected abstract String getRepeatEventName()
Returns the name of the repeat event.

Returns:
either "repeat" or "repeatEvent"


Copyright © 2009 Apache Software Foundation. All Rights Reserved.