formula.display
Class DispObject

java.lang.Object
  extended by formula.display.DispObject
Direct Known Subclasses:
DispFence, DispFract, DispMultiScript, DispOver, DispOverline, DispRow, DispSqrt, DispString, DispTab, DispUnder, DispUnderline, DispUnderover

public class DispObject
extends java.lang.Object

Basisklasse aller Objekte zur grafischen Darstellung in mathematischen Formeln. Copyright (C) 2006, Rene Heuer, Salingtwiete 4g. (D)20535 Hamburg eMail: heuer@exmpl.de Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.


Field Summary
static int BASELINE
          Klassenvariable zur Kodierung ob Baseline angezeigt werden soll.
 java.awt.geom.Rectangle2D bnd
          Umgebendes Rechteck des Zeichens.
static int BOUNDS
          Klassenvariable zur Kodierung ob umgebendes Rechteck angezeigt werden soll.
 double bse
          Position der Grundlinie.
 char chr
          Darzustellendes Zeichen.
 java.awt.Color col
          Farbe des Zeichens.
static double defaultCharSpace
          Klassenvariable mit Abstand zwischen den Zeichen eines MathString.
static java.awt.Color defaultColor
          Klassenvariable mit Farbe der "normalen" Darstellung.
static double defaultColumnSpace
          Klassenvariable mit Abstand zwischen den Elementen einer MathCol.
static java.awt.font.FontRenderContext defaultContext
          Klassenvariable mit Infos zum "normalen" Rendering.
static java.awt.Font defaultFont
          Klassenvariable mit Zeichensatz der "normalen" Darstellung.
static double defaultRowSpace
          Klassenvariable mit Abstand zwischen den Elementen einer MathRow.
 java.awt.Font fnt
          Zeichensatz der Darstellung.
 java.awt.font.FontRenderContext frc
          Informationen zum Rendering.
static int HORIZONTAL
          Klassenvariable zur Kodierung des horizontalen Dehnens.
 java.util.LinkedList<DispObject> objects
          Liste mit allen Kind-Objekten.
static java.io.PrintWriter out
          PrintWriter zum einheitlichen Aufbau der Ausgaben.
 DispObject parent
          Referenz zum Elter-Objekt.
 java.awt.Shape shp
          Shape (Linienzug der Glyphe).
static double subScale
          Prozentuale Verkleinerung des Sub-Scriptums.
static double subScript
          Prozentuale Verschiebung des Sub-Scriptums.
static double supScale
          Prozentuale Verkleinerung des Sup-Scriptums.
static double supScript
          Prozentuale Verschiebung des Sup-Scriptums.
static java.io.StringWriter term
          Writer zum Aufbau der Anzeige als Term.
static int VERTICAL
          Klassenvariable zur Kodierung des vertikalen Dehnens.
 
Constructor Summary
DispObject()
           
 
Method Summary
static void append(DispObject prt, DispObject obj)
          Objekte an die Objektliste anhängen.
static void bounds(DispObject obj, java.awt.geom.Rectangle2D[] tupel)
          Bounds eines Objekts aus dem Tupel des Alignments ermitteln.
static java.lang.String byteToHex(byte b)
          Wert eines Bytes in hexadezimaler Kodierung als String übergeben.
static void characterData(DispObject obj, char chr)
          Signifikante Daten eines Characters für das Objekt ermitteln.
static java.lang.String charToHex(char c)
          Hexadezimale Kodierung eines Characters als String übergeben.
static void compress(DispObject obj)
          Kompimieren des umgebenden Rechtecks eines Characters auf den Bereich des zu zeichnenden Linienzugs.
static java.lang.String getText(DispObject obj)
          Zeichen des Objekts als String übergeben.
static void paint(DispObject obj, int what, java.awt.Graphics2D g2d)
          Darstellung eines DispObjects.
static void paintAt(DispObject obj, int what, java.awt.Graphics2D g2d, double xpos, double ypos)
          Positionierte Darstellung eines DispObjects.
static void print(int deep, DispObject obj)
          Objekt rekursiv als Text ausgeben.
static void relPos(DispObject obj, double dx, double dy)
          Position des Objekts und aller Sub-Objekte.
static void resize(DispObject obj, double fct)
          Objekt und aller Sub-Objekte skalieren.
static void scale(DispObject obj, double rng, int how)
          Skalieren des Linienzugs eines Characters.
static void setColor(DispObject obj, java.awt.Color color)
          Farbe für ein bestimmtes Objekt der Klasse DispObject festlegen.
static void setDefaultColor(java.awt.Color color)
          Farbe für alle Objekte dieser Klasse festlegen.
static void setDefaultFont(java.awt.Font font)
          Zeichensatz für alle Objekte dieser Klasse festlegen.
static void setDefaultRenderContext(java.awt.font.FontRenderContext context)
          FontRenderContext für alle Objekte dieser Klasse festlegen.
static void setDefaultSpacing()
          Abstand zwischen den Zeichen einer MathString dieser Klasse festlegen.
