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 Java Discussion :

Exploitation Preference page sous eclipse


Sujet :

Eclipse Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 23
    Par défaut Exploitation Preference page sous eclipse
    Bonsoir, entrain de mettre en place un plugin, après avoir defini une page de preference avec differents fields, je voudrais savoir comment recuperer et utilise les valeurs de mes fields ..... (ils ont tous une valeur par défaut, un checkState pour ceux qui en ont besoin est déja operationnel aussi) ??
    Mon problème c'est comment exploiter les différents fields ?? Rien de concluant dans le Help d'eclipse donc si quelqu'un peut me mettre sur un chemin
    Nom : pref.GIF
Affichages : 155
Taille : 91,9 Ko

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il y a différentes manières d'accèder aux préférences.

    L'arbre des valeurs de préférences par défaut s'obtient par DefaultScope.INSTANCE.getNode( pluginId ); et celui des valeurs affectées par InstanceScope.INSTANCE.getNode( pluginId );.

    Tu peux obtenir également un arbre unique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private static IEclipsePreferences getPreferencesRootNode() {
       IPreferencesService preferenceService = Platform.getPreferencesService();
       return preferenceService.getRootNode();
    }
    Ensuite pour récupérer une valeur pour une préférence d'id donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String value = preferences.get(id, null);
    Il y a des méthodes pour récupérer une valeur sous forme d'autres type (getBoolean pour récupérer une valeur booléenne par exemple).

    Enfin, tout ça, c'est utile pour initialiser. Si tu veux réagir à un changement de valeur, il faudra écouter les évenements de changement. On enregistre un écouteur sur un IPreferenceStore, qu'on obtient par l'instance de l'activateur du plugin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TonPluginActivator.getDefault().getPreferenceStore().addPropertyChangeListener(preferenceListener);
    L'écouteur est une implémentation de IPropertyChangeListener

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TonPluginActivator.getDefault().getPreferenceStore().addPropertyChangeListener( listener );
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 23
    Par défaut
    Merci pour votre reaction rapide !
    j'avais cru comprendre que Instance Scope était spécificique à un seul workspace ? ....
    Voilà, cela devrait normalement me renvoyé l'état de P_PATH qui correspond à un DirectoryFieldEditor mais ça me donne toujours un false ?
    public void run(IAction action) {
    IPreferenceStore prefs= UIPlugin.getDefault().getPreferenceStore();
    System.out.println(prefs.getBoolean("visualeditor.preferences.PreferenceConstants.P_PATH"));
    }

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par lagareg Voir le message
    j'avais cru comprendre que Instance Scope était spécificique à un seul workspace ? ....
    Oui, les valeurs de préférence sont propres au workspace au max. Tu peux éventuellement utiliser gérer des préférences par projet (voir Project-Scoped preferences).

    Un DirectoryFieldEditor est un champ pour saisir un path : un path n'est pas un booléen !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IPreferenceStore prefs= UIPlugin.getDefault().getPreferenceStore();
    Path path = Paths.get(prefs.getString("visualeditor.preferences.PreferenceConstants.P_PATH"));
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode( pluginId );
    Path path = Paths.get(prefs.get("visualeditor.preferences.PreferenceConstants.P_PATH", ...éventuellement un chemin par défaut... ));
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/07/2009, 13h37
  2. Personnaliser les pages sun wizard sous eclipse
    Par caro_caro dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 04/03/2009, 15h07
  3. lancer page html sous eclipse
    Par minooo dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 21/08/2008, 18h20
  4. comment exploiter et executer un projet sous eclipse
    Par Invité dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 31/05/2008, 02h43
  5. Réponses: 7
    Dernier message: 23/03/2007, 16h23

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