diva.graph.tutorial
Class PrepopulatedTutorial

java.lang.Object
  extended by 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:
Red

Constructor Summary
private PrepopulatedTutorial(AppContext context)
           
 
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
 

Constructor Detail

PrepopulatedTutorial

private PrepopulatedTutorial(AppContext context)
Method Detail

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.