Behobene Fehler in Version 3.0
Version 3.0
Version 2.10
Version 2.95
Version 2.9
Version 2.8
Version 2.7
Version 2.6
Version 2.5

Behobene Fehler in Version 3.0

der boxbrowser liess sich nicht öffnen, nachdem eine verbindung zu einer bereits selektierten box gelegt wurde. (dubiose exception)

es liessen sich mit der shift-taste mehrere edges selektieren.

Redo von "Neue Box" platzierte die Box in der Miniansicht ganz links oben.

Löschen von mehreren Elementen im Boxbrowser verursachte einen Fehler.

Wenn "Bedingungen editieren" aktiv ist, werden keine Meldungen mehr in die Statuszeile geschrieben.

Bisher konnten Boxen zum Teil nicht verschoben werden

Kopieren von Boxen in ein neues Dokument speicherte die Boxenkanten mit den Boxids aus den Originalboxen ab --> konnte dazu führen, dass man die Datei nicht mehr öffnen konnte.

Diverse Probleme mit der Startbox:
Klickt man sich im Boxbrowser zur Startbox durch, wurde die Anzeige nicht richtig aktualisiert.
Zum Teil wurden beim Verschieben der Boxminiatur die Verbindungspfeile nicht korrekt angezeigt.
Nach Ansichtswechsel war Box 0 z.T. ganz links oben.

Aussehen der Box leicht verändert, so dass sie auch unter Mac OS X richtig angezeigt wird.

Die Verbindungen bleiben jetzt beim Kopieren von mehreren verknüpften Boxen erhalten.

Löschen des letzten Elements deaktiviert die Boxbuttons "Ändern" und "Löschen" wieder

In den Textfenstern sollten die Unix-Tasten für Kopieren, Ausschneiden und Einsetzen wieder verwendet werden können.

Version 3.0

- Nur noch der Button "Bedingungen editieren" im Fenster, welcher alle anderen Buttons ein- und ausblendet.
- Dateiendung ".pl" wird nur noch einmal angehängt (keine Verkettung .pl.pl.pl)
Boxen lassen sich auch dann nicht mehr zur Arbeitsfläche hinausschieben, wenn mehrere Boxen aufs Mal verschoben werden
- check-funktion : zunächst wird nur analysiert, reparieren kann man auf knopfdruck. (bisher: reaparatur erfolgte automatisch)

"Boxen im Raster anordnen" kann nun auch rückgängig gemacht werden

Verbindungsansicht verbessert:
Es kann zwischen Normaler Ansicht, Verbindungsansicht und Miniaturansicht gewechselt werden. In der Miniaturansicht wird ein Begrenzungsrahmen angezeigt, der der Grösse der Arbeitsfläche in der Normalansicht entspricht. Über diesen Rand kann man keine Box hinausschieben. Dadurch kann man nicht in der Miniaturansicht Boxen an einen weit entfernten Ort schieben, den man in der Normalansicht gar nicht sieht.
Die Rundungsfehler beim Vergrössern und Verkleinern sind beseitigt.
Für jedes Dokument lässt sich die Ansicht nun separat einstellen.
Beim Vergrössern und Verkleinern wird zur gerade selektierten Box gesprungen. Wenn keine Box selektiert ist, wird zur Box 0 gescrollt.
In der Verbindungsansicht und Miniaturansicht wird nun mit der Control-Taste Verbindungen gelegt und gelöscht und nicht mehr mit der Shift-Taste.
Die Löschtaste (Backspace) löscht nun Boxelemente nur noch in der Normalansicht, wo sie auch sichtbar sind.
Die Taste "Bedingungen editieren" ist nicht mehr aktiv in der Verbindungs- und Miniaturansicht.

suchen/ersetzen im boxbrowser
boxbrowser: taste "gehe zu"
boxbrowser kann gleichzeitig mit dem normalen display verwendet werden, alle änderungen werden laufend synchornisiert.
es gibt keine taste mehr, welche die änderungen übernimmt.
im boxbrowser funktioniert befehl-Z als Undo-Befehl.
beim Klick in eine Zelle wird nun (endlich!) die Zelle direkt editierbar.

setX kann aufgerufen werden unter File > Test Excercise.

Version 2.10

verbindungsansicht: boxen managing ermöglichen
menübefehl "alle auswählen"
menübefehl "alle löschen" löschen

Version 2.95

markierung von mehreren boxen in verbindungsansicht
boxen, die aneinander grenzen, tun es jetzt auch beim wechseln der ansicht (sie überlappen sich nicht mehr)
intern: boxlabels in verbindungsansicht sind jetzt immer vorhanden, werden nur durch setVisible() ein/ausgeblendet.
intern: boxbrowser wird pro dokument nur noch einmal erzeugt und dann ein/ausgeblendet
spaltenzahl: es dürfen keine werte unter 1 eingegeben werden
sätze generieren:
wenn keine boxen ausgewählt sind: dialog nicht bringen
optionen: schriftgrösse nicht kleiner als 7, nicht grösser als 48
die System.out.println - Meldungen deaktiviert
element-anzeige: elementanzeige muss verschwinden, wenn element nicht mehr selektiert
element-anzeige: nach erstellen eines neuen elements wird das element angezeigt.
auch die box ist aktiviert.
öffnen und speichern-dialoge: text jetzt in deutsch und englisch
der konsistenz-check macht jetzt darauf aufmerksam, wenn eine stepbox mit eingehenden verbindungen als followup-box deklariert wird.
bugs behoben beim ausschneiden von boxen (der menupunkt "einsetzen" wird jetzt überall aktiviert, box wird immer ausgeschnitten)

