| |
|
| java.lang.Object com.jgraph.pad.util.JGraphpadMorphingManager
JGraphpadMorphingManager | public class JGraphpadMorphingManager implements ActionListener(Code) | | Animation for simple graph changes (moves). This takes a nested map and
animates the change visually so the vertices appear to float to their new
locations. This implementation only takes into account new positions of
vertices, sizes, colors etc are changed after the animation in a single step.
Note: This class is not thread-safe.
|
Field Summary | |
protected transient Shape | clip Holds the clipping shape to be used for repainting the graph. | protected transient CellView[] | context Holds the context cells, eg the edges connected to the animated cells or
one of their parents. | protected int | delay Specifies the delay between morphing steps in milliseconds. | protected JGraph | graph References the graph to be morphed. | protected transient Map | nestedMap Holds the original nested map for the final execute step. | protected transient Map | oldBoundsnewBounds Holds the current and final bounds of the animation. | protected transient int | step Holds the current morhing step. | protected int | steps Specifies the number of animation steps. |
Method Summary | |
public void | actionPerformed(ActionEvent event) Invoked to perform an animation step and stop the timer if all animation
steps have been performed. | protected void | execute() Executes the actual change on the graph layout cache. | protected void | initialize() Initializes the datastructures required for the animation. | protected boolean | isAnimatable(Object cell) Hook for subclassers to determine whether the specified cell should be
animated. | public synchronized void | morph(JGraph graph, Map nestedMap) Animates the graph so that all vertices move from their current location
to the new location stored in the nested map. | protected void | setCellBounds(Object cell, Rectangle2D bounds) Sets the bounds for the specified cell. | protected void | updateCell(Object cell) Updates the specified cell for
JGraphpadMorphingManager.step . |
clip | protected transient Shape clip(Code) | | Holds the clipping shape to be used for repainting the graph.
|
context | protected transient CellView[] context(Code) | | Holds the context cells, eg the edges connected to the animated cells or
one of their parents.
|
delay | protected int delay(Code) | | Specifies the delay between morphing steps in milliseconds. Default is
30.
|
graph | protected JGraph graph(Code) | | References the graph to be morphed.
|
nestedMap | protected transient Map nestedMap(Code) | | Holds the original nested map for the final execute step.
|
oldBoundsnewBounds | protected transient Map oldBoundsnewBounds(Code) | | Holds the current and final bounds of the animation.
|
step | protected transient int step(Code) | | Holds the current morhing step.
|
steps | protected int steps(Code) | | Specifies the number of animation steps. Default is 10.
|
actionPerformed | public void actionPerformed(ActionEvent event)(Code) | | Invoked to perform an animation step and stop the timer if all animation
steps have been performed.
Parameters: event - The object that describes the event. |
execute | protected void execute()(Code) | | Executes the actual change on the graph layout cache. This implementation
restored the bounds on the modified cells to their old values for correct
undo of the change, then calls the graph layout cache's edit method with
the original nested map and cleans up the datastructures. This implements
the final step of the animation.
|
initialize | protected void initialize()(Code) | | Initializes the datastructures required for the animation. This
implementation sets the current and final location for the cells to be
animated using the specified nestedMap to get the new locations. If a
cell is in the nested map but
JGraphpadMorphingManager.isAnimatable(Object) returns false
then the cell is moved to it's final location in the first animation
step.
|
isAnimatable | protected boolean isAnimatable(Object cell)(Code) | | Hook for subclassers to determine whether the specified cell should be
animated. This implementation returns true for all cells.
Parameters: cell - The cells to be checked. Returns true if the cell may be animated. |
morph | public synchronized void morph(JGraph graph, Map nestedMap)(Code) | | Animates the graph so that all vertices move from their current location
to the new location stored in the nested map. This sets the
JGraphpadMorphingManager.nestedMap and
JGraphpadMorphingManager.graph variable and spawns a timer
process. While the timer is running, further method calls are ignored.
The call will return immediately.
Parameters: nestedMap - The nested map that defines the new locations. |
setCellBounds | protected void setCellBounds(Object cell, Rectangle2D bounds)(Code) | | Sets the bounds for the specified cell.
Parameters: cell - The cell whose bounds to set. Parameters: bounds - The new bounds of the cell. |
|
|
|