2010-06-03 4 views
4

dans mon projet RCP J'utilise la liaison de données eclipse pour connecter l'interface utilisateur avec le backend. Je veux que tout changement dans un éditeur ouvert soit annulable. Mon Domainmodell et l'interface utilisateur sont séparés dans deux plugins différents.Comment combiner la liaison de données Eclipse et UndoableOperations?

Mon approche actuelle consiste à implémenter ma propre classe UpdateValueStrategy pour la liaison de données. J'étend la UpdateValueStrategy normale et remplace la méthode doSet. À partir de là, j'obtiens OperationHistory et le Global UndoContext, puis je crée une nouvelle opération. J'ai diverses opérations comme "ChangeCustomerName" et "ChangeCustomerNote".

Questions:

  1. Ai-je besoin de mettre en œuvre la Undo/Redo - logique par mon propre ou est le cadre d'appui en quelque sorte mon avec cela?
  2. Existe-t-il un meilleur endroit ou une meilleure façon de créer l'opération annulable que le doSet() de la classe UpdateValue - Strategy. Pour accéder au champ de texte, ce qui a été changé n'est pas facile.

Répondre

2

La réponse que vous obtiendrez la plupart du temps est: Utilisez EMF.Edit, ce qu'il comprend de la boîte avec org.eclipse.emf.databinding.edit et il y a un excellent tutorial sur le net.

Il y a un feature request ouvert dans le bugtracker Eclipse à propos de l'annulation et de la restauration de la liaison de données JFace sans EMF, mais ce n'est pas encore terminé. Il a également été discuté dans le eclipse forum.

Questions connexes