static void setFont(DispObject obj, java.awt.Font font)
          Zeichensatz für ein bestimmtes Objekt der Klasse DispObject festlegen.
static void setRenderContext(DispObject obj, java.awt.font.FontRenderContext context)
          FontRenderContext für ein bestimmtes Objekt der Klasse DispObject festlegen.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parent

public DispObject parent
Referenz zum Elter-Objekt.


objects

public java.util.LinkedList<DispObject> objects
Liste mit allen Kind-Objekten.


chr

public char chr
Darzustellendes Zeichen. Mit Space initialisiert, weil nicht darstellbar.


shp

public java.awt.Shape shp
Shape (Linienzug der Glyphe).


bnd

public java.awt.geom.Rectangle2D bnd
Umgebendes Rechteck des Zeichens.


bse

public double bse
Position der Grundlinie. Relativ zur oberen linken Ecke des umgebenden Rechtecks.


col

public java.awt.Color col
Farbe des Zeichens.


fnt

public java.awt.Font fnt
Zeichensatz der Darstellung.


frc

public java.awt.font.FontRenderContext frc
Informationen zum Rendering.


defaultColor

public static java.awt.Color defaultColor
Klassenvariable mit Farbe der "normalen" Darstellung.


defaultFont

public static java.awt.Font defaultFont
Klassenvariable mit Zeichensatz der "normalen" Darstellung.


defaultContext

public static java.awt.font.FontRenderContext defaultContext
Klassenvariable mit Infos zum "normalen" Rendering.


defaultCharSpace

public static double defaultCharSpace
Klassenvariable mit Abstand zwischen den Zeichen eines MathString.


defaultRowSpace

public static double defaultRowSpace
Klassenvariable mit Abstand zwischen den Elementen einer MathRow.


defaultColumnSpace

public static double defaultColumnSpace
Klassenvariable mit Abstand zwischen den Elementen einer MathCol.


subScript

public static double subScript
Prozentuale Verschiebung des Sub-Scriptums.


subScale

public static double subScale
Prozentuale Verkleinerung des Sub-Scriptums.


supScript

public static double supScript
Prozentuale Verschiebung des Sup-Scriptums.


supScale

public static double supScale
Prozentuale Verkleinerung des Sup-Scriptums.


term

public static java.io.StringWriter term
Writer zum Aufbau der Anzeige als Term.


out

public static java.io.PrintWriter out
PrintWriter zum einheitlichen Aufbau der Ausgaben.


HORIZONTAL

public static final int HORIZONTAL
Klassenvariable zur Kodierung des horizontalen Dehnens.

See Also:
scale(DispObject, double, int), Constant Field Values

VERTICAL

public static final int VERTICAL
Klassenvariable zur Kodierung des vertikalen Dehnens.

See Also:
scale(DispObject, double, int), Constant Field Values

BASELINE

public static final int BASELINE
Klassenvariable zur Kodierung ob Baseline angezeigt werden soll.

See Also:
paint(DispObject, int, Graphics2D), paintAt(DispObject, int, Graphics2D, double, double), Constant Field Values

BOUNDS

public static final int BOUNDS
Klassenvariable zur Kodierung ob umgebendes Rechteck angezeigt werden soll.

See Also:
paint(DispObject, int, Graphics2D), paintAt(DispObject, int, Graphics2D, double, double), Constant Field Values
Constructor Detail

DispObject

public DispObject()
Method Detail

setDefaultColor

public static void setDefaultColor(java.awt.Color color)
Farbe für alle Objekte dieser Klasse festlegen.

Parameters:
color - Die Farbe für Objekte dieser Klasse.

setDefaultFont

public static void setDefaultFont(java.awt.Font font)
Zeichensatz für alle Objekte dieser Klasse festlegen.

Parameters:
font - Der Zeichensatz für Objekte dieser Klasse.

setDefaultRenderContext

public static void setDefaultRenderContext(java.awt.font.FontRenderContext context)
FontRenderContext für alle Objekte dieser Klasse festlegen.

Parameters:
context - Der FontRenderContext für Objekte dieser Klasse.

setDefaultSpacing

public static void setDefaultSpacing()
Abstand zwischen den Zeichen einer MathString dieser Klasse festlegen. Es wird ein Wert in Abhängigkeit des Zeichensatzes verwendet.


setColor

public static void setColor(DispObject obj,
                            java.awt.Color color)
Farbe für ein bestimmtes Objekt der Klasse DispObject festlegen.

Parameters:
obj - Objekt, welches neue Farbe erhalten soll.
color - Farbe für dieses Objekt.

setFont

public static void setFont(DispObject obj,
                           java.awt.Font font)
Zeichensatz für ein bestimmtes Objekt der Klasse DispObject festlegen.

Parameters:
obj - Objekt, welches neuen Zeichensatz erhalten soll.
font - Zeichensatz für dieses Objekt.

setRenderContext

