Bonjour à tous,

Dans le cadre de mon application, je dois limiter la pile des opérations d'undo/redo aux 5 dernières opérations pour chaque Vue et Editeurs de ma perspective. Pour le moment, la technique que j'ai implémenté consiste à créer un UndoContext pour chaque Vue et chaque instance d'Editeur :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
IUndoContext undoContext = new UndoContext();
UndoRedoActionGroup undoRedoActions = new UndoRedoActionGroup(getSite(), undoContext, true);
undoRedoActions.fillActionBars(getEditorSite().getActionBars());
// set the limit of operation in the OperationHistory
IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
operationHistory.setLimit(undoContext, 5);

Ensuite, je crée un OperationHistoryListener pour chaque Part et je l'ajoutes à la liste des listeners de l'operationHistory. Quand une opération d'édition est faite sur un Editeur, j'ajoute son UndoContext à cette opération.

Mon problème, c'est que quand j'ai plusieurs Editeurs ouvert et que je fais une opération d'édition, cette première opération ne met pas à jour le label de l'action d'undo dans le menu Edit... Quand une seconde opération d'édition est effectué sur un autre éditeur, l'action d'undo est permise et mise à jour pour chaque éditeur -_-".
En d'autres termes, je peux annuler cette opération sur le second éditeur à partir de n'importe quel autre.

Une idée de ce que je pourrais faire de travers?
Gueritarish