2010-07-26 12 views
2

Je dois modifier le message de ligne d'état d'une classe de gestionnaire. Après avoir lu le tutoriel RCP et éclipser FAQ, j'ai enfin fait quelque chose comme ceci:Comment écrire un message sur une ligne d'état à partir d'une classe de gestionnaire dans la programmation Eclipse RCP

HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().findView(AView.ID).getViewSite().getActionBars().getStatusLineManager().setMessage("Ha, I'm finished"); 

Quelle longue chaîne invocateur!

Est-ce que je le fais de la bonne façon? Merci.

+0

question: d'où vous appelez le gestionnaire (de AView?)? voulez-vous associer le message à AView? – nanda

+0

Non, je pense que AView est juste un bout dans ce contexte, à travers lequel je peux atteindre le StatusLineManager. (Genre de moche) – solotim

Répondre

5

De the threadsI see dans les forums, ça a l'air à peu près correct.

Attention cependant si vous avez des commentaires asynchrones à mettre dans cette ligne d'état.
Voir par exemple this thread.

UIJob job = new UIJob() { 
    public IStatus run(IProgressMonitor monitor) { 
    //do the long running work here 

    Runnable results = new Runnable() { 
     public void run(){ 
       // update UI elements here; 
      getViewSite().getActionBars().getStatusLineManager(). 
       setMessage("End Pasting"); 
     } 
    }; 
    display.asyncExec(results); 
    } 
}; 
job.schedule(); 

(Note: que peut-être pas votre cas, mais j'ajouter cet extrait de code juste pour information)