public static void setRenderContext(DispObject obj,
                                    java.awt.font.FontRenderContext context)
FontRenderContext für ein bestimmtes Objekt der Klasse DispObject festlegen.

Parameters:
obj - Objekt, welches neuen Zeichensatz erhalten soll.
context - FontRenderContext für dieses Objekt.

characterData

public static void characterData(DispObject obj,
                                 char chr)
Signifikante Daten eines Characters für das Objekt ermitteln.

Parameters:
obj - DispObject das den Character chr erthält.
chr - Character des DispObjects. //@param fnt Zeichensatz des Characters. //@param frc RenderContext des Characters.

append

public static void append(DispObject prt,
                          DispObject obj)
Objekte an die Objektliste anhängen. Damit wird eine Elter-Kind-Beziehung hergestellt.

Parameters:
prt - Elter-Objekt.
obj - Anzuhängendes Objekt (Kind)

bounds

public static void bounds(DispObject obj,
                          java.awt.geom.Rectangle2D[] tupel)
Bounds eines Objekts aus dem Tupel des Alignments ermitteln. Diese Methode wird in vielen "build"-Methoden benutzt.

Parameters:
obj - Objekt, dessen umgebendes Rechteck zu ermitteln ist.
tupel - Array mit den ausgrichteten Rechtecken der in "obj" enthaltenen Objekte.

compress

public static void compress(DispObject obj)
Kompimieren des umgebenden Rechtecks eines Characters auf den Bereich des zu zeichnenden Linienzugs. Die neuen Daten des Characters werden in das DispObject übernommen. Es werden nur Objekte mit vorhandenem Linienzug bearbeitet.

Parameters:
obj - DispObject mit zu komprimierendem Character.

scale

public static void scale(DispObject obj,
                         double rng,
                         int how)
Skalieren des Linienzugs eines Characters. Die BaseLine liegt nach Ausführung am unteren Ende des Linienzugs, genau wie bei einem komprimierten Character.

Parameters:
obj - DispObject mit dem zu skalierenden Character.
rng - Bereich über den die Skalierung stattfindet.
how - Angabe ob vertikale und/oder horizontale Skalierung.
See Also:
HORIZONTAL, VERTICAL

relPos

public static void relPos(DispObject obj,
                          double dx,
                          double dy)
Position des Objekts und aller Sub-Objekte. relativ zur aktuellen Position neu positionieren.

Parameters:
obj - Betroffenes Objekt.
dx - X-Position der Hülle.
dy - Y-Position der Hülle.

resize

public static void resize(DispObject obj,
                          double fct)
Objekt und aller Sub-Objekte skalieren.

Parameters:
obj - Betroffenes Objekt.
fct - Skalierungsfacktor

paint

public static void paint(DispObject obj,
                         int what,
                         java.awt.Graphics2D g2d)
Darstellung eines DispObjects.

Parameters:
obj - Das darzustellende Object.
what - Darstellung mit Grundlinie (BASELINE) und oder Rahmen (BOUNDS).
g2d - Der grafische Kontext für die Darstellung.
See Also:
BASELINE, BOUNDS

paintAt

public static void paintAt(DispObject obj,
                           int what,
                           java.awt.Graphics2D g2d,
                           double xpos,
                           double ypos)
Positionierte Darstellung eines DispObjects.

Parameters:
obj - Das darzustellende Object.
what - Darstellung mit Grundlinie (BASELINE) und oder Rahmen (BOUNDS).
g2d - Der grafische Kontext für die Darstellung.
xpos - Horizontale Position im Darstellungsbereich. Bezug ist die linke Seite des umgebenden Rechtecks.
ypos - Vertikale Position im Darstellungsbereich. Bezug obere Seite des umgebenden Rechtecks.
See Also:
BASELINE, BOUNDS

byteToHex

public static java.lang.String byteToHex(byte b)
Wert eines Bytes in hexadezimaler Kodierung als String übergeben.

Parameters:
b - Byte, dessen Hex-kodierter Wert gefragt ist.
Returns:
String mit hexadezimaler Kodierung des Bytes.

charToHex

public static java.lang.String charToHex(char c)
Hexadezimale Kodierung eines Characters als String übergeben.

Parameters:
c - Character im UTF16-Format.
Returns:
String mit hexadezimaler Kodierung des Characters.

getText

public static java.lang.String getText(DispObject obj)
Zeichen des Objekts als String übergeben. Wenn das Zeichen nicht Buchtabe, Ziffer oder Klammer im ASCII-Bereich ist, wird der entsprechende Unicode-16 in der Form "\\uXXXX" übergeben.

Parameters:
obj - Objekt mit einzelnem Zeichen (Basisklasse).
Returns:
Das Zeichen als String.

print

public static void print(int deep,
                         DispObject obj)
Objekt rekursiv als Text ausgeben.

Parameters:
deep - Tiefe der Einrückung. Dient der strukturierten Ausgabe.
obj - Auszugebendes Objekt.