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 :

Utilisation du @Preference


Sujet :

Eclipse Platform

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Utilisation du @Preference
    Bonjour,

    Dans mon application j'ai un plug-in de préfrérences.
    En gros, il s'agit juste d'un handler.
    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
    18
    public class PreferencesHandler {
     
    	@Execute
    	public void execute(Shell shell) {
    		PreferenceManager pmngr = PlatformUI.getWorkbench()
    				.getPreferenceManager();
     
    		PreferenceStore ps = new PreferenceStore("preferences.tests");
    		try {
    			ps.load();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		PreferenceDialog dialog = new PreferenceDialog(shell, pmngr);
    		dialog.setPreferenceStore(ps);
    		dialog.create();
    		dialog.open();
    	}
    Je voudrais dans que les autres plug-in de mon application gère leur propres pages de préfrérences.
    Pour l'instant je fais :
    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
    18
    19
    public class MyPreferencesTest extends FieldEditorPreferencePage implements
    		IWorkbenchPreferencePage {
    @Override
    	protected void createFieldEditors() {
    		Preferences preferences = InstanceScope.INSTANCE
    				.getNode("preferences.tests");
    		// FieldEditor types FieldEditor fields here
    		StringFieldEditor name = new StringFieldEditor("User", "user:",
    				getFieldEditorParent());
    		name.setStringValue(preferences.get("user", "default"));
     
    		addField(name);
    		StringFieldEditor pass = new StringFieldEditor("Pasword", "password:",
    				getFieldEditorParent());
    		pass.setStringValue(password);
    		addField(pass);
     
    	}
    }
    Seulement sur le projet on me demande d'utiliser le @Preference pour faire des injections.

    Quand je fais ça dans mon plug-in la page de préférence ne prend pas en compte les valeurs saisies.
    J'ai l'impression que @Preference ne stocke pas les préférences dans le PreferenceStore.
    Quelqu'un a t'il déjà manipulé ça ?
    J'ai regardé Vogella mais sans plus de succès

  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,

    Là, tu nous donnes pas l'utilisation que tu fais de l'annotation @Prefernce...
    Ça serait utile pour voir si tu as oublié quelque chose ou autre.
    Pour info, le wiki Eclipse recense cette annotation et son utilisation.
    Est-ce que tu persistes bien tes préférences après coup comme indiqué par Lars Vogel?

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

  3. #3
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je n'ai jamais géré les préférences "à la main", mais je pense, que dans ce cas, il faut indiquer, à la PreferencePage, le preference store, par setPreferenceStore(IPreferenceStore store) : c'est comme ça que le composant PreferencePage peut savoir où sauvegarder les préférences.

    L'indication d'injection que tu obtiens me suggère que tu es sous Eclipse 4 : je ne sais pas comment fonctionnent les préférences en E4. Je pense que, dans la mesure où tu gères les préférences avec ton propre preference store, tu peux ignorer cette indication.
    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.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Alors ce que j'avais fait c'est une classe qui initialise mes preferences et qui faisait :

    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
    18
    19
    20
    21
    22
     
    @Execute
    public void execute
      (@Preference(nodePath = "preferences.tests") IEclipsePreferences prefs) {
      prefs.put("user", "TestUser");
      prefs.put("password", "Password");
      // Persists
      try {
      prefs.flush();
        } catch (BackingStoreException e) {
          e.printStackTrace();
        }
    } 
     
    @Inject
    @Optional
    public void trackPasswordSettings
        (@Preference(nodePath = "preferences.tests", 
      value = "password") 
      String password) {
      System.out.println("New password: " + password);
    }

    et dans ma MyPreferencesTest
    j'avais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @Inject
    	@Preference(nodePath = "preferences.tests", value = "user")
    	private String username;
     
    	@Inject
    	@Preference(nodePath = "com.dcnsgroup.espadonng.instructor.preferences.tests", value = "password")
    	private String password;
    quand je change password il ne se passe rien dans la méthode trackPasswordSettings.

    Le problème avec Vogella c'est que dans ces sources il n'y a pas l'utilisation du @Preference. J'ai du passer à côté d'un truc.
    Surtout que pour moi et RCP et les injections sont nouveaux

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    Je n'ai jamais géré les préférences "à la main", mais je pense, que dans ce cas, il faut indiquer, à la PreferencePage, le preference store, par setPreferenceStore(IPreferenceStore store) : c'est comme ça que le composant PreferencePage peut savoir où sauvegarder les préférences.

    L'indication d'injection que tu obtiens me suggère que tu es sous Eclipse 4 : je ne sais pas comment fonctionnent les préférences en E4. Je pense que, dans la mesure où tu gères les préférences avec ton propre preference store, tu peux ignorer cette indication.
    Le problème c'est qu'on me demande de faire du E4 et que je crois que je fais du E3... (sauf que c'est nouveau et que je ne sais pas trop)

  6. #6
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mch22 Voir le message
    Le problème c'est qu'on me demande de faire du E4 et que je crois que je fais du E3... (sauf que c'est nouveau et que je ne sais pas trop)
    Oui, effectivement, si tu dois faire du E4, je ne sais pas (encore) comment ça fonctionne. Mais je ne pense pas que mélanger la méthode E3 et E4 fonctionne.
    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.

  7. #7
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Le blog sur ce lien donne, me semble-t-il, un bon complément au tutoriel de Lars Vogel et qui pourrait t'être utile.
    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.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    ok je regarde mais a première vu il n'y a pas non plus l'utilisation de l'injection

  9. #9
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mch22 Voir le message
    ok je regarde mais a première vu il n'y a pas non plus l'utilisation de l'injection
    Oui, en effet. J'ai trouvé un exemple complet de sources E4 (Initialisation, page de préférences et handler d'affichage), cité dans un conférence eclispecon sur la migration E3 vers E4, avec injection sur https://github.com/opcoach/training/...g.e4.rental.ui.
    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.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci pour l'exemple ça m'a bien inspiré.
    Je n'ai pas fait aussi compliqué que lui, mais ça a l'air de marcher pour le projet.

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

Discussions similaires

  1. Utilisation de la classe java.util.prefs.Preferences
    Par a33608 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/10/2009, 09h27
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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