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 :

[plug-in][RCP]Implémenter le "Switch Workspace"...


Sujet :

Eclipse Platform

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 47
    Par défaut [plug-in][RCP]Implémenter le "Switch Workspace"...
    Bonjour à tous!
    Je travaille sur une application RCP pour laquelle je dois avoir une action «Switch Workspace ».
    J’ai cherché sur les newsgroups d’Eclipse et grâce à cela j’ai réussi à trouver quelle action ajouter dans mon ActionBarAdvisor :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     menu.add(IDEActionFactory.OPEN_WORKSPACE.create(window));
    La difficulté, là, c’était que l’action ne se trouvait pas dans ActionFactory …Bref, l’action semble à priori marcher : je clique sur Switch workspace, mon application me propose de choisir un nouveau workspace, elle redémarre, et…le workspace est TOUJOURS LE MEME !!!!
    Apparemment, plusieurs personnes ont le même problême et ont posté dans les newsgroups et autres forums dédiés à Eclipse, mais personne ne leur a répondu (en tous cas, je n’ai pas encore trouvé un forum où une personne ayant eu ce problême ait trouvé une réponse…) ...
    Quelqu’un saurait m’aider ???
    Merci d’avance !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 47
    Par défaut
    Pour info, je travaille avec Eclipse 3.1.2 et le jdk 1.5.0_02...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 47
    Par défaut
    Bon...alors, j'ai regardé les sources d'Eclipse, et plus particulièrement [FONT=Arial]org.eclipse.ui.internal.ide. IDEApplication. J'ai alors modifié ma classe qui implémente IPlatformRunnable pour lui permettre de connaitre la constante EXIT_RELAUNCH:

    [/FONT] [FONT=Arial]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [/FONT]
      [FONT=Arial]    if (returnCode != PlatformUI.RETURN_RESTART)[/FONT]
      [FONT=Arial]                return EXIT_OK;[/FONT]
      [FONT=Arial] [/FONT]
      [FONT=Arial]            // if the exit code property has been set to the relaunch code, then[/FONT]
      [FONT=Arial]            // return that code now, otherwise this is a normal restart[/FONT]
      [FONT=Arial]            [/FONT]
      [FONT=Arial]            return EXIT_RELAUNCH.equals(Integer.getInteger(PROP_EXIT_CODE)) ? EXIT_RELAUNCH[/FONT]
      [FONT=Arial]                    : EXIT_RESTART;[/FONT]
      [FONT=Arial]
    Mais après cela, l'action Switch Workspace semblait uniquement arrêter le worbench...
    J'ai alors essayé de ébugger pour savoir ce qui se passait et je suis arrivé jusqu'à la classe [/FONT][FONT=Arial]org.eclipse.core.launcher.Main class
    J'ai alors pu voir que la méthode setExitData() utilisait un argument de commande "-exitdata" et que si cet argument n'existait pas, elle s'arrêtait pûrement et simpleent:

    [/FONT] [FONT=Arial]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [/FONT]
      [FONT=Arial]   private void setExitData() {[/FONT]
      [FONT=Arial]        String data = System.getProperty(PROP_EXITDATA);[/FONT]
      [FONT=Arial]        if (exitData == null || data == null)[/FONT]
      [FONT=Arial]            return;[/FONT]
      [FONT=Arial]        // sync call to the launcher[/FONT]
      [FONT=Arial]        runCommand(true, new String[] {EXITDATA, exitData, data}); //$NON-NLS-1$[/FONT]
      [FONT=Arial]    }[/FONT]
      [FONT=Arial]
    [/FONT]
    [FONT=Arial]
    D'où 2 nouvelles questions:
    D'après vous, est-ce que je suis sur la bonne voie?
    Est-ce que quelqu'un sait à quoi sert se exitdata et ce que l'on doit lui donner comme valeur???

    Merci d'avance!
    [/FONT]

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 47
    Par défaut
    Bon, bin j'ai résolu le problême...En fait je l'avais résolu quand j'ai ajouté les références à EXIT_RELAUNCH mais je ne pouvais pas le voir...En effet, j'ai tenté un truc: j'ai essayé de lancer un Eclipse depuis Eclipse et ça ne marchait pas....Ca avait exactement le même comportement que mon appli après avoir ajouté le EXIT_RELAUNCH: arrêt de l'appli sans relancer de nouveau process...J'ai alors ré-exporté mon produit RCP, et là, mon switch workspace marche!!!
    Je sais pas trop pourquoi ça ne marche pas depuis Eclipse, mais en tous cas, pour le produit final, ça roule!!

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Par défaut
    Bonjour,

    je cherche également a déclarer la gestion de workspace pour mon appli RCP. J'ai réussi a utiliser le switch comme expliquer ci dessus mais je ne parvient pas à déclarer la gestion du workspace au démarrage de l'application, j'ai réussi de le faire manuellement en appelant la dialogue IDE ChooseWorkspaceDialog, puis de sauver le workspace dans le Platform.getInstanceLocation()

    Mais voila j'aimerai savoir si il y a un moyen plus propre de déclarer cela pour une gestion plus complète et automatique, car ici lorsque de tente un switch de workspace, mon application redémarre normalement, mais cela n'empêche pas de faire réapparaitre la sélection manuelle que j'ai implémenté, alors que eclipse le fait lui.

  6. #6
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Par défaut
    bon en fin de compte j'ai téléchargé les sources d'éclipse et me suis inspiré de l'IDEApplication, marche nickel

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

Discussions similaires

  1. Ouvrir un projet: Switch Workspace
    Par Smix007 dans le forum Eclipse
    Réponses: 3
    Dernier message: 10/05/2012, 16h09
  2. [RCP] implémenter un éditeur
    Par MarneusCalgarXP dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 01/07/2008, 12h11
  3. Implémenter un Context Switching
    Par Thor Tillas dans le forum C++
    Réponses: 5
    Dernier message: 14/11/2006, 20h53

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