Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité de passage
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2012
    Messages : 10
    Points : 2
    Points
    2

    Par défaut Comment contribuer à OpenFile ?

    Bonjour à tous,

    Le menu File de Eclipse contient une entrée Open File, qui ouvre une fenêtre d'exploration avec laquelle on choisit un fichier à ouvrir et qui ensuite ouvre un éditeur sur le fichier en fonction du type.
    Je souhaiterai passer par cette mécanique et ouvrir un fichier xml bien particulier dans un éditeur de mon cru, i.e. ouvrir un éditeur en fonction du type mais aussi du contenu.
    Le choix de l'éditeur dans l'idéal devrait se faire ainsi :
    si la balise root du fichier correspond à un pattern bien précis, j'ouvre le fichier avec mon éditeur
    sinon on ouvre avec l'éditeur xml par défaut

    Je sèche totalement sur la façon de développer ça, ou du moins dans quelle direction partir...

    Toute aide sur le sujet sera la bienvenue ! Merci

  2. #2
    Membre Expert
    Avatar de Mickael_Istria
    Homme Profil pro Mickael Istria
    Développeur Expert Eclipse RCP
    Inscrit en
    juillet 2008
    Messages
    675
    Détails du profil
    Informations personnelles :
    Nom : Homme Mickael Istria
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2008
    Messages : 675
    Points : 1 156
    Points
    1 156

    Par défaut

    Pour le menu, tu utilises le point d'extension org.eclipse.ui.menus. Il va te demander une "location" pour ton menu, tu pourras la déduire en utilisant le Plug-in Spy, que tu trouves par exemple dans cet outil: http://marketplace.eclipse.org/conte...-rcp-inspector

    Ensuite à ce menu, tu associes une command. Tu définis ta commande à l'aide d'une extension org.eclipse.core.commands.

    Pour cette command, tu crées un handler, qui contiendra le code Java qui va tourner quand la commande sera activée (i.e. quand quelqu'un va cliquer sur ton entrée de menu).
    Dans ce bout de code, tu utilises le FileDialog qui va bien pour ton extension, et tu regardes ce que contient le fichier sélectionné. Puis, tu ouvres l'éditeur que tu veux en fonction: http://wiki.eclipse.org/FAQ_How_do_I...ammatically%3F
    Tu fais du JEE/Web/Mobile dans Eclipse? T'as essaye JBoss Tools ?
    Read my blog about Eclipse | Follow me on twitter

  3. #3
    Membre du Club
    Inscrit en
    juillet 2012
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : juillet 2012
    Messages : 32
    Points : 52
    Points
    52

    Par défaut

    Bonjour,

    D'après la doc sur le point d'extension de l'éditeur :
    http://help.eclipse.org/helios/index...i_editors.html

    tu peux définir une classe matchingStrategy, de type IEditorMatchingStrategy et implémenter la méthode :
    Code :
     boolean matches(IEditorReference editorRef, IEditorInput input);
    Tu analyses le contenu de IEditorInput en récupérant le IFile associé dans le cas où c'est un IFileEditorInput

  4. #4
    Invité de passage
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2012
    Messages : 10
    Points : 2
    Points
    2

    Par défaut

    Merci pour vos réponses, ça m'a bien aidé, je suis parvenu à ouvrir mon éditeur pour mon fichier xml

    Par contre j'ai encore une question en suspend :

    - en suivant ton cheminement Mickaël, je réussi à me créer ma propre entrée dans le menu File mais pas impacter l'entrée OpenFile.... Est-ce qu'il est possible de surcharger le comportement de OpenFile pour y ajouter un comportement en cas de fichier xml avec ma structure attendue?

  5. #5
    Membre du Club
    Inscrit en
    juillet 2012
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : juillet 2012
    Messages : 32
    Points : 52
    Points
    52

    Par défaut

    Je ne pense pas que tu puisses surcharger une entrée de menu existante.
    Par contre si tu fais du RCP tu peux supprimer celle que tu ne veux plus et mettre la tienne.

  6. #6
    Membre Expert
    Avatar de Mickael_Istria
    Homme Profil pro Mickael Istria
    Développeur Expert Eclipse RCP
    Inscrit en
    juillet 2008
    Messages
    675
    Détails du profil
    Informations personnelles :
    Nom : Homme Mickael Istria
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2008
    Messages : 675
    Points : 1 156
    Points
    1 156

    Par défaut

    Citation Envoyé par Le Petit Lémurien Voir le message
    Est-ce qu'il est possible de surcharger le comportement de OpenFile pour y ajouter un comportement en cas de fichier xml avec ma structure attendue?
    Pas vraiment dans ce cas-là. Dans d'autres situations plus "contextuelles" (Copier, coller, Run & cie), il te suffit d'ajouter un handler à la commande et
    de bien implémenter les enableWhen et activeWhen. Ainsi, la commande choisira le handler qui convient le mieux.
    Pour le "Open File..." tu es déjà dans le Handler au moment où le FileDialog s'ouvre. À ce moment là, donc, tu ne peux pas utiliser ce mécanisme.
    Par contre, le OpenFile se termine par une ouverture basée sur les associations entre fichiers et éditeurs par défaut. Peut-être devrais-tu voir si tu ne peux pas faire en sorte que tes fichiers soient associées par défaut à ton éditeur, en te basant sur des conventions de nommage par exemple...
    Tu fais du JEE/Web/Mobile dans Eclipse? T'as essaye JBoss Tools ?
    Read my blog about Eclipse | Follow me on twitter

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •