Class 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$
    Author:
    Michael Shilman
    Pt.AcceptedRating:
    Red
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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
    • 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.