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

Eclipse Platform Discussion :

Produit multi-plugin, menuContribution et File > Quit ?


Sujet :

Eclipse Platform

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Produit multi-plugin, menuContribution et File > Quit ?
    Bonjour à tous,

    En espérant que cette question n'aura pas été traitée 50 fois... j'ai pourtant passé qqs jours à chercher, promis !

    Le contexte :
    Je développe une application RCP sous la forme suivante :
    - un plugin "A", qui me sert, disons, de structure d'accueil, et qui contient mon product definition.
    - des plugins additionnels (B, C, ...) qui vont être embarqués dans l'appli.

    Potentiellement, chaque plugin contribue au niveau du menuBar.
    Cependant, histoire de conserver un minimum de logique, je suis parti là dessus :

    - C'est dans le plugin A (accueil) que je définis ce qu'il faut pour le menu File > Quit, à savoir menuContribution et Command.

    - Les autres plugins B, C, ... définissent d'autres contributions au menu File.

    MAIS : voilà le problème. Par défaut, je me retrouve avec
    File
    > Exit
    > New ProjectAMoi
    > ...

    Il semble donc que la command Exit soit définie et ajoutée en priorité.

    Or, logiquement, je veux que Exit soit en dernier, quoi qu'il soit défini autre part.

    J'ai donc été amené à définir un menu d'ID "file", et un menuContribution contenant ma commande "quit".

    De plus, je ne souhaite pas utiliser une directive "?before=quit" pour le locationURI dans mes plugins B et C, de même que dans mon plugin A, je ne veux pas utiliser de "after=<id de mon dernier menuContrib défini" pour le locationURI.

    Au cours de ma recherche de solution, j'ai entrevu 2 postes :
    - l'utilisation d'un paramètre "endof" au lieu de before et after à utiliser dans locationURI, mais aucun exemple concret, et mes tests ont échoué.
    - l'utilisation d'un "after=additions", mais la notion d'addition m'a l'air très abstraite... Et ne fonctionne pas.

    Bref, je suis coincé, et je ne me vois pas releaser une appli dont le premier sous menu du menu "File" est "Quit"...

    Cependant, je suis embêté : je ne peux pas concevoir que ce problème ne soit pas traité à chaque développement RCP...

    Merci d'avance !
    Cordialement,
    Jérôme

  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
    Salut,

    Pour information, quand tu trouves "?after=additions" c'est que le menu en question contient un separator qui a comme identifiant "additions". C'est un separator qui fournit une zone "rapide" où ajouter des menus, des commandes, d'autres separator... Je dis "rapide" parce que, du coup, tu n'as pas à chercher l'identifiant de la commande/d'un menu/d'un separator pour ajouter ton item.
    C'est considéré comme une bonne pratique d'ajouter un tel separator dans tes menus.
    Si tu veux implémenter la même chose, rien ne t'empêche de définir un separator avec comme identifiant "additions". Dans ton plugin.xml, tu vas définir ton menu "file" (ou peut-être que tu utilises celui d'Eclipse par défaut - pas tout suivi..). Dans ce menu, tu peux ajouter tes separators et voilà.

    Par contre, j'ai pas compris ce qui te gênait dans le fait de placer un menu par rapport à un identifiant...

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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Hello,

    Merci pour cette réponse : la notion de bonne pratique me va bien, et en plus, ça répond à ma problématique.

    De plus, par miracle, mon addition me place ensuite mon menu exit au bon endroit ! y reste un peu de magie noire dans cette partie, mais ça me va.

    Pour ce qui est des IDs de menu, je définis (de manière déclarative, ie ds plugin.xml), un menu avec l'ID "file". Après, effectivement, y a pas mal d'autres choses qui s'y accrochent, par exemple "Open file" et "convert line delimiters to" qu'il faudra que je trouve comment virer par la suite...

    Par contre, maintenant, par rapport à mon séparateur "additions", je suis capable d'ajouter mon menu exit comme il faut, après mon after=additions !

    Donc merci beaucoup.

    Par contre, question complémentaire : j'ai vu qu'il existait des contributions "standard"... y a-t-il une classe ou une interface qui définit tout ça, dans laquelle je puisse aller voir ?

    Sinon, pour ce qui est de placer un menu par rapport à un identifiant, c'est pas que ça me gêne dans l'absolu, mais dans le cas qui m'intéresse, le "exit" est dans ma structure d'accueil, donc je veux éviter de le définir relativement à un menu que je déclarerais par la suite, dans un plugin spécifique, que mon plugin "d'accueil" n'est pas censé connaître. Et inversement, mes plugins, je veux essayer de les rendre plutôt génériques, donc pas de référence à un id défini dans un autre plugin...

    Disons que c'est ma notion de la généricité qui me pousse à faire ça. C'est peut être erroné, mais je préfère décoreller ce qui n'a pas absolument besoin d'être corellé, histoire de pouvoir réutiliser mes plugins dans d'autres cas.

    En tout cas, merci pour l'info !

    Cordialement,
    Jérôme

  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
    Qu'est-ce que tu entends par "contribution standard"? T'as un lien, ou un exemple?

    Et pour le placement des commandes par rapport à des identifiant, si c'est pour une notion de généricité entre plug-ins, c'est très bien
    Pour ma part, la question du placement ne se posait qu'au sein d'un même plug-in.

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

Discussions similaires

  1. [Probleme] Munin plugin - url externe: file does not exist
    Par adgenodux dans le forum Administration système
    Réponses: 0
    Dernier message: 21/05/2013, 14h58
  2. [MEX] Multi-threading avec mex-file
    Par yoann1989 dans le forum MATLAB
    Réponses: 7
    Dernier message: 27/06/2012, 17h06
  3. Réponses: 4
    Dernier message: 14/11/2006, 17h12

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