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 :

[RCP] Paramétrer WorkSpace


Sujet :

Eclipse Platform

  1. #1
    Membre régulier Avatar de maelstrom
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 108
    Points : 120
    Points
    120
    Par défaut [RCP] Paramétrer WorkSpace
    Bonjour,

    Je suis sous Eclipse RCP 4 et j'aimerais pouvoir paramétrer le workspace de mon application, de manière à pouvoir choisir son emplacement et pouvoir le changer.

    J'ai déjà un peu cherché, j'ai trouvé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @PostContextCreate
    public void postContextCreate()
    {   
      Location instanceLoc = Platform.getInstanceLocation();
     
      // Stop if location is set
      if (instanceLoc.isSet())
        return;
     
      File file = new File("C:\\TEST");
     
      instanceLocation.set(file.toURL(), false);
    }
    Cependant, je ne sais pas où placer ce bout de code, ni s'il fonctionne vraiment.

    Avez-vous des idées de comment s'y prendre ?

    Merci d'avance pour votre aide.
    Madness ? THIS IS JAVA !!!
    SPARTAN ! What is your programming language ? JAVA ! JAVA ! JAVA !
    Code well, code readable, code in Allman style !

    N'oubliez pas de cliquer sur si ce commentaire vous a été utile et aussi sur si cela a... résolu ton problème !

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

    Ce code fonctionne, mais il y a 2 ou 3 choses supplémentaires à dire à ce sujet :

    1. le boolean de la méthode set permet d'indiquer si tu veux permettre de lancer plusieurs intances d'application sur le même workspace ou pas (true verrouille workspace pour une instance)
    2. la bonne manière de transformer un File en URL est de faire file.toURI().toURL() (la méthode toURL() de File n'échappe pas les caractères du path qui devraient l'être).


    Pour ce qui est de l'implémentation du PostContextCreate, tout est expliqué dans ce tutoriel vogel/a (Association à l'application E4 d'une classe chargée de gérée le cycle de vie de l'application).
    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 régulier Avatar de maelstrom
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 108
    Points : 120
    Points
    120
    Par défaut
    D'accord, mais cela doit se mettre dans quel classe ? Car c'est ça que je vois pas. J'ai essayé de la mettre dans une classe E4LifeCycle, mais ça ne fonctionne pas :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    @SuppressWarnings("restriction")
    public class E4LifeCycle
    {
     
    	@PostContextCreate
    	void postContextCreate(IEclipseContext workbenchContext) throws IllegalStateException, MalformedURLException, IOException
    	{
    		Location instanceLoc = Platform.getInstanceLocation();
     
    		// Stop if location is set
    		if (instanceLoc.isSet())
    		{ return; }
     
    		File file = new File("D:\\DATA\\TEST");
     
    		instanceLoc.set(file.toURI().toURL(), false);
    	}
     
    	@PreSave
    	void preSave(IEclipseContext workbenchContext){
    	}
     
    	@ProcessAdditions
    	void processAdditions(IEclipseContext workbenchContext) {
    	}
     
    	@ProcessRemovals
    	void processRemovals(IEclipseContext workbenchContext) {
    	}
    }
    Petites précisions mes plug-in sont gérer avec OSGI Equinox et je n'ai pas de .Activator dans mon projet, en faut-il un ?
    Madness ? THIS IS JAVA !!!
    SPARTAN ! What is your programming language ? JAVA ! JAVA ! JAVA !
    Code well, code readable, code in Allman style !

    N'oubliez pas de cliquer sur si ce commentaire vous a été utile et aussi sur si cela a... résolu ton problème !

  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 : 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
    Peu importe la classe. Tu as regardé le tutoriel de Lars Vogel ? En particulier le chapitre 1.5. Example life cycle implementation, qui explique ça : tu crées une classe (donc peu importe, mais dans son exemple, il l'a appelé LifeCycleManager) dans laquelle tu mets ta méthode (avec l'annotation) et tu enregistres une URI sur cette classe (voir la syntaxe dans l'exemple) comme propriété "URI de lifecycle" sur l'objet application (c'est un hook pour ton plugin).
    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.

  5. #5
    Membre régulier Avatar de maelstrom
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 108
    Points : 120
    Points
    120
    Par défaut
    Ok merci, j'ai réussi à créer un workspace, cependant le nom du dossier qu'il prend n'est pas encore celui que je veux, il prend comme nom le nom de mon application "runtime-Zephyr-Graphic-Interface.product" au lieu de "TEST" comme demandé une idée d'où cela provient ?
    Madness ? THIS IS JAVA !!!
    SPARTAN ! What is your programming language ? JAVA ! JAVA ! JAVA !
    Code well, code readable, code in Allman style !

    N'oubliez pas de cliquer sur si ce commentaire vous a été utile et aussi sur si cela a... résolu ton problème !

  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
    As-tu supprimé le chemin indiqué dans le champ Locaiton (dans l'onglet Main de la Run Configurations) ?
    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
    Membre régulier Avatar de maelstrom
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 108
    Points : 120
    Points
    120
    Par défaut
    Effectivement cela venait de là, je te remercie beaucoup
    Madness ? THIS IS JAVA !!!
    SPARTAN ! What is your programming language ? JAVA ! JAVA ! JAVA !
    Code well, code readable, code in Allman style !

    N'oubliez pas de cliquer sur si ce commentaire vous a été utile et aussi sur si cela a... résolu ton problème !

  8. #8
    Membre régulier Avatar de maelstrom
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 108
    Points : 120
    Points
    120
    Par défaut
    Désolé du petit up, je viens de me rendre compte qu'il fait toujours une petite erreur en fait dans ce code il passe toujours dans le if() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @PostContextCreate
    public void postContextCreate()
    {   
      Location instanceLoc = Platform.getInstanceLocation();
     
      // Stop if location is set
      if (instanceLoc.isSet())
        return;
     
      File file = new File("C:\\TEST");
     
      instanceLocation.set(file.toURI().toURL(), false);
    }
    Et du coup il ne me set pas le File que je choisis. J'ai pourtant bien supprimé le chemin dans l'onglet Main de configuration pour Location. Du coup je comprend pas pourquoi isSet() = true.
    Madness ? THIS IS JAVA !!!
    SPARTAN ! What is your programming language ? JAVA ! JAVA ! JAVA !
    Code well, code readable, code in Allman style !

    N'oubliez pas de cliquer sur si ce commentaire vous a été utile et aussi sur si cela a... résolu ton problème !

Discussions similaires

  1. [plug-in][RCP]Implémenter le "Switch Workspace"...
    Par tophebboy dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 17/02/2017, 13h17
  2. Paramètres Data Import/Export from Workspace
    Par Billythecrack dans le forum Simulink
    Réponses: 2
    Dernier message: 24/09/2010, 06h19
  3. RCP workspace par défaut
    Par DaveShot dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 29/01/2010, 11h31
  4. [RCP] Nouveau paramètre dans le .product : à quoi sert-il ?
    Par Laurent.B dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 18/01/2010, 16h28
  5. Préférences Workspace RCP
    Par DaveShot dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 25/11/2009, 10h23

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