/*
* YAV (Yet another Visualiser)
* (c) 2004 by Robin Quast
* Version 1.0 (04.03.2004)
*
* erstellt im Rahmen der Diplomarbeit
* "Theorie und Java- Realisierung
* ausgewählter Algorithmen zur
* Bestimmung kürzester Wege in Graphen"
*
* betreut durch Prof. Dr. Lenze
* an der Fachhochschule Dortmund
* im SS 2003/ WS 2003/2004
*
* @(#)GraphNode.java 1.0 04/03/09
*/
import java.awt.*;
import java.io.*;
/* implements Compareable!! wichtig für das Zeichnen der Liste
*/
/** Klasse die neben der Node Information noch das dem Knoten umgebene Rechteck
* enthält, sowie die Farbe in der der Knoten gefüllt werden soll.
*/
class GraphNode
extends Node
implements Comparable, Serializable
{
Rectangle rectangle = null;
Color color = Color.white;
/** Einen GraphNode mit dem Knoten <I>n</I> und dem Rechteckt <I>r</I> erzeugen.
*/
public GraphNode (Node n, Rectangle r) {
value = n.getValue();
rectangle = r;
}
/** Einen GraphNode mit dem GraphNode <I>gn</I> erzeugen.
*/
public GraphNode (GraphNode gn) {
value = gn.getValue();
rectangle = gn.rectangle;
}
/** Einen GraphNode mit dem Knoten <I>n</I> und dem Rechteckt <I>r</I> erzeugen.
*/
public GraphNode (int n, Rectangle r) {
value = n;
rectangle = r;
}
/** Einen GraphNode mit dem Knoten <I>n</I> und dem Rechteckt
* <I>(x,y,width,height)</I> erzeugen.
*/
public GraphNode (int n, int x, int y, int width, int height) {
value = n;
rectangle = new Rectangle (x,y,width,height);
}
/** Setzen der Farbe.
*/
public void setColor (Color c) {
color = c;
}
/** Holen der Farbe.
*/
public Color getColor() {
return color;
}
/** Setzen des Rechtecks, bzw. deren Position.
*/
public void setRectangleLocation(int x,int y){
rectangle.setLocation(x, y);
}
/** Zurückgeben des Rechtecks.
*/
public Rectangle getRectangle() {
return rectangle;
}
/** Zurückgeben des Knotens.
*/
public Node getNode() {
return new Node(value);
}
/** Setzen des Knotens.
*/
public void setNode(int v) {
value=v;
}
/** Vergleichen mit einem anderen Knoten. Das Ergebnis ist der Klasse Node
* und der Methode compareTo zu entnehmen.
*/
public int compareTo (GraphNode n) {
return compareTo(n.getValue());
}
/** Vergleichen mit einem anderen Knoten. Das Ergebnis ist der Klasse Node
* und der Methode compareTo zu entnehmen.
*/
public int compareTo (Object n) {
return compareTo ((GraphNode) n);
}
/** Erzeuge aus dem GraphNode einen String.
*/
public String toString() {
return "["+value+","+rectangle.toString()+","+color.toString()+"]";
}
}
|