2024-07-02 19:13:30 +00:00
|
|
|
|
package OurApplication;
|
2024-06-15 19:55:30 +00:00
|
|
|
|
|
2024-07-02 19:13:30 +00:00
|
|
|
|
import visualisation.LegendArea;
|
|
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
|
import java.awt.*;
|
2024-06-15 19:55:30 +00:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This class represents a visualization.LegendArea implementation and has been created for demonstration purposes only.
|
|
|
|
|
* Method initialize(Graphics) is overridden and now implements logic for drawing parameters on the legend area.
|
2024-07-02 19:13:30 +00:00
|
|
|
|
* @author MSch<EFBFBD>fer
|
2024-06-15 19:55:30 +00:00
|
|
|
|
* DHBW Stuttgart/Campus Horb AI2008<br>
|
|
|
|
|
* <br>
|
|
|
|
|
*/
|
2024-07-02 19:13:30 +00:00
|
|
|
|
public class OurLegendArea extends LegendArea{
|
2024-06-15 19:55:30 +00:00
|
|
|
|
|
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Standard constructor
|
|
|
|
|
*/
|
2024-07-02 19:13:30 +00:00
|
|
|
|
public OurLegendArea(){
|
2024-06-15 19:55:30 +00:00
|
|
|
|
super();
|
|
|
|
|
|
|
|
|
|
//set the legend area's preferred size manually for best visualization
|
|
|
|
|
setPreferredSize(new Dimension(150, 170));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Overridden method from super class.
|
|
|
|
|
* Draws all elements and descriptions on the LegendArea
|
|
|
|
|
* @param g the Graphics object of the corresponding panel
|
|
|
|
|
*/
|
2024-07-07 10:17:28 +00:00
|
|
|
|
public void initialize(Graphics g) {
|
|
|
|
|
|
|
|
|
|
// Erstellt einen neuen TitledBorder für den Legendenbereich
|
|
|
|
|
setBorder(BorderFactory.createTitledBorder("LegendArea"));
|
|
|
|
|
|
|
|
|
|
// Zeichnet den roten Knoten (Start/End Knoten)
|
|
|
|
|
int y = 30; // Startposition für das Zeichnen der Legenden-Elemente
|
|
|
|
|
g.setColor(Color.RED);
|
|
|
|
|
g.fillOval(10, y, 20, 20); // Zeichnet einen kleinen Kreis (Knoten) mit der Farbe des Elements
|
|
|
|
|
g.setColor(Color.BLACK);
|
|
|
|
|
g.drawOval(10, y, 20, 20); // Zeichnet den Rand des Kreises
|
|
|
|
|
g.drawString("Start/End Knoten", 40, y + 15); // Zeichnet die Beschreibung neben dem Kreis
|
|
|
|
|
|
|
|
|
|
// Zeichnet den blauen Knoten (Besuchter Knoten)
|
|
|
|
|
y += 40; // Nach unten verschieben für das nächste Element
|
|
|
|
|
g.setColor(Color.BLUE);
|
|
|
|
|
g.fillOval(10, y, 20, 20); // Zeichnet einen kleinen Kreis (Knoten) mit der Farbe des Elements
|
|
|
|
|
g.setColor(Color.BLACK);
|
|
|
|
|
g.drawOval(10, y, 20, 20); // Zeichnet den Rand des Kreises
|
|
|
|
|
g.drawString("Besuchter Knoten", 40, y + 15); // Zeichnet die Beschreibung neben dem Kreis
|
|
|
|
|
|
|
|
|
|
// Zeichnet den gelben Knoten (Erreichbare Knoten)
|
|
|
|
|
y += 40; // Nach unten verschieben für das nächste Element
|
|
|
|
|
g.setColor(Color.YELLOW);
|
|
|
|
|
g.fillOval(10, y, 20, 20); // Zeichnet einen kleinen Kreis (Knoten) mit der Farbe des Elements
|
|
|
|
|
g.setColor(Color.BLACK);
|
|
|
|
|
g.drawOval(10, y, 20, 20); // Zeichnet den Rand des Kreises
|
|
|
|
|
g.drawString("Erreichbare Knoten", 40, y + 15); // Zeichnet die Beschreibung neben dem Kreis
|
|
|
|
|
|
|
|
|
|
// Zeichnet die schwarze Linie (Kanten Markierung)
|
|
|
|
|
y += 40; // Nach unten verschieben für das nächste Element
|
|
|
|
|
g.setColor(Color.BLACK);
|
|
|
|
|
g.drawLine(10, y + 10, 30, y + 10); // Zeichnet eine horizontale Linie
|
|
|
|
|
g.drawString("Kanten Markierung", 40, y + 15); // Zeichnet die Beschreibung neben der Linie
|
2024-06-15 19:55:30 +00:00
|
|
|
|
}
|
|
|
|
|
}
|