# JavaEditor mit Undo Funktion



## Rudolf (25. Mai 2010)

Hi,

wir haben die Aufgabe nen TextEditor zu proggen, der das Command Pattern verwendet und eine Undo() Methode unterstützt. Mir gehts um die expliziet nur um den Command Pattern, das Grobe ist bereits gemacht, aber wie genau soll die Undo Methode arbeiten, vll gibts hier ein paar Tipps.


----------



## hemeroc (25. Mai 2010)

Hier mal ein paar Infos dazu:

Command pattern - Wikipedia, the free encyclopedia
Add an undo/redo function to your Java apps with Swing - JavaWorld
versuch dich mal daran und wenn du noch Fragen hast sag bescheid.

LG Hemeroc


----------



## Rudolf (25. Mai 2010)

Das ist mir bereits alles bekannt,

habe sogar das Command Pattern von Headfirst bereits implementiert.

Wie kann ich mein Programm hier veröffentlichen?

Mein Problem ist nun, dass ich nicht weiß wie ich MultiUndos hinkriege. Mein Undo geht nur soweit wie mein letzter ausgeführter Befehl. Aber was passiert, wenn mehrere Befehle hintereinander ausgeführt werden. Das Undo muss sich also merken welches Befehl in welcher Reihenfolge ausgeführt wurde und dazu die entsprechenden undo Methoden der jeweiligen CommandMethoden ausführen.

Wie kriege ich das am besten hin?


----------



## Gastredner (26. Mai 2010)

Rudolf hat gesagt.:


> Wie kann ich mein Programm hier veröffentlichen?


Als fertiges Programm oder als Quellcode? Im ersten Falle das .jar als Anhang hochladen, im letzteren den Quellcode in [noparse]
	
	
	
	





```

```
[/noparse]-Tags posten.



> Mein Problem ist nun, dass ich nicht weiß wie ich MultiUndos hinkriege. Mein Undo geht nur soweit wie mein letzter ausgeführter Befehl. Aber was passiert, wenn mehrere Befehle hintereinander ausgeführt werden. Das Undo muss sich also merken welches Befehl in welcher Reihenfolge ausgeführt wurde und dazu die entsprechenden undo Methoden der jeweiligen CommandMethoden ausführen.
> 
> Wie kriege ich das am besten hin?


Mit einem Stack? Einfach jede Änderung bzw. jeden Schritt auf den Stack legen und beim Undo-Aufruf die jeweils oberste Aktion rückgängig machen.


----------

