Anwendungsmuster 1: Objektbasierter grafischer Editor

Kontext

HotDraw soll zur Erstellung eines objektbasierten grafischen Editors eingesetzt werden.

Problem

Wie kann mit HotDraw ein objektbasierter grafischer Editor erstellt werden?

Lösung

HotDraw stellt mit der Klasse DrawingEditor einen Standard-Editor zur Verfügung. Dieser Editor wird für die eigenen Zwecke modifiziert bzw. spezialisiert. Dazu muß eine Unterklasse von DrawingEditor gebildet werden.

Die weiteren Schritte dieses Anwendungsmusters sind vorbereitende Maßnahmen für die folgenden Anwendungsschritte:

Jede Zeichnung besteht aus einer Menge elementarer Zeichnungselemente. Zu Beginn sollte eine Liste erstellt werden, in der die für den Editor benötigten elementaren Zeichnungselemente aufgelistet sind. Diese Liste stellt die Grundlage zur Implementierung dieser Zeichnungselemente nach Anwendungsmuster 2 dar.

Mit Hilfe von Werkzeugen (Tools) kann der Benuzter die Zeichnung interaktiv manipulieren. Es sollte eine Liste aller Tools erstellt werden, die dem Benutzer zur Verfügung stehen sollen. Die Implementierung von Werkzeugen wird in Anwendungsmuster 7 beschrieben.

HotDraw bietet die Möglichkeit, Zeichnungen zu animieren. Falls der zu erstellende Editor Animation ermöglichen soll muß Anwendungsmuster 12 refernziert werden.

Ein HotDraw-Editor kann als eigenständige Anwendung eingesetzt werden. Es besteht aber auch die Möglichkeit, ihn als View in eine komplexe Anwendung zu integrieren. Die Integration des Editors in eine komplexe Anwendung wird in Anwendungsmuster 13 beschrieben.


Flußdiagramm


Erläuterungen

E1

DrawingEditor subclass: #MyEditor
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyCategory'