| java.lang.Object com.sun.perseus.model.TraitAnim
All known Subclasses: com.sun.perseus.model.FloatTraitAnim, com.sun.perseus.model.StringTraitAnim,
TraitAnim | abstract class TraitAnim implements BaseValue(Code) | | The TraitAnim class is the link between animation targets
(i.e., traits on elements) and animation elements.
When an animation becomes active on a target (i.e., on a trait or pseudo
trait for an element), it invokes getAnimTrait(traitName) on the
corresponding element to get the trait's TraitAnim. One is created if the
trait is not currently animated. Then, the animation adds itself to the
TraitAnim through a call to addAnimation(). As an animation adds itself, it
becomes the TraitAnim's rootAnim. If there was no animation, the new
animation's baseVal becomes the TraitAnim itself. If there was already an
animation, the new Animation's baseVal becomes the previous rootAnim.
When an animation becomes inactive, it removes itself from the TraitAnim
by calling the removeAnimation method. When the last active animation removes
itself from the TraitAnim, the TraitAnim removes itself from the
ElementNode's TraitAnim list and it restores the trait's original base value
(stored as baseValue).
This achieves the sandwich model behavior described in the SMIL Animation
specification (section 3.5). In particular, because the tree is sampled in
document order in Perseus, the animation that appears first in document order
will have lower priority (i.e., it will be added first to the TraitAnim). If
an animation is a time dependent of another one, then it will become active
after its time sync and will have higher priority than its time sync.
version: $Id: TraitAnim.java,v 1.4 2006/06/29 10:47:36 ln156897 Exp $ |
Constructor Summary | |
| TraitAnim(ElementNode targetElement, String traitNamespace, String traitName, String traitType) Constructs a new TraitAnim for a given ElementNode trait
in the given namespace.
Parameters: targetElement - the ElementNode whose trait is animated.Should not be null. Parameters: targetNamespace - the target trait's namespace. |
active | boolean active(Code) | | True when the TraitAnim has at least one active animation.
|
specifiedTraitValue | String specifiedTraitValue(Code) | | The trait's specified value, as a String.
|
traitNamespace | String traitNamespace(Code) | | The target trait namespace.
|
traitType | String traitType(Code) | | The TraitAnim underlying type. One of ElementNode.TRAIT_TYPE
constants.
|
TraitAnim | TraitAnim(ElementNode targetElement, String traitNamespace, String traitName, String traitType)(Code) | | Constructs a new TraitAnim for a given ElementNode trait
in the given namespace.
Parameters: targetElement - the ElementNode whose trait is animated.Should not be null. Parameters: targetNamespace - the target trait's namespace. Should not be null. The per-element partition namespace should be represented by the ElementNode.NULL_NS value. Parameters: targetTrait - the name of the animated trait. Should notbe null. |
addAnimation | void addAnimation(Animation newAnim)(Code) | | Adds a new animation to this TraitAnim. The new animation
becomes the highest priority animation. If this is the
first animation added to the TraitAnim, the new animation's
base value becomes the TraitAnim itself and the TraitAnim
registers with the DocumentNode. If there is already
one or more animation in the TraitAnim, the baseValue for the
new animation becomes the previous animation root. In all
cases, the new animation becomes the rootAnim.
Parameters: newAnim - the new highest priority animation for this TraitAnim.Should not be null. |
apply | abstract void apply()(Code) | | Applies the animation effect. The implementation makes sure it
implements the sandwich model by 'pulling' values from the
root animation (i.e., the animation with the highest priority).
|
getSpecifiedTraitNS | public String getSpecifiedTraitNS()(Code) | | the trait's specified base value, as a String. |
getTrait | final String getTrait(String traitType) throws DOMException(Code) | | Parameters: traitType - the expected type for this trait. One of the ElementNode.TRAIT_TYPE_.... constants (e.g., TRAIT_TYPE_STRING).All TraitAnim implementations must support TRAIT_TYPE_STRING.They may support additional types (for example, FloatTraitAnimmay support TRAIT_TYPE_FLOAT). the trait's computed value, as a String. throws: DOMException - with error code TYPE_MISMATCH_ERR if the requestedtrait's value cannot be specified as a requested type value. |
getTraitImpl | abstract protected String getTraitImpl()(Code) | | the trait's value, as a String. |
multiply | abstract Object[] multiply(Object[] value, int iter)(Code) | | Used to multiply an animated trait value by a number of iterations.
Parameters: value - the animated trait value to multiply. Parameters: iter - the number of iteration to account for. the multiply result. |
removeAnimation | void removeAnimation(Animation removedAnim)(Code) | | Removes the input animation from this TraitAnim. If the removed
animation's baseValue is the TraitAnim itself, it means this is
the last active animation on the trait and the TraitAnim will
mark itself as inactive. If this is not the last animation,
then this animation's baseValue becomes the rootAnim.
If removedAnim is not part of this TraitAnim, this method
does nothing.
Parameters: removedAnim - the animation to remove from the TraitAnim.should not be null. |
restore | final void restore()(Code) | | Restores the base value. This is invoked when there are not more
animations and the original base value needs to be restored.
|
setTrait | final void setTrait(String value, String traitType) throws DOMException(Code) | | Sets the trait's base value, as a String.
Parameters: value - the new trait base value. Parameters: traitType - the requested trait type. throws: DOMException - with error code TYPE_MISMATCH_ERR if the requestedtrait's value cannot be specified as the requested traitType. throws: DOMException - with error code INVALID_ACCESS_ERR if the inputvalue is an invalid value for the given trait or null. |
setTraitImpl | abstract void setTraitImpl(String value) throws DOMException(Code) | | Sets the trait's base value, as a String.
Parameters: value - the new trait base value. throws: DOMException - with error code INVALID_ACCESS_ERR if the inputvalue is an invalid value for the given trait or null. |
sum | abstract Object[] sum(Object[] valueA, Object[] valueB)(Code) | | Used to sum two animated trait values.
Parameters: valueA - the base value. May be null. Parameters: valueB - the value to add to the base value. If the baseValue the sum result. |
supportsInterpolation | boolean supportsInterpolation()(Code) | | true if this trait supports interpolation. false otherwise. |
toRefValues | abstract RefValues toRefValues(Animation anim, String[] values, String reqTraitNamespace, String reqTraitName) throws DOMException(Code) | | Converts the input values set to a RefValues object.
Parameters: anim - the Animation for which the values should beconverted. Parameters: values - a semi-colon seperated list of values which need to bevalidated. Parameters: reqTraitNamespace - the namespace of the trait which has the valuesvalue on the requesting element. Parameters: reqTraitName - the name of the trait which has the values value on the requesting element. throws: DOMException - with error code INVALID_ACCESS_ERR if the inputvalue is incompatible with the given trait. |
|
|