| java.lang.Object com.sun.perseus.model.SimpleCanvasManager com.sun.perseus.model.CanvasManager
CanvasManager | public class CanvasManager extends SimpleCanvasManager (Code) | | The CanvasManager class is responsible for
keeping the rendering of a ModelNode tree on a
RenderGraphics current.
Specifically, the CanvasManager listens to
update events in a ModelNode tree and
triggers repaint into the RenderGraphics when
necessary.
The CanvasManager optimizes rendering
of the tree while the document is in loading phase.
version: $Id: CanvasManager.java,v 1.17 2006/07/13 00:55:57 st125089 Exp $ |
Field Summary | |
protected boolean | loading True while the component is processing a document
which is in the loading phase, i.e., between
the UpdateListener 's loadStarting
and loadComplete calls. | protected ModelNode | needLoadNode Tracks the highest level node whose load completion
is needed to proceed with progressive rendering. | protected ModelNode | progressiveNode Progressive painting is needed when a node has
started loading and has been inserted into the tree. | protected SMILSample | sampler The associated SMILSampler, if animations are run. | protected long | smilRate The rate for SMIL animation. |
loading | protected boolean loading(Code) | | True while the component is processing a document
which is in the loading phase, i.e., between
the UpdateListener 's loadStarting
and loadComplete calls.
|
needLoadNode | protected ModelNode needLoadNode(Code) | | Tracks the highest level node whose load completion
is needed to proceed with progressive rendering.
When loading this node completes, then the node
is painted.
|
progressiveNode | protected ModelNode progressiveNode(Code) | | Progressive painting is needed when a node has
started loading and has been inserted into the tree.
This is only used during the loading phase of
a document when doing progressive rendering.
The next node to paint progressively
|
sampler | protected SMILSample sampler(Code) | | The associated SMILSampler, if animations are run.
|
smilRate | protected long smilRate(Code) | | The rate for SMIL animation. The smilRate is the minimum time between
SMIL samples.
|
CanvasManager | public CanvasManager(RenderGraphics rg, DocumentNode documentNode, CanvasUpdateListener canvasUpdateListener)(Code) | | Parameters: rg - the RenderGraphics which this instance will keep up to date with the model changes. Parameters: documentNode - the DocumentNode , root of the tree that this CanvasManager willdraw and keep current on the RenderGraphics Parameters: canvasUpdateListener - the CanvasUpdateListener which listens to completed updates on the associatedRenderGraphics throws: IllegalArgumentException - if rg, documentNode or listener is null. |
fullNodePaint | protected void fullNodePaint(ModelNode node)(Code) | | Utility method invoked when a node and its children need
to be painted. This is used, for example, when a node
which requires full loading before rendering is finally
fully loaded.
Parameters: node - the node to paint fully, i.e, including its children. |
getSampler | public SMILSample getSampler()(Code) | | the associated SMILSampler, if animations are run. |
isNeedLoadNodeOrChild | boolean isNeedLoadNodeOrChild(ModelNode node)(Code) | | Parameters: node - the node to test. true if node isa chid of the node currently holding up progressiverendering. The caller must make sure needNodeLoad is not null before calling this utility method. If calledwhen needLoadNode is null, the method returns true. |
loadBegun | public void loadBegun(ModelNode node)(Code) | | Invoked when the input node has started loading
Parameters: node - the ModelNode for which loadinghas started. |
loadComplete | public void loadComplete(ModelNode node)(Code) | | Invoked when the input node has finished loading.
Parameters: node - the node for which loadingis complete. |
loadStarting | public void loadStarting(DocumentNode documentNode, InputStream is)(Code) | | Invoked when the document starts loading
Parameters: documentNode - the DocumentNode for which loadingis starting Parameters: is - the InputStream from which SVG contentis loaded. |
loadingFailed | public void loadingFailed(DocumentNode documentNode, Exception error)(Code) | | Invoked when a document error happened before finishing loading.
Parameters: documentNode - the DocumentNode for which loadinghas failed. Parameters: error - the exception which describes the reason why loadingfailed. |
modifiedNode | public void modifiedNode(ModelNode node)(Code) | | Invoked when a node modification completed.
Parameters: node - the node which was just modified. |
modifyingNode | public void modifyingNode(ModelNode node)(Code) | | Invoked when a node is about to be modified.
Parameters: node - the node which is about to be modified |
nodeInserted | public void nodeInserted(ModelNode node)(Code) | | Invoked when a node has been inserted into the tree
Parameters: node - the newly inserted node |
partialPaint | protected void partialPaint(ModelNode node)(Code) | | Utility method to paint the input tree up to, but not
including the needLoadNode. This is a recursive method
which should be called with the root of the tree to
be painted.
Parameters: node - the node to paint next. |
progressivePaint | protected void progressivePaint(ModelNode node)(Code) | | Utility method invoked when an incremental painting is needed
on a node. This may be invoked when a node was just inserted
into the tree or when a node which required full loading of
its children has been completely loaded.
Parameters: node - the node to paint incrementally on the canvas |
textInserted | public void textInserted(ModelNode node)(Code) | | Invoked when a string has been appended, during a load
phase. This is only used when parsing a document and is
used in support of progressive download, like the other
loadXXX methods.
Parameters: node - the ModelNode on which text has beeninserted. |
updateCanvas | public void updateCanvas()(Code) | | Utility method used to update the canvas appropriately
depending on what is needed.
During the loading phase, while we do progressive
rendering, the canvas will only redraw nodes in the
progressiveNodes list, unless a repaint has been
requested.
Important Note: this method should only be called from
the update thread, i.e., the thread that also manages
the model node tree.
|
|
|