Einführung

HotDraw ist ein in Smalltalk (ParcPlace Smalltalk Release 4.1 oder VisualWorks) programmiertes zweidimensionales Grafik-Framework für objektbasierte Grafikeditoren. Es kann für viele verschiedene Applikationen eingesetzt werde, wie zum Beispiel ein einfaches Zeichenprogramm (Abbildung 1) oder einen grafischen Inspector (Abbildung 2).

Abbildung1: HotPaint Editor

Abbildung2: Drawing Inspector

Eine HotDraw-Anwendung bearbeitet Zeichnungen, die aus verschiedenen elementaren Zeichnungselementen bestehen. Zeichnungselemente sind zum Beispiel Linien, Ellipsen, Rechtecke, Text, Bezier-Kurven und vieles mehr. Zwei wichtige Klassen des HotDraw-Frameworks sind daher Drawing (die Zeichnung) und Figure (abstrakte Klasse aller Zeichnungselemente).
Ein HotDraw-Editor beinhaltet eine Menge von Werkzeugen. Werkzeuge werden eingesetzt um die Zeichnung interaktiv zu manipulieren. Der in Abbildung 3 dargestellte Standard-Editor besitzt eine große Anzahl von Werkzeugen. Sie werden links neben der Zeichnung in der Palette durch jeweils ein Symbol dargestellt und durch die Klasse Tool beschrieben.

Abbildung 3: Drawing Editor

Wird ein Zeichnungselement mit Hilfe des Selektionswerkzeugs ausgewählt, so wird eine dem Zeichnungselement zugehörige Menge von Handles dargestellt. Handles stellen eine Möglichkeit dar, die Eigenschaften eines Zeichnugselements mit der Maus zu verändern oder spezifische Aktionen durchzuführen. Die Beschreibung von Handles findet man in der abstrakten Klasse Handle.
Zeichnungselemente können auf verschiedenste Art und Weise miteinander verknüpft werden. Derartige Verknüpfungen werden als Constraints bezeichnet. Mit Constraints können beispielsweise Zeichnungselemente verbunden werden oder es kann gewährleistet werdem daß zwei Zeichnungselemente immer die gleiche Größe oder Farbe besitzen.
Die Klasse DrawingEditor repräsentiert den Standard-Editor von HotDraw und dient als Grundlage für alle weiteren Editoren. DrawingEditor kann als eingenständige Anwendung fungieren oder ein Teil in einer komplexen Smalltalk-Anwendung sein.
Dieses Hypertext-Dokument beschreibt das Design von HotDraw, d.h. die Klassen und die Beziehungen zwischen diesen Klassen.