IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

Plusieurs informations sur une statusBar


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut Plusieurs informations sur une statusBar
    Bonjour à tous!

    Comme l'indique le sujet de mon post, je voudrais pouvoir afficher plusieurs informations sur une statusBar. J'imagine donc que cela nécessite des séparators et (événtuellement) des layout?

    Bref, malgré plusieurs heures de googling (ça se dit?) ,jne sais pas comment faire. Auriez vous des exemples ou des liens vers des tutoriaux?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    Par statusBar j'imagine que tu entends la zone en bas de la fenêtre qui est crée par une instance de ApplicationWindow ? la seule méthode fournie est setStatus(String) donc non ça n'a pas l'air préimplémenté. Tu peux toujours créer un Composite qui va contenir les widgets dont tu as besoin et que tu positionnes en
    bas de ta fenêtre.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Merci de ta réponse soft0613.
    Par statusBar j'imagine que tu entends la zone en bas de la fenêtre qui est crée par une instance de ApplicationWindow ?
    Oui, c'est exactement de cela que je parle.
    la seule méthode fournie est setStatus(String) donc non ça n'a pas l'air préimplémenté
    Pour l'instant, j'arrive à afficher des infos sur la statusLine; j'utilise pour cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getViewSite().getActionBars().getStatusLineManager().setMessage("message");
    Mais quand j'essai d'afficher plusieurs informations "les unes à la suite des autres" ,ce n'est que le dernier affichage qui est pris en compte. Cela implqiue donc qu'il faut s'y prendre autrement pour afficher plusieurs infos sur la statusLine.
    Tu peux toujours créer un Composite qui va contenir les widgets dont tu as besoin et que tu positionnes en
    bas de ta fenêtre.
    Ca pourrait être une solution, mais j'ose croire qu'il y'a une maniere bien prédéfinie, toute simple et toute jolie pour cela. Je suis en train de chercher. Mais je reste attentif à vos réponses.

    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    J'ai assez bien avancé sur la question. J'ai notemment regardé du coté des "StatusLineContributionItem". Ainsi, dans mon "ApplicationActionBarAdvisor", j'ai implémenté la méthode "fillStatusLine"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected void fillStatusLine(IStatusLineManager statusLine) {
    	beginStatusItem = new StatusLineContributionItem("beginStatusItem");
    	statusLine.appendToGroup(StatusLineManager.MIDDLE_GROUP, beginStatusItem);			
    	middleStatusItem = new StatusLineContributionItem("middleStatusItem");
    	statusLine.appendToGroup(StatusLineManager.MIDDLE_GROUP, middleStatusItem);	
    	endStatusItem = new StatusLineContributionItem("endStatusItem");
    	statusLine.appendToGroup(StatusLineManager.END_GROUP, endStatusItem);
    }
    J'ai donc créer 3 StatusLineContributionItem que j'utilise ensuite dans ma vue de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    try {
    	//Activation de la vue de résultats (affichage si elle existe, création si elle n'existe pas )
    	resultView = (ResultView) getViewSite().getWorkbenchWindow().getActivePage().showView("fast.resultview", resultName, IWorkbenchPage.VIEW_ACTIVATE);
     
    	// mise à jour du nombre de lignes renvoyées sur la statusBar de résultats
    	StatusLineContributionItem beginItem = (StatusLineContributionItem)resultView.getViewSite().getActionBars().getStatusLineManager().find("beginStatusItem");				        	
    	beginItem.setText(modelProvider.getTblRows().size() + " line(s)");				       
     
    	//TODO : progressBar à rajouter à cet endroit				        
    	// mise à jour du "last update" sur la statusBar de résultats 
    	StatusLineContributionItem middleItem = (StatusLineContributionItem)resultView.getViewSite().getActionBars().getStatusLineManager().find("middleStatusItem");
    	middleItem.setText("Last Update : ...");
     
    	// mise à jour du "next update" sur la statusBar de résultats	
    	StatusLineContributionItem endItem = (StatusLineContributionItem)resultView.getViewSite().getActionBars().getStatusLineManager().find("endStatusItem");
    	endItem.setText("Next Update : ...");	
    } catch (PartInitException e) {
    	Activator.getLogger().error(e.toString());
    }
    De cette manière, je reussi à pouvoir afficher les 3 informations dont j'avais besoin sur la statusLine, ce pour chaque onglet(instance d'une vue) actif.

    Cependant, j'ai un "leger" problème d'update. En effet, je n'arrive pas à mettre à jour la statusline lorsque je passe d'un onglet à un autre.

    Auriez vous des idées de solutions?

    Merci

Discussions similaires

  1. Plusieures infos sur une seule ligne avec ou sans tableau
    Par Him dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/03/2006, 14h16
  2. Information sur une plate forme de développement
    Par QAYS dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 21/02/2006, 14h55
  3. plusieurs div sur une ligne
    Par difficiledetrouver1pseudo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 18/02/2006, 23h57
  4. Mettre plusieurs enrégistrement sur une ligne
    Par royrremi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/01/2006, 07h41
  5. Comment avoir des information sur une BD?…
    Par kikimnet dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/02/2005, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo