JHotDraw
# JHotDraw

JHotDraw ist ein freies, Java-basiertes Framework zur Erstellung von grafischen Editoren. Typische Bestandteile dieser Art von Editoren sind domänenspezifische, grafische Objekte (engl.: Figures) und Sichten (engl.: Views), Werkzeugpaletten (engl.: tool palette) und eine konsistente Art und Weise diese Objekte zu sondieren und zu manipulieren.

## Anwendungen von JHotDraw

UML-Editoren, Workflow-Management-Systeme oder (grafische) Petri-Netz-Simulatoren sind prädestinierte Anwendungen für JHotDraw.

## Benutzung von JHotDraw

Charakteristischer Unterschied gegenüber Klassenbibliotheken ist, dass der Kontrollfluss vom Framework vorgegeben wird. Der Benutzer des Frameworks kann sich mittels Vererbung und dem Überladen dafür vorgesehener Methoden in die Ereignisverarbeitung (Maus-/Tastatur-Events, Repaint-Events) einklinken, um domänenspezifische Funktionalität zu implementieren.

## Entwurfsmuster in JHotDraw

JHotDraw wird (nicht nur) im akademischen Bereich gerne genutzt, um den gewinnbringenden Einsatz von Entwurfsmuster (engl. "design patterns") zu demonstrieren und zu untersuchen. Erich Gamma, Mitautor des GoF-Buchs "Entwurfsmuster – Elemente wiederverwendbarer objektorientierter Software" ist einer der Entwickler von JHotDraw.

## Wurzeln

Die Wurzeln von JHotDraw liegen im Smalltalk-basierten "HotDraw"-Framework.

## Alternativen

Es gibt diverse andere Frameworks, die ähnliche Funktionalität bieten wie JHotDraw. Hauptkonkurrent ist das ebenfalls kostenlose Graphical Editing Framework (GEF) aus dem Eclipse-Projekt, welches statt AWT/Swing das SWT-Toolkit nutzt. Damit ist man bei der Wahl des Widget-Toolkits relativ festgelegt, auch wenn Brücken-Komponenten entwickelt werden um Swing/Java2D-basierte Subsysteme mit SWT (und umgekehrt) nutzen zu können. Das Piccolo-Projekt bietet einen komplexen, Scene-Graph basierten Ansatz zur Darstellung von Figuren sowie als spezielles Merkmal stufenlose Vergrößerung auf Basis von Java2D.

