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 :

Transformer une application en éditeur Eclipse


Sujet :

Eclipse Platform

  1. #1
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut Transformer une application en éditeur Eclipse
    Bonjour,

    j'ai actuellement un application Java standalone que je lance à partir d'Eclipse, et qui me permet de charger un fichier et d'effectuer des opérations dessus. Cependant, je voudrais pouvoir intégrer cette application dans mon RCP, afin de la gérer de la même façon qu'un éditeur, qui serait attaché au type de fichier qui m'intéresse.
    J'aimerais pouvoir réaliser cette adaptation de mon application, comme cela se fait pour un éditeur externe (par exemple Word) que l'on peut ouvrir directement dans Eclipse.

    Je souhaiterais savoir si quelqu'un à déjà effectuer de genre de transformation et s'il existe des tutoriels sur ce sujet.

    Merci,
    David.

  2. #2
    Membre confirmé Avatar de CORTEZ
    Profil pro
    Dev : Java/J2EE
    Inscrit en
    Juillet 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Dev : Java/J2EE
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2007
    Messages : 59
    Par défaut
    bonjour David,
    quelle est la bibliothèque Graphique que tu utilise dans ton projet Swing/SWT.... ?
    si c'est du SWT alors t'as que construire un nouveau plugin qui fait l'emballage
    de ton code dans un nouveau editeur Eclipse.

    je te conseille de commencer avec le tuto RCP

    - commence par créer un MultipageEditor depuis les templates qui existent dans le PDE tools,
    ensuite dans le code de la création du deuxième page tu ajoute le code de votre éditeur.
    si c'est Swing que tu utilise alors il faut emballer Le JFrame dans un Frame awt puis tu peut le mettre dans un type composite SWT .


    cordialement Cortez.

  3. #3
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut
    Bonjour et merci CORTEZ pour ta réponse,

    dans mon RCP j'utilise SWT, mais l'application que je veux intégrer est en AWT/Swing.
    commence par créer un MultipageEditor depuis les templates qui existent dans le PDE tools,
    ensuite dans le code de la création du deuxième page tu ajoute le code de votre éditeur.
    si c'est Swing que tu utilise alors il faut emballer Le JFrame dans un Frame awt puis tu peut le mettre dans un type composite SWT .
    Je pensais également partir comme cela, cependant je me demandais s'il existait un moyen d'intégrer mon application directement comme un éditeur externe, mais je ne pense pas que cela soit possible. Je vais devoir faire l'intégration en modifiant le conteneur de l'application (JFrame) par un éditeur Eclipse.

    Je vais regarder cela, et tiendrais au courant de l'état d'avancement.
    Merci,
    David.

  4. #4
    Membre confirmé Avatar de CORTEZ
    Profil pro
    Dev : Java/J2EE
    Inscrit en
    Juillet 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Dev : Java/J2EE
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2007
    Messages : 59
    Par défaut
    bonjour,

    voici un exemple que j'ai fait par curiosité, il emballe un jTable dans un composite SWT.

    cordialement.
    Fichiers attachés Fichiers attachés

  5. #5
    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 : 42
    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,

    J'aurai un petit contournement pour toi... Par contre, je sais pas du tout si ça va marcher
    Tu vas dans ton explorateur de fichier (pour Windows hein...), tu fais clic droit -> Propriétés -> S'ouvre avec -> Modifier. Là, tu sélectionnes le jar de ton appli (en enlevant le filtre dans la boite de dialogue). Si tu as un Main-Class dans le MANIFEST de ton jar, ça devrait lancer ton appli quand tu doubles-cliques dessus.
    Ensuite, dans Eclipse, tu fais clic droit -> Open With -> System Editor. Normalement, ça devrait marcher...
    Garanti 100% chacal si tu veux éviter de coder un Editor..

    Voilà, à+
    Gueritarish

  6. #6
    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 : 42
    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
    Citation Envoyé par CORTEZ Voir le message
    bonjour,

    voici un exemple que j'ai fait par curiosité, il emballe un jTable dans un composite SWT.

    cordialement.
    Tu peux aussi regarder les snippets SWT dans la partie Swing/AWT...

  7. #7
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut
    @Gueritarish
    Merci Gueritarish,
    Ensuite, dans Eclipse, tu fais clic droit -> Open With -> System Editor.
    ta solution est intéressante, mais le problème c'est que je pense que cela va lancer mon appli dans une fenêtre modale, et non dans un éditeur Eclipse, et je voudrais éviter cela.

    @CORTEZ
    voici un exemple que j'ai fait par curiosité, il emballe un jTable dans un composite SWT.
    je vais regarder cette solution, en espérant qu'elle ne soit pas trop lourde à mettre en place

    En tous cas merci à tous les deux,
    David.

  8. #8
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut
    Bonjour,

    j'ai donc utilisé le bridge Swing/SWT:
    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
    Composite composite = new Composite(form.getBody(), SWT.EMBEDDED);
    TableWrapData wrapData = new TableWrapData(TableWrapData.FILL_GRAB);
    composite.setLayoutData(wrapData);
    Frame awtFrame = SWT_AWT.new_Frame(composite);
    Panel rootPanel = new Panel(new BorderLayout()) {
                /**
                    * 
                    */
    		private static final long serialVersionUID = 10122155485121L;
     
    		   public void update(java.awt.Graphics g) {
                            /* Do not erase the background */
                            paint(g);
                       }
                   };
    awtFrame.add(rootPanel);
    ...
    //Recuperation de mon application
    ...
    Je récupère très bien le code de mon application dans mon éditeur, cependant j'ai un souci pour afficher correctement le composite. En effet, celui prend bien tout l'espace horizontal, mais pas verticalement. J'ai essayé les TableWrapLayout/TableWrapData et GridLayout/GridData, et j'ai toujours le problème.

    Quelqu'un aurait une idée?
    Merci,
    David.

  9. #9
    Membre confirmé Avatar de CORTEZ
    Profil pro
    Dev : Java/J2EE
    Inscrit en
    Juillet 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Dev : Java/J2EE
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2007
    Messages : 59
    Par défaut
    bonjour,
    essaye le fillLayout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
    Lien utile


    cordialement
    --Cortez

  10. #10
    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 : 42
    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 David,

    Je connais pas le TableWrapLayout, mais de ce que je viens de regarder dans la Javadoc, il te suffit de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableWrapData data = new TableWrapData(FILL_GRAB, FILL_GRAB);
    Et le tour est joué...

    Sinon, avec un GridData, tu fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    Et même conclusion

    Voilà, à+
    Gueritarish

  11. #11
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut
    Merci CORTEZ pour ta réponse.

    Je ne pense pas que cela viennent des Layout, car si au lieu d'ajouter le code de mon application, j'ajoute des Button et Label, je vois que mon composite s'étend verticalement pour afficher ces widgets. Je me demande si cela ne viendrait pas plutôt de la Frame construite à partir de SWT_AWT.new_Frame.

    Je vais faire des tests et je vous tiens au courant.

    David.

  12. #12
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut
    Oups merci Gueritarish,
    j'avais pas vu ton poste avant que je réponde .

    Je vais regarder ça.

    Merci.

  13. #13
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut
    Je suis finalement parti sur cette solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    form.getBody().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    form.getBody().setLayout(new FillLayout());
     
    Composite composite = new Composite(form.getBody(), SWT.EMBEDDED);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    composite.setLayout(new FillLayout());
    et cela fonctionne très bien, j'ai bien le contenu de mon application qui s'affiche dans mon éditeur Eclipse. Maintenant il me reste à gérer les actions (menus, sauvegarde, ...).

    Un grand merci à vous deux pour votre aide .

    David.

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

Discussions similaires

  1. Comment developper une application Swing avec Eclipse
    Par Haya-Jiji dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/04/2009, 03h02
  2. Réponses: 12
    Dernier message: 21/08/2008, 12h22
  3. Développer une application web sous Eclipse avec applet JSP
    Par bard123 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/04/2008, 22h40
  4. Transformer une application avec Form en application console
    Par Booster2ooo dans le forum Débuter
    Réponses: 8
    Dernier message: 25/03/2008, 17h52
  5. deployer une application créé avec eclipse
    Par Mickael Scofild dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 31/08/2007, 11h36

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