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 :

[RCP] Rattacher un statusLine à chaque vue


Sujet :

SWT/JFace Java

  1. #1
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut [RCP] Rattacher un statusLine à chaque vue
    Bonjour à tous,

    Comme l'indique le sujet, je voudrais "proprement" rattacher un statusLine différent à chacune de mes vues(je ne sais d'ailleurs pas si c'est ce qui devrais se faire).

    Pour ceux qui suivent mes péripéties depuis le début(eh oui, je souffre énormement), je dispose de deux vues, une vue de navigation (avec un treeViewer), et une vue de résultats(avec un tableViewer). Actuellement, j'arrive à afficher le noeud selectionné (mais pas un noeud fils ) dans ma statusLine.
    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
     
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    			public void selectionChanged(SelectionChangedEvent event) {
    				IActionBars bars = getViewSite().getActionBars();												
    				TreeSelection ts = (TreeSelection)event.getSelection();				
    				if (ts.getFirstElement() != null){ //if the selection is != of null
    					if (ts.getFirstElement().getClass() == SubModule.class) { // affichage du noeud fils - ne marche pas - 
    						SubModule subModNode = (SubModule)ts.getFirstElement();						
    						bars.getStatusLineManager().setMessage("Selected : " + subModNode.getName());												
    					}else{  // affichage du noeud - marche bien - 
    						Module modNode = (Module)ts.getFirstElement();
    						bars.getStatusLineManager().setMessage("Selected : " + modNode.getName());
    					}
    				}								
    			}
    		});
    Je voudrais également pouvoir, lorsque la resultView est active pouvoir afficher le nom de l'onglet actif(vue que la vue a plusieurs onglets, ainsi que le nombre de lignes renvoyées et affichées dans le tableViewer). J'aimerais donc pouvoir disposer d'un séparator au niveau de ma statusLine; mais j'arrive pas à trouver comment cela se fais.

    Merci donc de votre aide

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Pour tester si un Object appartient à une classe donnée, la méthode n'est pas de passer par le nom de sa classe...
    Il existe le mot clé instanceof. Donc, pour tester si une variable est d'une classe donnée, on fait :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Object var = "test";
        if (var instanceof String) {
            System.out.println((String) var);
        }

    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Merci Gueritarish pour ta réponse

    Mais jne crois pas que le propos était là. Je connais en effet comment procéder pour tester si un Object appartient à une classe donnée. je ne vois pas en quoi cela concerne mon problème. A moins que je sois completement à coté de la plaque?

  4. #4
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Citation Envoyé par papaetoo Voir le message
    Mais jne crois pas que le propos était là.
    Jamais tu débuggues ton appli?
    Si tu dis que ce test ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ts.getFirstElement().getClass() == SubModule.class)
    C'est peut-être lié au fait qu'il ne reconnait pas ta classe
    Sinon, c'est que la Selection dans ton TreeViewer ne contient pas d'éléments de cette classe...
    Donc, on est en plein dans ton problème là.
    Soit c'est le test qui foire, soit ce sont les données dans ton TreeViewer.

    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  5. #5
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Bjr à tous!

    Je te fais mon méacoulpa (cest comme ca que ca s'écris?). Tu avais éffectivement raison. Le problème était lié au fait que ma classe n'était pas reconnue.

    Cela dit, reste le problème de départ, à savoir comment rattacher un statusLine différent à chacune de mes vues, tout en gérant les séparateurs . En d'autres termes, la possibilité de mettre plusieurs informations(nombre de lignes renvoyées présentes dans le tableViewer, base de données sur la quelle a été exécutée la requête, ...) différentes d'une vue sur une statusLine.

    Merci

  6. #6
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Je me suis tres vite réjouis!

    Je n'arrive en effet pas à afficher le "SubModule" malgré le fait que je fasse le bon test. Chose d'autant plus bizare vu qu'à l'intérieur de ce test, j'arrive à afficher le dit "SubModule" sur le console.

    Very weird...

  7. #7
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Bonjour à tous,

    Pour ceux qui ont suivi le fil du post, j'ai enfin pu résoudre le problème des "subModules" qui ne s'affichaient pas. Ce qui posait problème c'était le fait que la statusBar que je souhaitais mettre à jour était celle de la vue de navigation. Hors celle ci n'étant plus active(car le click rends actif la vue des résulats, et par là, sa statusBar) lors d'un clic sur un de ces noeuds, l'affichage ne se faisais pas.

    Merci à tout!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Count chaque enregistrement de chaque vue
    Par Le-DOC dans le forum SQL
    Réponses: 2
    Dernier message: 18/09/2012, 14h21
  2. [RCP / JFace / SWT] Lien entre vues
    Par papaetoo dans le forum SWT/JFace
    Réponses: 14
    Dernier message: 18/03/2010, 10h07
  3. Réponses: 2
    Dernier message: 30/09/2009, 12h50
  4. rattacher un movieclip à chaque objet de ma classe
    Par emilie_t dans le forum Flash
    Réponses: 1
    Dernier message: 31/05/2007, 09h56
  5. [RCP] Comment créer une nouvelle vue
    Par jycronier dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 19/07/2006, 00h23

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