diva.graph.tutorial
Class PrepopulatedTutorial
java.lang.Object
diva.graph.tutorial.PrepopulatedTutorial
public class PrepopulatedTutorial
- extends java.lang.Object
This example shows three alternatives to display a prepopulated
graph model in a window. Prepopulated means that there are
already nodes in the model before the model was placed in a
GraphPane. There was a problem in the initial release which made
this break. That problem has been fixed and it will just work now,
except for one little gotcha, which is if you set the model while
the window is closed, the GraphPane thinks its size is 0x0, so the
nodes all get layed out in the upper-left corner of the canvas. The
way to fix this is to either set the model once the window is open,
or explicitly call a global layout once the window has been opened.
More comments below in the individual methods.
- Version:
- $Id: PrepopulatedTutorial.java 38798 2005-07-08 20:00:01Z cxh $
- Author:
- Michael Shilman
- Accepted Rating:
Method Summary |
void |
bogusLayout(MutableGraphModel model,
AppContext context)
This is the first thing you'd probably think of, but this
happens to be bogus, because the layout
is applied to the nodes before the window is showing,
meaning that the nodes are layed out in a 0x0 frame,
and are all clustered in the upper-left corner. |
void |
layoutPostDisplay(MutableGraphModel model,
AppContext context)
In this version you construct the graph widget with
the model, and apply a layout to the graph once
the window is showing. |
static void |
main(java.lang.String[] argv)
|
void |
setModelPostDisplay(MutableGraphModel model,
AppContext context)
In this version you construct the graph widget with
the default constructor (giving it an empty graph),
and then set the model once the window is showing. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PrepopulatedTutorial
private PrepopulatedTutorial(AppContext context)
main
public static void main(java.lang.String[] argv)
bogusLayout
public void bogusLayout(MutableGraphModel model,
AppContext context)
- This is the first thing you'd probably think of, but this
happens to be bogus, because the layout
is applied to the nodes before the window is showing,
meaning that the nodes are layed out in a 0x0 frame,
and are all clustered in the upper-left corner. This
is remedied in the other techniques given below.
layoutPostDisplay
public void layoutPostDisplay(MutableGraphModel model,
AppContext context)
- In this version you construct the graph widget with
the model, and apply a layout to the graph once
the window is showing. I think the "set model
post display" version is preferable, but this might
be useful in some cases.
setModelPostDisplay
public void setModelPostDisplay(MutableGraphModel model,
AppContext context)
- In this version you construct the graph widget with
the default constructor (giving it an empty graph),
and then set the model once the window is showing.