All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class edu.tucz.via.GraphLayout

java.lang.Object
   |
   +----edu.tucz.via.GraphicalObject
           |
           +----edu.tucz.via.CompositeGraphical
                   |
                   +----edu.tucz.via.GraphLayout

public class GraphLayout
extends CompositeGraphical
Dieses Layout ordnet die Knoten in einem sehr einfachen Layout für einen Graphen an. Alle Knoten werden einfach in einem Kreis aufgereiht.

Version:
1.01
Author:
Chris Hübsch

Variable Index

 o knoten
Die Knoten werden in diesem Attribut gespeichert.
 o pfeile
In diesem Vector werden die Pfeile, die die Knoten verbinden abgelegt.

Constructor Index

 o GraphLayout(Location, int)
Constructor.

Method Index

 o addItem(Knoten)
Fügt einen neuen Knoten hinzu.
 o addItem(Pfeil)
Fügt einen Pfeil zum Layout hinzu.
 o connect(int, int)
Verbindet zwei Knoten.
 o connect(Knoten, Knoten)
Verbindet zwei Knoten.
 o draw(Graphics)
Zeichnet alle Elemente neu.
 o exactLayout(Dimension)
Ordnet die Knoten im Kreis an.
 o getAllEffected(Knoten)
Ermittelt alle abhänigen Elemente.
 o getBoundingRect()
Ermittelt das Rechteck, das das gesamte Layout umschließt.
 o getRadius()
Ermittelt den Radius des Kreises, auf dem die Knotenmittelpunkte angeordnet werden.
 o layout(Dimension)
Paßt die Koordinaten der Knoten und Pfeile an die Diemensionen des Fensters an.
 o removeItem(Knoten)
Entfernt einen Knoten aus dem Layout.
 o removeItem(Pfeil)
Entfernt einen Pfeil.

Variables

 o knoten
  public Vector knoten
Die Knoten werden in diesem Attribut gespeichert.

 o pfeile
  public Vector pfeile
In diesem Vector werden die Pfeile, die die Knoten verbinden abgelegt.

Constructors

 o GraphLayout
  public GraphLayout(Location at,
                     int r)
Constructor. Die Knoten werden auf einem Kreis mit dem angegeben Radius ausgerichtet. Die Anordnung erfolgt im mathematisch negativen Sinn. Es werden die Mittelpunkte der Knoten als Position verwendet.

Parameters:
at - diese Position ist die Position, auf die der erste Knoten im Kreis gesetzt wird
r - der Radius des Kreises

Methods

 o exactLayout
  public void exactLayout(Dimension canvasSize)
Ordnet die Knoten im Kreis an. Der Radius wurde im Konstructor übergeben. Die Position der Pfeile wird ebenfalls angepaßt. Neu gezeichnet wird nicht.

Parameters:
canvasSize - die Größe des Gebietes, für das das Layout gemacht werden soll.
Overrides:
exactLayout in class CompositeGraphical
 o layout
  public void layout(Dimension canvasSize)
Paßt die Koordinaten der Knoten und Pfeile an die Diemensionen des Fensters an. Es wird aber die relative Position nicht geändert. Neu gezeichnet wird auch nicht.

Parameters:
canvasSize - die Größe des Gebietes, für das das Layout gemacht werden soll.
Overrides:
layout in class GraphicalObject
 o draw
  public void draw(Graphics g)
Zeichnet alle Elemente neu.

Parameters:
g - der Graphics auf den gezeichnet werden soll
Overrides:
draw in class GraphicalObject
 o addItem
  public void addItem(Knoten k)
Fügt einen neuen Knoten hinzu. Der Knoten wird am Ende angefügt. Es wird weder ein Layout gemacht, noch neu gezeichnet.

Parameters:
k - der hinzuzufügende Knoten
 o getAllEffected
  public Enumeration getAllEffected(Knoten connectedTo)
Ermittelt alle abhänigen Elemente. Wenn ein Knoten bewegt wird, so sind auch alle zu diesem Knoten hin/weg-zeigenden Pfeile und die an diese Pfeile angrenzenden Knoten betroffen. Diese Elemente werden an den Aufrufer in einer Enumeration zurückgegeben.

Parameters:
connectedTo - der Knoten, dessen "Nachbarschaft" ermittelt werden soll
Returns:
eine Enumeration mit den betroffenen Elementen
Overrides:
getAllEffected in class CompositeGraphical
See Also:
Enumeration
 o connect
  public void connect(Knoten k1,
                      Knoten k2)
Verbindet zwei Knoten. Es wird davon ausgegangen, daß die Knoten schon zum GraphLayout gehören. Als Pfeil wird der einfache "hinzeigende Pfeil" verwendet. Es wird weder ein Layout gemacht, noch neu gezeichnet.

Parameters:
k1 - Startknoten
 o connect
  public void connect(int k1,
                      int k2)
Verbindet zwei Knoten. Es wird davon ausgegangen, daß die Knoten schon zum GraphLayout gehören. Als Parameter werden die Positionsnummern in der Knotenliste verwendet. Als Pfeil wird der "doppelte Pfeil" verwendet. Es wird weder ein Layout gemacht, noch neu gezeichnet.

Parameters:
k1 - Startknoten
 o addItem
  public void addItem(Pfeil p)
Fügt einen Pfeil zum Layout hinzu. Der Pfeil wird an das Ende der Liste mit den Pfeilen gesetzt. Es ist nicht nötig, daß die Knoten, die er verbindet bereits zum Layout gehören müssen. Es wird weder ein Layout gemacht, noch neu gezeichnet.

Parameters:
p - der Pfeil, der hinzugefügt werden soll
 o removeItem
  public void removeItem(Pfeil p)
Entfernt einen Pfeil. Der Pfeil muß natürlich vorher vom Layout verwaltet worden sein. Es wird weder ein Layout gemacht, noch neu gezeichnet.

Parameters:
p - der zu entfernende Pfeil
 o removeItem
  public void removeItem(Knoten k)
Entfernt einen Knoten aus dem Layout. Es wird weder ein Layout gemacht, noch neu gezeichnet.

Parameters:
k - der zu entfernende Knoten
 o getBoundingRect
  public Rectangle getBoundingRect()
Ermittelt das Rechteck, das das gesamte Layout umschließt. Es wird bei Clipping Operationen verwendet.
Noch nicht implementiert!

Overrides:
getBoundingRect in class GraphicalObject
 o getRadius
  public int getRadius()
Ermittelt den Radius des Kreises, auf dem die Knotenmittelpunkte angeordnet werden. Es werden virtuelle Koordinaten verwendet.


All Packages  Class Hierarchy  This Package  Previous  Next  Index