/*
* 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
*
* @(#)AdjazenzlistenViewer.java 1.0 04/03/09
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.color.*;
import javax.swing.*;
import javax.swing.border.*;
import java.net.*;
import java.io.*;
import java.awt.geom.*;
import java.awt.print.PrinterJob;
import java.awt.print.*;
/** Diese Klasse dient zur visuellen Darstellung und der Druckerausgabe
* der Adjazenzliste. Die Adjazenzliste wird in einem JEditorPane als HTML
* formattierter Text angezeigt. Der Text ist nicht editierbar.
*/
class AdjazenzlistenViewer
extends JScrollPane
implements Printable {
JEditorPane adlistPane = null;
//??? AdjazenzmatrixTable admatrix = null;
/** Konstruktor. Der Textinhalt bleibt leer.
*/
public AdjazenzlistenViewer () {
adlistPane = new JEditorPane("text/html", "");
adlistPane.setEditable(false);
getViewport().add(adlistPane);
}
/** Konstruktor. Der Textinhalt wird auf den String adjazenzliste
* gesetzt. Dieser enthält die Adjazenzliste im HTML Format. Zur Umwandlung
* kann die Methode toHTML() der Klasse <i>Adjazenzliste</I> genutzt werden.
*
*/
public AdjazenzlistenViewer (String adjazenzliste) {
adlistPane = new JEditorPane("text/html", adjazenzliste);
adlistPane.setEditable(false);
getViewport().add(adlistPane);
}
/** Setzt den Text auf den per Parameter übergebenen String.
*/
public void setText (String adjazenzliste) {
adlistPane.setText(adjazenzliste);
}
/** Druckt die Adjazenzliste mittels der Java Druckausgabe.
*/
public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
if (pi >= 1) {
return Printable.NO_SUCH_PAGE;
}
Graphics2D g2d=(Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
double scale =Math.min(pf.getImageableWidth()/getWidth(),pf.getImageableHeight()/getHeight());
scale=Math.min(1.0,scale);
g2d.translate(pf.getImageableX(), pf.getImageableY());
g2d.scale(scale, scale);
adlistPane.print(g2d);
return Printable.PAGE_EXISTS;
}
}
|