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 :

Contribuer à la StatusLine de l'application


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut Contribuer à la StatusLine de l'application
    Bonjour à tous,
    je développe actuellement une RCP dans laquelle je dois indiquer un état de connexion (ON/OFF) à un service... par exemple savoir si je suis connecté ou pas à internet.
    Pour se faire j'aimerais un petit icone vert ou rouge suivant l état, que je souhaite ajouter dans la StatusLine qui se trouve en bas de mon appli.
    => Je ne trouve nulle part comment (si possible...) contribuer à cette statusline

    merci d'avance pr les idées

  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 : 41
    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
    Par défaut
    Salut,

    Alors là, carton rouge !!!
    Sujet déjà traité dans le forum Eclipse platform et dans ce forum...
    Pour accéder à la StatusLine, dans un Editor ou une View, il te faut faire un :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    IStatusLineManager statusManager = getXXXSite().getActionBars().getStatusLineManager();
    où XXX = Editor pour un Editor et XXX = View pour une View. (c'était le quota du capitaine obvious...).
    Ensuite, tu peux passer un message à la StatusLine en utilisant le Manager.

    Voilà, à+
    Gueritarish

  3. #3
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    tsu tsu tsu !! point du tout, pas de carton rouge
    en effet, ma question n'est pas tout à fait la même qui a été en effet posée moult fois...
    1. Je voulais savoir comment accéder à la StatusLine globale à l'appli, pas celle de l'Editor (à moins que ce ne soit la même ?)
    2. Après pour l'image, un getStatusLineManager().setMessage(image, message) devrait aller

    copie d'écran explicative jointe
    Images attachées Images attachées  

  4. #4
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    bon il semble que la barre tout en bas soit en effet celle de l'Editor, j'ai réussi à afficher un texte de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences()[0].getEditor(false).getEditorSite().getActionBars().getStatusLineManager().setMessage("TEST AFFICHAGE");
    pb : le texte ne s'affiche que quand l'Editor à le focus... pareil quand j'ajoute une Action, le bouton disparait si l'Editor n'est pas actif
    je n'étais pas loin pourtant !!

  5. #5
    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 : 41
    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
    Par défaut
    Salut,

    J'ai lu (dans cette discussion) qu'en fait, il n'y avait pas de "globalité" au StatusLineManager puisqu'il sert à afficher le statut de la Part (View ou Editor) active...
    Mais j'entrevois une solution grâce au IPartService. C'est une solution absolument pas testé, mais tu peux toujours essayer de faire un :
    Code Java : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    IPartService service =
                (IPartService) PlatformUI.getWorkbench().getService(
                    IPartService.class);
    service.addPartListener(new IPartListener() {
     
        public void partActivated(final IWorkbenchPart part) {
            printMessage(part);
        }
     
        public void partBroughtToTop(final IWorkbenchPart part) {
            printMessage(part);
        }
     
        public void partClosed(final IWorkbenchPart part) {
        }
     
        public void partDeactivated(final IWorkbenchPart part) {
        }
     
        public void partOpened(final IWorkbenchPart part) {
            printMessage(part);
        }
     
        private void printMessage(final IWorkbenchPart part) {
            IWorkbenchPartSite site = part.getSite();
            IActionBars bars = null;
            if (site instanceof IEditorSite) {
                bars = ((IEditorSite) site).getActionBars();
            } else if (site instanceof IViewSite) {
                bars = ((IViewSite) site).getActionBars();
            }
            if (bars != null) {
                IStatusLineManager statusLine = bars.getStatusLineManager();
                statusLine.setMessage("a Message");
            }
        }
    });
    Bien sûr rien ne t'oblige à utiliser une class anonyme interne... Tu peux très bien créer ta propre classe qui implémente IPartListener.
    Fait moi savoir si ça marche

    Voilà, à+
    Gueritarish

  6. #6
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    en effet après avoir bien fouiné et rencontré beaucoup de murs..cette statusLine est commune aux Vues et Editeurs...
    J'ai donc entrevu une solution à l'aide de getViewReferences() et getEditorReferences() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViewReferences()[0].getView(false).getViewSite().getActionBars().getStatusLineManager().add(new Action(){ // code de l action });
    Mais ça ne plait pas du tout ! hors de question de faire ça pour toutes les vues et éditeurs....
    Et c'est là que j'ai trouvé LA solution

    => utiliser le point d'extension org.eclipse.ui.menus comme indiqué ici (tout en bas). Bon évidement dans mon appli ça ne marche, peux tu me confirmer que ça marche bien toi ?

    merci d'avance

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

Discussions similaires

  1. executer une application a distance : Sockets ? RPC ? CORBA?
    Par a_hic dans le forum Développement
    Réponses: 5
    Dernier message: 30/05/2006, 13h02
  2. Accès à une application ouverte (OLE Automation ?)
    Par PascalB dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/06/2002, 14h39
  3. Réponses: 1
    Dernier message: 13/05/2002, 09h19
  4. [Kylix] Execution d'une application hors de l'edi
    Par Sadam Sivaller dans le forum EDI
    Réponses: 1
    Dernier message: 20/04/2002, 23h22
  5. Réponses: 2
    Dernier message: 15/04/2002, 12h56

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