Version 2.9

- buttons für bedingungen besser gestaltet, zusätzlich backspace- und abbrechen-taste
- elemente werden jetzt hoffentlich immer automatisch selektiert und angezeigt

Version 2.8

Neu:
- löschen, einsetzen, kopieren und ausschneiden mit mehreren ausgewählten boxen möglich
- schriftgrösse kann in optionen eingestellt werden
- neuer boxentyp: eingabebox (grün), wie stepbox, jedoch mit unterschiedlicher prolog-erzeugung
- das file "user_data.set" wird nun im home-verzeichnis des users angelegt. vorteil: für jeden user können die präferenzen einzeln abgespeichert werden.

- wenn der benutzer versucht, zwischen stepboxen oder inputboxen eine zirkuläre verbindung zu machen, wird er gewarnt und kann abbrechen, oder er kann die verbindung erstellen, wobei er die möglichkeit hat, die bedingungen entsprechend anzupassen: aus zeile 1, bedingung "true" wird dann die bedingung "~1".
werden bei einer solchen box, die in einer zirkulären verbindung steht, neue einträge gemacht, erscheint im dialog nicht "true", sondern "~" plus zeilennummer. im boxbrowser erscheint bei neuen Einträgen "~X". X wird dann bei Bestätigen der Änderungen in die entsprechende Zeilennummer umgewandelt.

- Satzgenerator: Zeilen-IDs werden mit angezeigt, Punkte und Kommentare eingerückt mit neuer Zeile dargestellt.

Beseitigte Fehler:
- Bedingungen Satzgenerator: Nur noch der bisher durchlaufene und nicht der gesamte Zeilenpfad wird an Hand der Bedingungen getestet. Ausdrücke mit mehreren Klammern à la (a&b)#(c&d) werden jetzt richtig interpretiert.

- die grafischen icons im boxbrowser sind wieder sichtbar (der ordner "images" hatte einen nicht aufhebbaren leseschutz)

- Öffnen einer Datei, die schon einmal offen war bringt jetzt nicht mehr die Fehlermeldung "File already open".

- prologcode: elemente von followup-boxen erhalten jetzt auch eine delta-kante.


geplant

- abblenden von boxen

- Boxen löschen: Verbindungen neu legen
beim Rückgängigmachen müssen die neu verlegten Bindungen wieder entfernt werden
wie funktioniert das, wenn später mal mehrere Boxen gelöscht werden können?
- Auf Buttons bei den Boxen verzichten, stattdessen Buttons am Doc, die sich auf die jeweilige Box beziehen.
(zuviele Buttons brauchen zuviel platz & zuviel Speicher) -> zurückgestellt

- ev. müssen die daten der box ökonomisch repräsentiert werden. (sich auf die angaben beschränken, die im fileformat gespeichert werden)

- zusammenhang swing-komponenten - buttons nicht mehr an box - eingabe in der anzeige unten

Version 2.7 (7.1.02)

- Boxen auswählen mit Rechteck aufziehen
- Verschieben der ausgewählten Boxen

- Konsistenztest:
Nicht existierende Zeilen in den Bedingungen werden nicht nur entdeckt, sondern auch gelöscht
Unerlaubte Zeichen in den Bedingungen werden gelöscht. Hierbei kann ein Problem entstehen, wenn z.B. der Benutzer
statt "1#2" "1Ç2" eingibt. Der String wird dann in "12" umgewandelt. Vielleicht sollte hier nur eine Warnung, kein Löschen erfolgen.

Das Löschen erfolgt so, dass der Term auch nach dem Löschen formal zulässig ist, d.h. die zur Zahl gehörenden Operatoren
werden mitgelöscht. Beispiel: Zeile 3 existiert nicht und wird gelöscht.
Aus 2#3&4 wird 2&4
Aus 2&(~3) wird 2
Nicht existierende Followupbox-Einträge werden in "nil" verwandelt

- Öffnen/Speichern: zuletzt gewähltes Verzeichnis (behobener Bug)

- boxverschiebungen können nicht mehr rückgängig gemacht werden


Version 2.6 (12.12.01)

Menupunkt Optionen
Die Anzahl der Undo-Schritte kann angegeben werden. Maximal 50 sind erlaubt. Auf gewissen Rechnern kann eine hohe Zahl von Schritten dazu führen, dass nur noch eine eingeschränkte Anzahl Boxen verwaltet werden kann.
Die Grösse der Arbeitsfläche kann verändert werden, damit Boxen nicht übereinandergestapelt werden müssen, falls der Bereich zu klein wird. Verkleinert man nachträglich die Fläche, so akzeptiert das Programm dies nur, wenn sich keine Boxen ausserhalb des verkleinerten Bereichs befinden. Das Fenster kann nicht grösser gemacht werden als die Arbeitsfläche.
Beim Sätze generieren wird für jeden Satz die Punktzahl errechnet.

