Eclipse RCP: Undo / Redo für TreeViewer

TimTam

Grünschnabel
Hallo zusammen,

ich habe ein Problem, wo ich seit einigen Tagen dran sitze.

Ich möchte die Menüpunkte undo / redo implementieren. Die Menuitems sind im Menu sichtbar, aber deaktiviert.

Wenn man auf undo klickt, soll der alte Zustand des Baumes dargestellt werden.
Jetzt wollte ich ein UndoContext setzen.

So habe ich jetzt angefangen:
Java:
 private void init() {
	      
	      IUndoContext undoContext = .....getUndoContext();
	      
	      undoAction = new UndoActionHandler( ... , undoContext);
	      redoAction = new RedoActionHandler( ... , undoContext);
	      
	      
	      final IActionBars actionBars = .... getActionBars();

	      actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),undoAction);
	      actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),redoAction);
	      actionBars.updateActionBars();
	      
	  }
Ich würde gerne wissen, ob ich überhaupt so vorgehen kann.

Es wäre sehr nett, wenn ich von euch einen Tipp bekommen würde. Vielen Dank!
 
Zuletzt bearbeitet:
Ich habe jetzt die Menupunkte Undo Redo aktiviert bekommen, aber rückgängig kann ich es noch nicht machen!

Ich habe mir die vorgeschlagene Links angeschaut. Wie ich verstanden habe - in meinem Fall - soll ich die OperationHistory mit dem UndoContext benutzen. In der OperationHistory ist der UndoManager schon implementiert.

Da ich ja einen selbst definierten Editor habe, weiß ich nicht, wo ich jetzt diese OperationHistory definiere.

Ich bin für jeden Hinweis dankbar!
 
Über die Instanz deines UndoManager kann man über addEdit ein neues AbstractUndoableEdit erzeugen. Wie das geht, wird hier gezeigt.

Sorry, dass ich mit Links antworten muss. Da ich aber Deinen Code nicht habe und nicht genau weiss, was Du am entwickeln bist, muss ich mutmaßen.
 
Zurück