3 Editor
Team: Finn Jacobs und Alexander Eckloff
Ähnlich dem Prototyp soll ein Editor für die Transitionssysteme
implementiert werden. Er soll folgende Eigenschaften besitzen:
-
Aufbau: Es soll möglich sein, ein Transitionssystem aus
Schablonen von Zuständen, Transitionen etc., aufbauen zu können.
Der Initialzustand soll jeweils speziell kenntlich sein.
- Speichern und Laden:
Die Systeme sollen gespeichert und geladen werden können.
- Selektieren: Einzelne Komponenten sollen selektiert werden
können. Das dient zur Vorbereitung weiterer Aktionen.
- Löschen & Kopieren: Es soll möglich sein, selektierte
Komponenten zu entfernen und zu kopieren.
- Highlight: der Editor soll eine Highlightfunktion zur
Verfügung stellen. Es soll möglich sein, Methodenaufrufe, bestimmte
Zustände und/oder Transitionen zu highlighten.
Designentscheidungen der Editorgruppe/Gui-Gruppe/Graphplatzierungsgruppe:
-
Es wird dem Editor ein gesamtes Programm (Klasse
absynt.Program) übergeben, welches der Editor anzuzeigen
hat.1.
- Es wird mit Swing gearbeit, um ein einheitliches
Schau-und-fühl zu bekommen. Falls es Probleme mit der Effizienz
gibt, wird es nicht schwer sein, auf AWT umzusatteln.
- Koordinaten werden relativ genommen, und zwar in Fließkommawerten
zwischen 0 und 1. Dies sind die Werte die für Zustände die
Position relativ zur Umgebenden Fläche bestimmen.
- Speichern und laden wird von der Gui übernommen.???
- Schnittstellen: Gui ruft Editor auf.
Temporäre Vereinbarung
Der Parser (Abschnitt 5) soll dem Editor ein Methode/Klasse
zur Verfügung stellen, die es erlaubt, Expresssions zu parsen (für die
Transitionen). Solange diese noch nicht bereitgestellt ist, werden diese
Fälle als absynt.Constval eingegeben (d.h., ein möglicherweise
eingegebener String wird ignoriert, da der Konstruktor
absynt.Constval nur boolsche Werte oder Integerwerte akzeptiert.
Schnittstelle
Mit der Gui (Abschnitt 2). Desweiterern mit dem Simulator
(Abschnutt 6). Es jedoch ist noch zu diskutieren, ob der
Simulator sich direkt an den Editor werdet oder ob dies
vermittels der Gui passiert, da ein Editor nur due Übersicht über
einen Prozess hat.
Auf jeden Fall: eine Methode highlight_state, als Übergabe
entweder
-
der Bezeichner des Zustandes, oder
- der Zustand als Objekt.
Die Wahl muß mit dem Simulator oder der Gui vereinbart werden, abhängig
davon, wer die Methode aufruft.
Eine wichtige Schnittstelle (wie bei allen) ist die abstrakte
Syntax. Um das Zeichnen zu unterstützen, wurde in die abstrakte Syntax
Koordinaten mit aufgenommen.
©Public License