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
-
knoten
- Die Knoten werden in diesem Attribut gespeichert.
-
pfeile
- In diesem Vector werden die Pfeile, die die Knoten verbinden abgelegt.
-
GraphLayout(Location, int)
- Constructor.
-
addItem(Knoten)
- Fügt einen neuen Knoten hinzu.
-
addItem(Pfeil)
- Fügt einen Pfeil zum Layout hinzu.
-
connect(int, int)
- Verbindet zwei Knoten.
-
connect(Knoten, Knoten)
- Verbindet zwei Knoten.
-
draw(Graphics)
- Zeichnet alle Elemente neu.
-
exactLayout(Dimension)
- Ordnet die Knoten im Kreis an.
-
getAllEffected(Knoten)
- Ermittelt alle abhänigen Elemente.
-
getBoundingRect()
- Ermittelt das Rechteck, das das gesamte Layout umschließt.
-
getRadius()
- Ermittelt den Radius des Kreises, auf dem die Knotenmittelpunkte angeordnet werden.
-
layout(Dimension)
- Paßt die Koordinaten der Knoten und Pfeile an die Diemensionen des Fensters an.
-
removeItem(Knoten)
- Entfernt einen Knoten aus dem Layout.
-
removeItem(Pfeil)
- Entfernt einen Pfeil.
knoten
public Vector knoten
- Die Knoten werden in diesem Attribut gespeichert.
pfeile
public Vector pfeile
- In diesem Vector werden die Pfeile, die die Knoten verbinden abgelegt.
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
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
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
draw
public void draw(Graphics g)
- Zeichnet alle Elemente neu.
- Parameters:
- g - der Graphics auf den gezeichnet werden soll
- Overrides:
- draw in class GraphicalObject
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
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
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
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
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
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
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
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
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