Undo/Redo..?

Status
Nicht offen für weitere Antworten.

sirbender

Top Contributor
Hi,

hat jemand ein minimales Beispiel mit dem ich verstehen kann wie Undo/Redo funktioniert?

Mich intressieren vor allem Fragen wie:

Wie wird verhindert dass wenn ich ein UndoEdit ausfuehre um etwas rueckgaengig zu machen, diese Aktion nicht selbst wieder direkt als UndoableEdit gespeichert wird.

Wie man sinnvoll UndoableEdits kombiniert.
 

Wildcard

Top Contributor
Du redest von den konkreten Swing Klassen?

Wie wird verhindert dass wenn ich ein UndoEdit ausfuehre um etwas rueckgaengig zu machen, diese Aktion nicht selbst wieder direkt als UndoableEdit gespeichert wird.
Das tust du nicht. Du verwendest den gleichen UndoableEdit und rufst dessen undo Methode auf.
Wie man sinnvoll UndoableEdits kombiniert.
Da liegt ein Composite Muster zugrunde. UndoableEdit.add(UndoableEdit)
 

sirbender

Top Contributor
Du redest von den konkreten Swing Klassen?


Das tust du nicht. Du verwendest den gleichen UndoableEdit und rufst dessen undo Methode auf.

Da liegt ein Composite Muster zugrunde. UndoableEdit.add(UndoableEdit)

1. Ok, aber was wenn meine Undo Methode selbst etwas tue was direkt oder indirekt selbst ein UndoableEdit hinzufuegt?

Beispiel: JList -> Element wird entfernt. Triggert Hinzufuegen von RemoveUndoableEdit. Rufe ich undo() auf, wird dieses Element wieder der JList hinzugefuegt und triggert womoeglich das Hinzufuegen eines AddUndoableEdit.

2. Bei mir ist add nicht implementiert. Wie wuerde eine sinnvolle Implementierung aussehen?
 

Wildcard

Top Contributor
1. Mit Swing habe ich schon viele Jahre nichts mehr gemacht, aber AFAIR solltest du das nicht tun. Dein Edit ist in diesem Fall ganz einfach das Entfernen und nichts weiter.
2. Mit einer Liste oder einem Stack der Rückwärts und Vorwärts (undo/redo) abgespult wird.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben