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 :

Gestion des fichiers dans le développement de plugin


Sujet :

Eclipse Platform

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Par défaut Gestion des fichiers dans le développement de plugin
    Bonjour,

    J'ai développé un plugin que j'ai déployé mais voila à son lancement il bug. En consultant mon fichier log, l'erreur me renvoi sur la ligne de code suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new Image(Display.getDefault(), MetaData.class.getResourceAsStream("//icons//grt_value_dict.png"));
    En fait mon plugin gère une IHM et dans cette dernière il y a l'affichage d'un treeview. Les nœuds de mon treeview ont chacun une image. Voici la fonction getImage de la classe MyLabelProvider de mon treeview:
    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
    public Image getImage(Object element) {            
        if (element instanceof Champs ){
            Champs g = (Champs)element;
            if (g.getPkChamps().equals("1"))
                return new Image(Display.getDefault(), MetaData.class.getResourceAsStream("/icons/Copie de column_pk_64.png"));
            else
                return new Image(Display.getDefault(), MetaData.class.getResourceAsStream("/icons/grt_value_simple.png"));
        }else if (element instanceof MesTables || element instanceof MesPS){                
            return new Image(Display.getDefault(), MetaData.class.getResourceAsStream("/icons/grt_value_dict.png"));
        }else if (element instanceof MaTable){                
            return new Image(Display.getDefault(), MetaData.class.getResourceAsStream("/icons/grt_value_list.png"));
        }else if (element instanceof MaProcStock){                
            return new Image(Display.getDefault(), MetaData.class.getResourceAsStream("/icons/grt_function.png"));
        }
        else
            return new Image(Display.getDefault(), MetaData.class.getResourceAsStream("//icons//grt_value_simple.png"));
    }
    Il semble claire que j'accède mal a mes icones. J'ai cherché en vain comment résoudre le problème. Le ResourceBundle pourrait-il m'aider? Si oui comment?
    Merci!!

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    Salut

    Tu peux facilement accéder a tes ressources images de ton projet en passant par la classe Activator de ton PlugIn

    Dans la Classe Activator ajoute la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public static ImageDescriptor getImageDescriptor(String path) 
    	{
    		return imageDescriptorFromPlugin(PLUGIN_ID, path);
    	}
    puis fais appel a test images en passant par cette méthode de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ImageDescriptor descriptor = Activator.getImageDescriptor("//icons//grt_value_dict.png");
    return new Image( descriptor.createImage() );
    Voila.

  3. #3
    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, déjà, je tiens à vous dire à tout les 2 que vous avez une gestion des ressources totalement fausse... Vous allez droit sur les fuites mémoires.
    Je vous invite très fortement à lire cet article sur les images dans les applications Eclipse. Ça va certainement vous sauver la vie.
    L'une des façons de faire pour récupérer une image consiste effectivement à passer par le ResourceBundle du plug-in ainsi que par un ImageDescriptor:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // 2 methods to recover a plug-in Bundle:
    Bundle myBundle = Platform.getBundle(MyPluginActivator.PLUGIN_ID);
    myBundle = MyPluginActivator.getDefault().getBundle();
    ImageDescriptor.createFromURL(myBundle.getEntry("icons/myicons.png"));
    Voilà, à+
    Gueritarish

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    Ok Gueritarishj'en prends note Merci pour l'info

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Par défaut Salut!!
    Merci à vous je me lance et vous tiens au courant.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Par défaut Salut!!
    Merci la gestion d'image je crois n'a plus de secret pour moi.(Looolll!!)
    Mais voila qu'est ce qui se passe si je veux modifier mon fichier .properties.
    En effet si je peux y aisement acceder grace à un ResourcesBundle, je vois pas comment grace à cette classe ne peux modifier mon fichier. Comment utiliser la classe File avec un Bundle ou l'activator de mon plugin?
    Merci!!

  7. #7
    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,

    Pour ce qui est de la modification de fichier de properties, tu vas pas pouvoir passer par un ResourceBundle (ou alors, pas seulement par lui..). Cette classe ne te permets pas d'écrire les changements que tu aurais pu apporter aux propriétés...
    Par contre, tu peux utiliser un Properties. Cette classe va te permettre de modifier des propriétés et ensuite de sauvegarder tes changements dans ton fichier.

    Voilà, à+
    Gueritarish

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Par défaut Salut!!
    Oui je voudrais bien mais le problème c'est que je sais pas comment pour avoir le lien de mon fichier dans le plugin. Le lien qui apparait je reussis pas à le traiter.
    Merci!!

Discussions similaires

  1. [Débutant] BackGroundWorker et gestions des fichiers dans un projet
    Par benobab dans le forum C#
    Réponses: 2
    Dernier message: 17/03/2014, 13h42
  2. Réponses: 3
    Dernier message: 16/04/2011, 11h49
  3. Problème avec la gestion des fichier dans une JList()
    Par chebmo1986 dans le forum Composants
    Réponses: 3
    Dernier message: 18/02/2009, 23h49
  4. XML/XSL et gestion des fichiers dans une application Web
    Par fatenatwork dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 01/02/2008, 14h09
  5. [VBS] Gestion des espaces dans le chemin de fichiers
    Par Edoxituz dans le forum VBScript
    Réponses: 4
    Dernier message: 23/02/2006, 16h41

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