MetaDone
|
Classes | |
class | DelayLayout |
Public Types | |
enum | RankDir { TB, LR, BT, RL } |
Public Member Functions | |
final GrasylaScene | getScene () |
boolean | isRecursive () |
void | setRecursive (boolean recursive) |
RankDir | getRankDir () |
void | setRankDir (RankDir rankDir) |
final void | invokeLayoutImmediately (Widget widget) |
abstract boolean | shouldLayoutWidget (Widget w) |
Static Public Attributes | |
static final Dependency | NO_LAYOUT_DEPENDENCY |
Protected Member Functions | |
GraphVizLayout (GrasylaScene scene) | |
final void | performLayout () |
final void | performLayoutWithDelay (final Widget widget, final Set< Widget > waitFor) |
boolean | ignoreChild (Widget ch) |
void | performLayout (Widget widget) throws DelayLayout |
void | removeLinearParts (List< Point > list) |
double | getAngleThreshold () |
int | getDistanceThreshold () |
abstract Collection< Pair < Widget, Widget > > | getEdges (Collection< Widget > widgets) |
Rectangle | getSize (Widget w) |
void | updatePosition (Widget widget, Point location) |
boolean | clearControlPoints (Widget widget) |
void | updateControlPoints (Widget source, Widget target, List< Point > controlPoints) |
Private Member Functions | |
Set< Widget > | performLayoutRec (Widget widget) |
byte[] | buildGraph (List< Widget > children, Map< Widget, Integer > positions) throws IOException |
Static Private Member Functions | |
static Point | getPoint (String pos) throws IllegalArgumentException |
Private Attributes | |
final GraphViz | graphviz |
GrasylaScene | scene |
boolean | recursive |
RankDir | rankDir |
WeakHashMap< Widget, Object > | inQueue = new WeakHashMap<Widget, Object>() |
Static Private Attributes | |
static final Logger | logger = Logger.getLogger(GraphVizLayout.class) |
static final float | PIXELS_PER_INCH = 72 |
A layout algorithm delegating the computations to graphviz.
metadone.client.grasyla2.visuallibrary.GraphVizLayout.GraphVizLayout | ( | GrasylaScene | scene | ) | [protected] |
Initializes this layout.
scene | The scene |
References metadone.client.MainClientMetadone.getGlobalProperties(), metadone.client.MainClientMetadone.getSingleton(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.graphviz, and metadone.client.grasyla2.visuallibrary.GraphVizLayout.scene.
byte [] metadone.client.grasyla2.visuallibrary.GraphVizLayout.buildGraph | ( | List< Widget > | children, |
Map< Widget, Integer > | positions | ||
) | throws IOException [private] |
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.getEdges(), metadone.client.grasyla2.functions.GraphViz.getGraph(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.getSize(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.graphviz, metadone.client.grasyla2.visuallibrary.GraphVizLayout.ignoreChild(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.PIXELS_PER_INCH, and metadone.client.grasyla2.visuallibrary.GraphVizLayout.rankDir.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
boolean metadone.client.grasyla2.visuallibrary.GraphVizLayout.clearControlPoints | ( | Widget | widget | ) | [protected] |
Removes all the control points.
widget | The widget being laid out |
true
iff updating the control points for the widget is supported Reimplemented in metadone.client.grasyla2.visuallibrary.GrasylaScene.MyGraphVizLayout.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
double metadone.client.grasyla2.visuallibrary.GraphVizLayout.getAngleThreshold | ( | ) | [protected] |
The angle threshold for filtering.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.removeLinearParts().
int metadone.client.grasyla2.visuallibrary.GraphVizLayout.getDistanceThreshold | ( | ) | [protected] |
The minimal distance threshold for filtering.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.removeLinearParts().
abstract Collection<Pair<Widget, Widget> > metadone.client.grasyla2.visuallibrary.GraphVizLayout.getEdges | ( | Collection< Widget > | widgets | ) | [protected, pure virtual] |
Gets the edges for a collection of widgets.
widgets | The widgets |
Implemented in metadone.client.grasyla2.visuallibrary.GrasylaScene.MyGraphVizLayout.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.buildGraph(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
static Point metadone.client.grasyla2.visuallibrary.GraphVizLayout.getPoint | ( | String | pos | ) | throws IllegalArgumentException [static, private] |
RankDir metadone.client.grasyla2.visuallibrary.GraphVizLayout.getRankDir | ( | ) |
Gets the direction of the layout.
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.rankDir.
final GrasylaScene metadone.client.grasyla2.visuallibrary.GraphVizLayout.getScene | ( | ) |
Gets the scene.
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.scene.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.invokeLayoutImmediately(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
Rectangle metadone.client.grasyla2.visuallibrary.GraphVizLayout.getSize | ( | Widget | w | ) | [protected] |
Gets the size of a widget.
w | The widget |
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.buildGraph(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
boolean metadone.client.grasyla2.visuallibrary.GraphVizLayout.ignoreChild | ( | Widget | ch | ) | [protected] |
Called to check if the widget should be laid out as a node.
ch | The widget the check |
true
if the ch should be ignored as a node Reimplemented in metadone.client.grasyla2.visuallibrary.GrasylaScene.MyGraphVizLayout.
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.NO_LAYOUT_DEPENDENCY.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.buildGraph().
final void metadone.client.grasyla2.visuallibrary.GraphVizLayout.invokeLayoutImmediately | ( | Widget | widget | ) |
Invokes the layout immediately for a widget in the scene.
widget | The widget |
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.getScene(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayoutRec().
Referenced by metadone.client.grasyla2.visuallibrary.GraphEngine.makeContextMenu().
boolean metadone.client.grasyla2.visuallibrary.GraphVizLayout.isRecursive | ( | ) |
Indicates whether the layout is recursive.
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.recursive.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayoutRec().
void metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout | ( | Widget | widget | ) | throws DelayLayout [protected] |
Performs the layout for a widget.
widget | The widget |
DelayLayout | when the layout should be delayed |
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.buildGraph(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.clearControlPoints(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.getEdges(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.getPoint(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.getSize(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.logger, metadone.client.grasyla2.visuallibrary.GraphVizLayout.removeLinearParts(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.updateControlPoints(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.updatePosition().
final void metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout | ( | ) | [protected] |
Set<Widget> metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayoutRec | ( | Widget | widget | ) | [private] |
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.isRecursive(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayoutWithDelay(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.shouldLayoutWidget().
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.invokeLayoutImmediately(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
final void metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayoutWithDelay | ( | final Widget | widget, |
final Set< Widget > | waitFor | ||
) | [protected] |
Performs a layout with a delay for taking care of animations and such.
widget | The widget |
waitFor | The set of dependent widgets that must be laid out before the current one |
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.inQueue, and metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayoutRec().
void metadone.client.grasyla2.visuallibrary.GraphVizLayout.removeLinearParts | ( | List< Point > | list | ) | [protected] |
Removes linear parts from a list of points.
This is used to filter the set of control points returned by graphviz which is quite large.
list | The list of points to filter |
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.getAngleThreshold(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.getDistanceThreshold().
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout(), and metadone.client.grasyla2.visuallibrary.GrasylaScene.MyGraphVizLayout.updateControlPoints().
void metadone.client.grasyla2.visuallibrary.GraphVizLayout.setRankDir | ( | RankDir | rankDir | ) |
Sets the direction of the layout.
rankDir | The new direction |
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.rankDir.
void metadone.client.grasyla2.visuallibrary.GraphVizLayout.setRecursive | ( | boolean | recursive | ) |
Sets the recursive flag.
recursive | The new value |
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.recursive.
Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.MyGraphVizLayout.MyGraphVizLayout().
abstract boolean metadone.client.grasyla2.visuallibrary.GraphVizLayout.shouldLayoutWidget | ( | Widget | w | ) | [pure virtual] |
Checks whether a widget children should be laid out.
w | The widget to check |
true
if the children should be laid out Implemented in metadone.client.grasyla2.visuallibrary.GrasylaScene.MyGraphVizLayout.
Referenced by metadone.client.grasyla2.visuallibrary.GraphEngine.findLayoutWidget(), and metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayoutRec().
void metadone.client.grasyla2.visuallibrary.GraphVizLayout.updateControlPoints | ( | Widget | source, |
Widget | target, | ||
List< Point > | controlPoints | ||
) | [protected] |
Updates the control points for an edge.
The default implementation just logs a failure trace.
source | The source widget |
target | The target widget |
controlPoints | The control points |
Reimplemented in metadone.client.grasyla2.visuallibrary.GrasylaScene.MyGraphVizLayout.
References metadone.client.grasyla2.visuallibrary.GraphVizLayout.logger.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
void metadone.client.grasyla2.visuallibrary.GraphVizLayout.updatePosition | ( | Widget | widget, |
Point | location | ||
) | [protected] |
Updates the position of a widget after the algorithm has found a position.
widget | The widget |
location | The found location |
Reimplemented in metadone.client.grasyla2.visuallibrary.GrasylaScene.MyGraphVizLayout.
Referenced by metadone.client.grasyla2.visuallibrary.GraphVizLayout.performLayout().
WeakHashMap<Widget, Object> metadone.client.grasyla2.visuallibrary.GraphVizLayout.inQueue = new WeakHashMap<Widget, Object>() [private] |
final Logger metadone.client.grasyla2.visuallibrary.GraphVizLayout.logger = Logger.getLogger(GraphVizLayout.class) [static, private] |
final Dependency metadone.client.grasyla2.visuallibrary.GraphVizLayout.NO_LAYOUT_DEPENDENCY [static] |
new Dependency() { @Override public void revalidateDependency() { } }
A dependency to add to a widget to ignore it in the layout algorithm.
Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.MakeFreeWidget.clear(), metadone.client.grasyla2.visuallibrary.GraphVizLayout.ignoreChild(), and metadone.client.grasyla2.visuallibrary.GrasylaScene.MakeFreeWidget.update().
final float metadone.client.grasyla2.visuallibrary.GraphVizLayout.PIXELS_PER_INCH = 72 [static, private] |
boolean metadone.client.grasyla2.visuallibrary.GraphVizLayout.recursive [private] |