2009-07-20 4 views
2

Je pense qu'il existe des boutons SAVE et CANCEL par défaut associés aux éditeurs dans Eclipse RCP. Comment pouvons-nous faire apparaître ces boutons sur un éditeur. Je suppose que ces boutons sont invisibles par défaut et il peut y avoir une méthode de superclasse qui doit être remplacée pour que les boutons SAVE CANCEL apparaissent dans l'éditeur. Je me souviens d'avoir entendu parler d'une telle chose. (J'ai peut-être tort cependant)Eclipse RCP: Comment rendre le bouton SAVE par défaut visible dans un éditeur?

Dans tous les cas, comment pouvons-nous y parvenir? (PS: Je ne cherche pas de bouton SWT personnalisé et je le nomme 'SAVE' Je cherche un bouton SAVE par défaut associé à l'éditeur (s'il y en a un)).

Répondre

3

Les boutons ne sont pas directement liés à vos éditeurs.
Vous devez, comme described there):

  • Ajouter contribution de menu avec le commandId réglé sur l'ID de commande standard qui se trouve dans IWorkbenchActionDefinitionIds par exemple Créez une commande dans ApplicationActionBarAdvisor.makeActions et inscrivez-la.

:

protected void makeActions(final IWorkbenchWindow window) { 
    // Creates the actions and registers them. 
    // Registering is needed to ensure that key bindings work. 
    // The corresponding commands keybindings are defined in the plugin.xml 
    // file. 
    // Registering also provides automatic disposal of the actions when 
    // the window is closed. 
    saveAction = ActionFactory.SAVE.create(window); 
    register(saveAction); 
} 
  • Ajouter drapeau sale dans Editor partie et mettre en œuvre isDirty(), setDirty() et clean() méthodes.

Mise à jour Février 2013, de user s-d:

Note: Ajout du saveAction dans le ActionBarContributor n'est plus nécessaire sur la base Indigo PCR R2 (3.7.2).
Il suffit d'ajouter le menuContribution, ajouter à la méthode doSave() de l'éditeur, et passer outre commandStackChanged() comme suit

public void commandStackChanged(EventObject event) { 
    firePropertyChange(PROP_DIRTY); 
    super.commandStackChanged(event); 
} 
+0

@ s-d vous remercier de la modification proposée. – VonC

Questions connexes