uk.ac.ic.doc.automed.editor.autolayout
Class AutoLayoutSpringObject

java.lang.Object
  extended by uk.ac.ic.doc.automed.editor.autolayout.AutoLayoutPositionable
      extended by uk.ac.ic.doc.automed.editor.autolayout.AutoLayoutSchemaObject
          extended by uk.ac.ic.doc.automed.editor.autolayout.AutoLayoutSpringObject

public class AutoLayoutSpringObject
extends AutoLayoutSchemaObject

Class to implement Kamada and Kawai's spring algorithm described in Information Processing Letters Volume 31, Issue 1, Pages 1-56.

Author:
Marcin Olawski

Field Summary
 
Fields inherited from class uk.ac.ic.doc.automed.editor.autolayout.AutoLayoutSchemaObject
boundsCorrection, myGraph
 
Fields inherited from class uk.ac.ic.doc.automed.editor.autolayout.AutoLayoutPositionable
autoLayoutPositionablesTable, currentSchema, myPositionableObj, newObjectsClass, pos
 
Constructor Summary
AutoLayoutSpringObject(Positionable positionableObject)
          Creates a new instance of AutoLayoutSpringObject
 
Method Summary
 void doLayout()
          Perform layout process on whole graph starting from this object.
 DPoint getDoublePosition()
          Give accurate object position.
 java.awt.Rectangle getFutureBounds()
           
protected  AutoLayoutSchemaObject[] getSchemaObjectsToLayout()
          Same as calling getSchemaObjectsToLayout(null)
static void initAutoLayoutPositionablesTable(Schema schema)
           
 void setFinalPosition()
          Set position in Automed GUI.
 
Methods inherited from class uk.ac.ic.doc.automed.editor.autolayout.AutoLayoutSchemaObject
getAbsolutePosition, getAllObjInSchema, getConstructClass, getDependentAutoLayoutPositionables, getDependentAutoLayoutPositionables, getFutureSchemaBounds, getObjectBetweenMeAnd, getReferencedAutoLayoutPositionables, getSchemaObjectsToLayout, hasChild, initializeMyGraph, isDependent, isOnCurrentSchema, setAbsolutePosition
 
Methods inherited from class uk.ac.ic.doc.automed.editor.autolayout.AutoLayoutPositionable
findAutoLayoutPositionableFor, getDrawable, getLabel, getPosition, isHide, round, setPosition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AutoLayoutSpringObject

public AutoLayoutSpringObject(Positionable positionableObject)
Creates a new instance of AutoLayoutSpringObject

Parameters:
positionableObject - Positionable object layouted by this AutoLayoutSpringObject.
Method Detail

doLayout

public void doLayout()
Perform layout process on whole graph starting from this object.

Overrides:
doLayout in class AutoLayoutPositionable

getDoublePosition

public DPoint getDoublePosition()
Give accurate object position.

Normally we use int precision to describe object position but in spring algorithm changes beetwen two iteration are so small that we need double precision

Returns:
Double precision point.

setFinalPosition

public void setFinalPosition()
Description copied from class: AutoLayoutSchemaObject
Set position in Automed GUI.

While doing algorithms iterations (method doLayout) objects position is stored in internal variable and GUI isn't updated. To update Automed GUI use this function.

Overrides:
setFinalPosition in class AutoLayoutSchemaObject

initAutoLayoutPositionablesTable

public static void initAutoLayoutPositionablesTable(Schema schema)

getSchemaObjectsToLayout

protected AutoLayoutSchemaObject[] getSchemaObjectsToLayout()
Description copied from class: AutoLayoutSchemaObject
Same as calling getSchemaObjectsToLayout(null)

Overrides:
getSchemaObjectsToLayout in class AutoLayoutSchemaObject

getFutureBounds

public java.awt.Rectangle getFutureBounds()
Overrides:
getFutureBounds in class AutoLayoutSchemaObject