com.sun.perseus.model |
Perseus Model Package
The Perseus Model package (com.sun.perseus.model ) contains
interfaces and classes used to describe an SVG Tiny document
as a tree of ModelNodes objects with properties. Note that this
is different from the DOM (Document Object Model) in a number
of ways (e.g, there are not Attr nodes). The Perseus model
is not generic like the DOM is. Instead, the Perseus model is very specific
to the needs of SVG Tiny and contains all that is needed for SVG Tiny and
no more.
The key interfaces in the model package are:
ModelNode . All classes that represent an
SVG Tiny element implement that interface. It contains methods
for child navigation and supports getting and setting of common
XML attributes (such as the 'id' attribute.
DecoratedNode . All nodes that have properties
(e.g., graphical properties or text properties) implement
this interface.
GraphicsNode . All nodes that have graphical
properties (such as 'fill', 'stroke' or 'stroke-width') implement
that interface to allow getting and setting of the properties as
well as management of their inheritance and relative value (e.g. for
handling the 'currentColor' value on 'fill').
TextNode . All nodes that have text
properties (such as 'font-size', 'text-anchor' or 'font-weight) must implement
that interface to allow getting and setting of the properties as
well as management of their inheritance.
Transformable . All nodes which have a
an attribute mapping to an AffineTransform implement
that interface.
The classes in the model package are:
AbstractShapeNode . All nodes which represent
shapes (basic or arbitrary shapes) are represented by descendants
of this class.
CompositeGraphicsNode . All nodes wich can
have children and can have graphical properties are represented
by descendant of this class.
CompositeNode . All node that may have a children
is represented by a descendant of this class. It provides methods
for managing children.
ConditionalProcessing . This is a helper class
used to compute conditional processing on model nodes.
Defs . Represents an SVG Tiny <defs>
element.
Ellipse . Represents an SVG Tiny <ellipse>
element.
Font . Represents an SVG Tiny <font>
element.
FontFace . Represents an SVG Tiny <font-face>
element.
Glyph . Represents an SVG Tiny <glyph>
and <missing-glyph> elements.
Group . Represents an SVG Tiny <g>
element.
ImageNode . Represents an SVG Tiny <image>
element.
Line . Represents an SVG Tiny <line>
element.
ModelNodeProxy . Used to model expanded content in Use
and Glyph . A ModelNodeProxy manages the RenderContext
but delegates rendering to the node it proxies.
Rect . Represents an SVG Tiny <rect>
element.
ShapeNode . Represents an SVG Tiny <path> ,
<polygon> and <polylines> elements.
StructureNode . Base class for all the nodes representing
structure in SVG Tiny, such as images, defs, use or svg.
SVG . Represents an SVG Tiny <svg>
element.
Switch . Represents an SVG Tiny <switch>
element.
Text . Represents an SVG Tiny <text>
element.
Use . Represents an SVG Tiny <use>
element.
Viewport . Represents an SVT Tiny's <svg>
element's viewport.
|
Java Source File Name | Type | Comment |
AbstractAnimate.java | Class | AbstractAnimate is used as a base class for various
animation classes (see Animate and AnimateMotion ). |
AbstractRenderingNode.java | Class | Typical base class for nodes which render something (shapes and images). |
AbstractRenderingNodeProxy.java | Class | An AbstractRenderingNodeProxy delegates its rendering to a
proxied AbstractRenderingNode and also has its own rendering
manager. |
AbstractShapeNode.java | Class | All nodes which represent geometry (complex or simple shapes)
are represented by descendants of this class. |
AbstractShapeNodeProxy.java | Class | An AbstractShapeNodeProxy delegates its rendering to a
proxied AbstractShapeNode and has the same policy for
handling computed value changes. |
AccessKeyCondition.java | Class | A AccessKeyCondition generates a TimeInstance
everytime the associated key event occurs with the expected
accessKey value. |
Anchor.java | Class | Represents an SVG Tiny <a> element. |
Animate.java | Class | Animate represents an SVG Tiny <animate>
element. |
AnimateMotion.java | Class | AnimateMotion represents an SVG Tiny
<animateMotion> element. |
AnimateTransform.java | Class | Animate represents an SVG Tiny
<animateTransform> element. |
Animation.java | Class | The Animation class is the base class for all the
SVG animation elements. |
BaseValue.java | Interface | The BaseValue interface is used to abstract either the
original value of a trait (like 'x' on a <rect>) or a pseudo-trait
(like '#text' on a <text> or '#motion' on SVGLocatable ). |
CanvasManager.java | Class | |
CanvasUpdateListener.java | Interface | The CanvasUpdateListener should be implemented by classes
which want to listen to updates done by the CanvasManager on
a RenderGraphics . |
CompositeGraphicsNode.java | Class | CompositeGraphicsNode is the base class for all nodes which are
both composites (i.e., they can have children) and have graphic properties
(such as fill or stroke ). |
CompositeGraphicsNodeProxy.java | Class | A CompositeGraphicsNodeProxy delegates its rendering to a
proxied CompositeGraphics object and also keeps a cached
transform and inverse transform. |
CompositeMotionSegment.java | Class | A composite implementation of the Segment interface. |
CompositeNode.java | Class | CompositeNode models ModelNodes ElementNode ElementNodes . |
ConditionalProcessing.java | Class | ConditionalProcessing is a helper class which handles the
conditional processing decisions for Perseus classes. |
DecoratedNode.java | Interface | DecoratedNode is the base interface for handling
properties with inheritance. |
DefaultImageLoader.java | Class | Default implementation of the ImageLoader interface. |
Defs.java | Class | Defs are used as placeholders where proxied ModelNode
can be stored for reference by ElementNodeProxy instances.
Note that according to the SVG 1.1 DTD, <defs> should be
StructureNode.
However, we should not apply GraphicsNode and
TextNode properties on <defs> as it
is useless: <defs> content is never rendered directly,
so properties set on defs are _never_ inherited by <defs>
children. |
DirtyAreaManager.java | Class | The DirtyAreaManager abstraction is responsible for tracking
areas of the document tree which need to be repainted. |
DocumentNode.java | Class | A DocumentNode represents the root of an SVG document model. |
ElementNode.java | Class | ElementNode models ModelNodes A ElementNode can have either ElementNode
children and text content children
(see the
ElementNode.appendTextChild appendTextChild} method).
In addition, Element s can have proxies (see
com.sun.perseus.model.ElementNodeProxy ElementNodeProxy ).
The proxies are used for implementing the behavior of the
<use> element and the <text>
element. |
ElementNodeProxy.java | Class | A ElementNodeProxy delegates its rendering to a
proxied ElementNode object. |
Ellipse.java | Class | An Ellipse node models an SVG <ellipse>
or an <circle> element.
A negative radius along the x or y axis is illegal. |
EventBaseCondition.java | Class | An EventBaseCondition generates a TimeInstance
everytime the associated event happens. |
EventSupport.java | Class | EventSupport assumes two functions. |
FloatRefValues.java | Class | |
FloatSegment.java | Class | Represents float segment in an animation. |
FloatTraitAnim.java | Class | |
Font.java | Class | A Font node models an SVG <code>
element. |
FontFace.java | Class | A FontFace node corresponds to an SVG
<font-face> element. |
GenericElementNode.java | Class | A GenericElementNode is used to model elements which are either
unknown to Perseus or have no special behavior or attributes.
Note that GenericElementNode is needed because we want to avoid
storing a namespaceURI and localName references for nodes which always return
constants for these values. |
Glyph.java | Class | A Glyph node corresponds to an SVG <glyph>
and <missing-glyph> elements. |
GlyphLayout.java | Class | GlyphLayout is used to represent successing text 'chunks' in
a Text layout of glyphs. |
GlyphProxy.java | Class | A GlyphNodeProxy delegates its rendering to a
proxied Glyph object. |
GradientElement.java | Class | GradientElement abstract class is a helper base
class for LinearGradient and RadialGradient . |
GraphicsNode.java | Interface | GraphicsNode is the interface that all ModelNode
(see
com.sun.perseus.model.ModelNode ModelNode ) which correspond
to graphical content implement.
GraphicsNode s have a notion of visibility and display. |
Group.java | Class | A Group corresponds to an SVT Tiny <g>
element. |
HKern.java | Class | A HKern corresponds to an SVG <hkern>
element. |
IDRef.java | Interface | Interface which users of id references to ElementNode s should
implement. |
ImageLoader.java | Interface | Interface for handling RasterImage resources loading. |
ImageNode.java | Class | This class models the SVG Tiny <image> .
A value of 0 on the width and height attributes disables the
rendering of the Image object. |
IntervalTimeInstance.java | Class | This specialized TimeInstance is created by
SyncBaseCondition time conditions. |
LeafMotionSegment.java | Class | Represents a time interval in an animation. |
Line.java | Class | A Line node models an SVG <line>
element. |
LinearGradient.java | Class | LienarGraident represents an SVG Tiny 1.2
<linearGradient> element. |
Messages.java | Class | |
ModelEvent.java | Class | Events happen on a specific target and have a specific type. |
ModelNode.java | Class | The central structure manipulated in Perseus is called the Model. |
MotionRefValues.java | Class | |
MotionSegment.java | Interface | Represents a time interval in an animation. |
MotionTraitAnim.java | Class | |
OffsetCondition.java | Class | An OffsetCondition generates a single TimeInstance
on initialization. |
PaintElement.java | Class | Abstract base class for all elements which are paint server implementations. |
PaintServerReference.java | Class | The PaintServerReference object is used to handle
references from a GraphicsNode to an actual
Paint implementation. |
RadialGradient.java | Class | LienarGraident represents an SVG Tiny 1.2
<radialGradient> element. |
RasterImageConsumer.java | Interface | |
Rect.java | Class | Rect represents and SVG Tiny <rect>
element.
Negative width, height, rx or ry value is illegal. |
RefValues.java | Interface | |
RenderingManager.java | Class | The RenderingManager class provides support for efficiently
managing rendered areas in ModelNode implementations, such as
AbstractShapeNode. |
RepeatCondition.java | Class | A RepeatCondition generates a TimeInstance
everytime the associated repeat event occurs with the expected
repeatCount value. |
Segment.java | Interface | Represents a time interval in an animation. |
Set.java | Class | Set represents an SVG Tiny <set>
element. |
ShapeNode.java | Class | A ShapesNode is an AbstractShapeNode
which draws a java.awt.geom.GeneralPath. |
SimpleCanvasManager.java | Class | |
SMILSample.java | Class | SMILSample is the root of the SMIL Timing engine operation. |
SolidColor.java | Class | SolidColor represents an SVG Tiny 1.2
<solidColor> element. |
Stop.java | Class | Stop class represents the <stop>
SVG Tiny 1.2 element. |
StrictElement.java | Class | The purpose of the StrictElement class is to have a way to
create elements with a list of required attributes but no specific
rendering behavior. |
StringRefValues.java | Class | |
StringSegment.java | Class | Represents String segment in an animation. |
StringTraitAnim.java | Class | |
StructureNode.java | Class | StructureNode is the base class for all nodes that
represent structure content, such as images, defs or svg elements. |
StructureNodeProxy.java | Class | A TextProxy proxies a Text node and
computes its expanded content from the proxied text's data
content. |
SVG.java | Class | An SVG node represents an <code>
element. |
SVGImageImpl.java | Class | |
SVGImageLoader.java | Class | JSR 226 implementation of the ImageLoader interface. |
Switch.java | Class | The Switch class is a simple extension of the
Group class which stops rendering its children
after one as rendered (i.e., the child's canRender method
returns true). |
Symbol.java | Class | Represents an SVG Tiny <a> element. |
SyncBaseCondition.java | Class | An SyncBaseCondition generates a TimeInstance
everytime the SyncBase TimedElementSupport generates a new
interval (i.e., each time its newInterval method is
called by the TypedElement . |
Text.java | Class | Models text content. |
TextNode.java | Interface | TextNode is the interface that all ModelNode
(see
com.sun.perseus.model.ModelNode ModelNode ) which support the
definition of text properties (such as text-anchor or font-size) implement. |
TextProxy.java | Class | A TextProxy proxies a Text node and
computes its expanded content from the proxied text's data
content. |
Time.java | Class | This simple class represents the concept of time in the
context of SMIL timing. |
TimeCondition.java | Class | A TimeCondition represents a value in a
TimedElementSupport begin or end conditions list. |
TimeContainerNode.java | Class | TimedElementNode models ModelNodes |
TimeContainerRootSupport.java | Class | |
TimeContainerSupport.java | Class | |
TimedElementNode.java | Class | TimedElementNode models ModelNodes |
TimedElementSupport.java | Class | The TimedElementSupport class is the main abstraction of the
SMIL timing model implementation.
It is responsible for computing the animation's state (inactive, active,
post-acitve, frozen) and, when the application is active, what the current
simple time is. |
TimeDependent.java | Interface | |
TimeInstance.java | Class | Base class for representing time instances in a
TimedElementSupport 's begin and end instance times lists. |
TimeInterval.java | Class | A TimeInterval models a specific 'run' of a
TimedElement . |
TraitAnim.java | Class | 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. |
Transformable.java | Interface | Transformable is the interface that all nodes which
have an Transform
(such as the transform attribute on
<rect> ) implement. |
TransformRefValues.java | Class | |
TransformSegment.java | Class | Represents a segment in an animateTransform. |
TransformTraitAnim.java | Class | |
UpdateAdapter.java | Class | A simple UpdateListener implementation which can
check whether or not the document loading succeeded. |
UpdateListener.java | Interface | An UpdateListener implementation is responsible for handling
updates to a ModelNode tree and to take appropriate actions,
like collecting dirty state, dirty area or triggering repaint events. |
Use.java | Class | Represents an SVG Tiny <use> element. |
UseProxy.java | Class | A UseProxy proxies a Use node and
computes the expanded content from the proxied use's children
and its proxy expanded child.
A UseProxy has a first expanded child corresponding
to the proxied Use 's proxy content. |
Viewport.java | Class | A Viewport describes a ModelNode into which
rendering may happen. |