Bedingungen-Buttons
Bedingungen können jetzt angegeben werden ohne schreiben zu müssen. Man klickt auf "Bedingungen ein", dann auf verschiedene Elemente und logische Operatoren, und wenn man fertig ist, auf "Bedingungen aus". Die Bedingungen können gelöscht werden, und wenn nichts im Feld steht, werden die vorherigen weiterverwendet.

beliebigen Text suchen und ersetzen möglich

Boxen im Raster anordnen: Anzahl Spalten und Abstand zwischen den Boxen wird vom Benutzer angegeben. Kontrolle, ob das aufgrund der Grösse der Arbeitsfläche überhaupt möglich ist.

bei drag & drop der box zeigt ein rechteck (umriss der box) an, dass sie gerade verschoben wird.

eine Box kann nun durch Klick in die Liste, das graue Feld oder das Nummernfeld in den Vordergrund geholt werden.

Dokumentation: Im Ordner Docs befinden sich HTML-Files, welche die Java-Klassen und deren Methoden aufführen und (selten) erklären. Diese Dokumentation wird automatisch aus den Kommentaren im Programmcode erzeugt.
Behobene Fehler

Satzgenerator:
ALLE Sätze generieren ergibt nicht mehr eine NullPointerException.
Bei der Eingabe von Bedingungen werden jetzt allfällige Leerschläge entfernt, damit die Sätze-generieren-Methode damit umgehen kann.
Ein Satz wird auch ausgegeben, wenn kein passender Kommentar zu ihm existiert.
Wenn mehrere passende Kommentare in der selben Box für einen Satz existieren, wird der Satz trotzdem nur einmal ausgegeben - mit den passenden Kommentaren am Schluss.
(Will man eine bestimmte Reihenfolge der Kommentare erzwingen, empfiehlt es sich dennoch weiterhin, mehrere Kommentarboxen hintereinander zu setzen).

Punkte-Einträge werden überprüft, ob sie numerisch sind oder nicht.

Konsistenztest: Fehlende Zeilen wurden in Version 2.5 nicht mehr gefunden. Jetzt OK.

Boxbrowser:
man kann ihn wieder schliessen. die anderen probleme sind aber weiterhin nicht behoben.

Version 2.5 (2.11.01)

Wenn man das Löschen einer Box rückgängig macht, werden auch die Verbindungen wieder hergestellt, und dieser Fortschritt kommt jetzt auch beim Ausschneiden und Einsetzten von Boxen zum Tragen.

Punkte-Feld bei den Stepboxelementen, mit entspr. Anpassung bei Boxbrowser, Prologgenerator etc.

Checkbox "Auswählen" an der Box für Funktionen, bei denen mehrere Boxen ausgewählt werden müssen. Mit Shift-Click werden alle Boxen ausgewählt oder deaktiviert. Im Moment funktioniert das noch nicht so zuverlässig.

Die Sätze-Generieren-Funktion ist um einige Fehler ärmer.
bisher wurde kein output erzeugt, wenn
- nicht bei der Startbox, sondern sonst irgendwo begonnen wurde
- die startbox oder irgend eine box leer war
Nach wie vor erzeugt die Funktion keinen Output, wenn bei der Teilauswahl nicht von der Startbox her eine kontinuierliche Verbindung besteht, d.h. wenn boxen ausgelassen werden.
Ein Problem ist auch, dass sich im Fall von Teilauswahlen Bedingungen auf Linien beziehen, die gar nicht in dieser Auswahl enthalten sind.
Ein anderes Problem ist behoben: Normalerweise gibt es nur eine Startbox, doch bei Teilauswahlen können mehrere Boxen die Funktion der Startbox übernehmen. Jetzt werden für jede "Start"-Box die entsprechenden Sätze erzeugt.

Interne Änderungen: Andere interne Datenrepräsentation. Bisher: alle
Kanten in einem GraphData-Objekt zusammengefasst. Neu: Jede Box
enthält selbst die ihrigen Kanten. Intern werden für Kommentare und
Stepdaten keine eigenen Subklassen mehr angelegt. Am Import/Exportformat
(Prolog und .dat) hat sich deswegen nichts geändert. Es können auch
alte Files ohne Punktfeld importiert werden; dessen Kanten erhalten dann
einfach die Punktzahl 0.

Die Menus, Buttonbeschriftungen, Dialogmeldungen etc. bezieht die
Anwendung nun aus externen Files. Damit kann das Programm in
mehreren Sprachen geführt werden. (angabe der aufrufe)

Sonstige Änderungen: Die Hilfedatei ist um die neuen Funktionen
erweitert, ausserdem ausführlicher, weniger technokratisch und auch in
englisch.

Der Boxbrowser macht leider immer noch was er will, und seine Wege sind unergründlich. Seit ich versucht habe, etwas zu verbessern, kann man ihn nicht einmal mehr schliessen.