package de.unisiegen.tpml.graphics.tree;
import java.awt.Dimension;
import java.awt.Point;
/**
* Interface for an node that should layouted in a tree.<br>
* @author marcell
*
*/
public interface TreeNodeComponent {
/**
* Should return the bottom position of the object where the
* arrow should be placed
* @return
*/
public Point getBottomArrowConnection ();
/**
* Should return the left position where the lines of the
* tree should be connected
* @return
*/
public Point getLeftArrowConnection ();
/**
* Should trigger an update for the node with the given
* maximum width.
*
* @param maxWidth
* @return
*/
public Dimension update (int maxWidth);
/**
* Should return the number of pixels any child node should be
* indentated.
*
* @return
*/
public int getIndentationWidth ();
/**
* Should delegate the method over to the {@link Component#setBounds(int, int, int, int)}-Method
* @param x
* @param y
* @param width
* @param height
*/
public void setBounds (int x, int y, int width, int height);
}