# Eclipse undo/redo button reagiert nicht auf Änderungen in der OperationHistory



## Andi1804 (28. Feb 2012)

Hallo,
ich versuche einen Editor (Eclipse Plugin) mit undo/redo Funktionalität zu bauen.
Mein Editor implementiert das IUndoContext Interface:

```
@Override
public String getLabel() {
	return "MyUndoContext";
}

@Override
public boolean matches(IUndoContext context) {
	return this.getLabel().equals(context.getLabel());
}
```

Die OperationHistory wird so initialisiert:

```
operationHistory = PlatformUI.getWorkbench().getOperationSupport().getOperationHistory();
operationHistory.setLimit(this, 50); //this = editor, also UndoContext
```

Eine Operation wird wie folgt ausgeführt:

```
IUndoableOperation op = new SetContainerFeature(rew.getRuleEntries(), rew.getIndex(), ImportModelHelper.getEClassFeature((EReference)value));
op.addContext(undoContext);
operationHistory.execute(op,null,null);
```

Dies funktioniert alles ohne Probleme. Wenn ich die Methode

```
operationHistory.undo(this, null, null);
```
aufrufe wird die Operation auch rückgängig gemacht. 
Ich kann also eigene undo/redo Buttons bauen.
Die standard undo redo Menüeinträge in Eclipse reagieren aber nicht auf das Ausführen eines Befehls, sie bleiben immer ausgegraut. Ich würde aber diese Einträge gerne verwenden. 

Bei google habe ich leider keine Lösung für dieses Problem finden können. Hier im Forum gibt es einen Eintrag über das scheinbar gleiche Problem, jedoch wird es dort nicht gelöst.

Vielen Dank schonmal für eure Antworten.


----------



## Gast2 (28. Feb 2012)

Wie fügst du die Undo/Redo Button den dem Menü zu über die plugin.xml?


----------



## Andi1804 (28. Feb 2012)

Die undo / redo Buttons sind im Moment einfach im Editor als normale swt Buttons hinzugefügt. Es sind praktisch nur Testbuttons um zu testen ob die undo/redo Funktionalität überhaupt funktioniert (was auch der Fall ist). Ich könnte auch über die plugin.xml neue Actions hinzufügen von dort den undo/redo Aufruf starten, aber die wären ja auch nur zum Testen.

Entschuldigung ich habe mich im ersten Eintrag etwas unklar ausgedrückt. Ich will nicht selbst undo/redo Buttons hinzufügen sondern die Standard Menüeinträge in Eclipse für meine OperationHistory verwenden. Also Edit -> Undo... bzw. Edit -> Redo...
Und eben diese Einträge bleiben immer ausgegraut.


----------



## Gast2 (28. Feb 2012)

hast du eine eigenen rcp? oder meinst du die eclipse ide?


----------



## Andi1804 (28. Feb 2012)

Ich meine die eclipse ide


----------



## Wildcard (28. Feb 2012)

Du verwendest ja offensichtlich EMF. Lass dir den Standard EMF Editor für dein Modell generieren und schon hast du ein Beispiel wie man EMF Modelle an Undo/Redo der Workbench koppelt.


----------

