y.layout.grouping
Class RecursiveGroupLayouter

java.lang.Object
  |
  +--y.layout.AbstractLayoutStage
        |
        +--y.layout.grouping.RecursiveGroupLayouter
All Implemented Interfaces:
Layouter, LayoutStage

public class RecursiveGroupLayouter
extends AbstractLayoutStage

Applies a given layout algorithm to each content of a group node recursively in bottom up fashion. The size of the group nodes is recursively determined using a configurable GroupBoundsCalculator instance. This class can be run withouth a core layouter instance. In this case the group node bounds will be adjusted in bottom-up fashion only.


Field Summary
 
Fields inherited from interface y.layout.Layouter
EDGE_ID_DPKEY, NODE_ID_DPKEY, SELECTED_EDGES, SELECTED_NODES
 
Constructor Summary
RecursiveGroupLayouter()
          Creates a new instance of RecursiveGroupLayouter
RecursiveGroupLayouter(Layouter core)
          Creates a new instance of RecursiveGroupLayouter
RecursiveGroupLayouter(Layouter core, GroupBoundsCalculator gpc)
          Creates a new instance of RecursiveGroupLayouter
 
Method Summary
 boolean canLayout(LayoutGraph graph)
          Returns true iff the given graph can be layed out by this algorithm.
 void doLayout(LayoutGraph graph)
          Assigns a new graph layout to the given layout graph.
 GroupBoundsCalculator getGroupBoundsCalculator()
          Returns the currently installed GroupBoundsCalculator instance
 void setGroupBoundsCalculator(GroupBoundsCalculator groupBoundsCalculator)
          Sets the new GroupBoundsCalculator instance.
 
Methods inherited from class y.layout.AbstractLayoutStage
canLayoutCore, doLayoutCore, getCoreLayouter, setCoreLayouter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RecursiveGroupLayouter

public RecursiveGroupLayouter()
Creates a new instance of RecursiveGroupLayouter


RecursiveGroupLayouter

public RecursiveGroupLayouter(Layouter core)
Creates a new instance of RecursiveGroupLayouter


RecursiveGroupLayouter

public RecursiveGroupLayouter(Layouter core,
                              GroupBoundsCalculator gpc)
Creates a new instance of RecursiveGroupLayouter

Method Detail

canLayout

public boolean canLayout(LayoutGraph graph)
Description copied from interface: Layouter
Returns true iff the given graph can be layed out by this algorithm. Calling doLayout with the given graph as it's argument will only success if this method returns true.


doLayout

public void doLayout(LayoutGraph graph)
Description copied from interface: Layouter
Assigns a new graph layout to the given layout graph.


getGroupBoundsCalculator

public GroupBoundsCalculator getGroupBoundsCalculator()
Returns the currently installed GroupBoundsCalculator instance

Returns:
the GroupBoundsCalculator instance.

setGroupBoundsCalculator

public void setGroupBoundsCalculator(GroupBoundsCalculator groupBoundsCalculator)
Sets the new GroupBoundsCalculator instance.

Parameters:
groupBoundsCalculator - New GroupBoundsCalculator instance.

© Copyright 2000-2003,
yWorks GmbH.
All rights reserved.

2003