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 :

Ouvrir une vue dans un endroit voulu depuis un plugin


Sujet :

Eclipse Platform

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Par défaut Ouvrir une vue dans un endroit voulu depuis un plugin
    Bonjour

    Je développe une application en RCP et j'ai un problème de placement d'une vue depuis un plugin.

    Alors j'ai un pugin Application et un plugin Test. Le plugin Test requiert le plugin application et non l'inverse.

    Mon plugin Application contient les classes :
    Application
    ApplicationActionBarAdvisor
    ApplicationWorkbenchAdvisor
    ApplicationWorkbenchWindowAdvisor
    Perspective

    Mon plugin Test contient les classes :
    Activator
    TestView

    Dans la classe perspective j'ai déclaré 2 IFolderLayout : BottomLayout et RightLayout qui sont rattaché a l'edirorArea.

    Mon problème est le suivant, j'aimerais qu'au chargement du plugin Test, ma vue TestView vienne se positionner dans le RightLayout de la perspective (sans avoir a déclarer de dépendance de Application vers Test).

    Savez vous comment faire pour que je puisse réaliser cela ?

  2. #2
    Membre chevronné Avatar de Aurelien Pupier
    Homme Profil pro
    Senior Software Engineer
    Inscrit en
    Décembre 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Senior Software Engineer

    Informations forums :
    Inscription : Décembre 2007
    Messages : 278
    Par défaut
    utilises org.eclipse.ui.perspectiveExtension

    tu choisis la perspective cible
    puis tu ajoutes une vue et tu peux déclarer sa position avec le champ "relative"

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Par défaut
    Merci pour ta réponse.

    J'avais pensez à ça effectivement sauf que dans le champ "relative", il s'attend a avoir une classe java et je ne vois donc pas comment faire le lien entre une classe et la partie droite de ma perspective.

    Le fichier plugin.xml de mon plugin test ressemble à ça :

    Code xml : 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
    <plugin>
      <extension
             point="org.eclipse.ui.views">
          <view
                allowMultiple="false"
                class="TestView"
                id="testview"
                name="View">
          </view>
       </extension>
      <extension
            point="org.eclipse.ui.perspectiveExtensions">
         <perspectiveExtension
               targetID="application.perspective">
            <view
                  id="testview"
                  relationship="right"
                  relative="???????">
            </view>
         </perspectiveExtension>
      </extension>
    </plugin>

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,

    Justement, un article tout neuf traitant des perspectives vient d'être publié
    http://mbaron.developpez.com/eclipse/perspectives

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Par défaut
    Merci pour ce petit cours que je n'avais pas vu.
    Je regarde tout ca dès que je peux

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Par défaut
    Bonjour à tous

    Je réouvre ce post que j'avais tag résolu car j'ai trouvé 1 petit pb sur ma solution.

    Ce que je souhaite avoir c'est :
    - sur la partie droite de l'écran la vue "MaVue1" avec sous elle "MaVue3"
    - que "MaVue1" et "MaVue3" soit toujours visible et conserve la même place et la même taille (sauf action de l'utilisateur)
    - que sur une action que je gère "MaVue2" se place dans la partie non occupé de l'écran.

    Voici la déclaration de ma perspective dans mon plugin Application :

    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
    public class Perspective implements IPerspectiveFactory {
     
    	public static final String ID = "maPerspective";
     
    	public void createInitialLayout(IPageLayout layout) {
    		String editorArea = layout.getEditorArea();
    		layout.setEditorAreaVisible(false);
     
     
    		IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.55f, editorArea);
    		left.addPlaceholder("maVue2"+":*");
     
    	}
     
    }
    Voici le plugin.xml ou se trouve mes 3 vues se trouvant dans le plugin Test :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.4"?>
    <plugin>
      <extension
             point="org.eclipse.ui.views">
          <view
                allowMultiple="false"
                class="MaView1"
                id="maVue1"
                name="Vue1">
          </view>
          <view
                allowMultiple="true"
                class="MaView2"
                id="maVue2"
                name="Vue2"
                restorable="false">
          </view>
          <view
                allowMultiple="false"
                class="MaView3"
                id="maVue3"
                name="Vue3">
          </view>
       </extension>
      <extension
            point="org.eclipse.ui.perspectiveExtensions">
         <perspectiveExtension targetID="*">
            <view
                  closeable="false"
                  id="maVue1"
                  minimized="false"
                  moveable="false"
                  ratio="0.55"
                  relationship="right"
                  relative="org.eclipse.ui.views.TaskList"
                  showTitle="false"
                  standalone="false"
                  visible="true">
            </view>
            <view
                  closeable="false"
                  id="maVue2"
                  minimized="false"
                  moveable="false"
                  relationship="left"
                  relative="maVue1"
                  showTitle="false"
                  standalone="true"
                  visible="false">
            </view>
            <view
                  closeable="false"
                  id="maVue3"
                  minimized="false"
                  moveable="false"
                  ratio="0.70"
                  relationship="bottom"
                  relative="maVue1"
                  showTitle="false"
                  standalone="false"
                  visible="true">
            </view>
         </perspectiveExtension>
      </extension>
    </plugin>

    Le code que j'ai écris jusque là fait tout ça à 1 pb près :
    1) à la fermeture de "MaVue2", les 2 autres vue qui occupe la partie droite de l'écran prennent tout l'écran (ce que je souhaiterai éviter)


    Avez-vous une idée pour résoudre ce "petit" pb ?

    merci par avance

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

    Une petite question, pourquoi tu mets ta View "MaView1" relative à la view "TaskList"? C'est voulu? Si c'est juste pour la placer, et, qu'elle ne soit pas repositionnable, pourquoi ne pas la placer par rapport à la zone de l'Editor (pour rappel identifiant de la zone Editor : "org.eclipse.ui.editorss")?

    Voilà, à+
    Gueritarish

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Par défaut
    Citation Envoyé par Gueritarish Voir le message
    Salut,

    Une petite question, pourquoi tu mets ta View "MaView1" relative à la view "TaskList"? C'est voulu?
    oui et non, c'est juste que lors des tests que j'ai fait je l'ai mise là aussi pour tester et j'ai écrit le post avec cet exemple la.


    Citation Envoyé par Gueritarish Voir le message
    Si c'est juste pour la placer, et, qu'elle ne soit pas repositionnable, pourquoi ne pas la placer par rapport à la zone de l'Editor (pour rappel identifiant de la zone Editor : "org.eclipse.ui.editorss")?
    dans ma version définitive je l'ai bien définie dans la zone Editor, mais elle s'étend tout de même à tout l'écran lors de la fermeture de MaVue2. Alors qu'elle respecte bien le placement avant l'ouverture de celle ci.

  9. #9
    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 : 41
    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
    Dans ce cas là, le problème pourrait peut-être venir de l'action qui étend "MaView2" à toute la zone disponible... C'est un piste.
    Tu pourrais poster le code de cette action?

    Gueritarish

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Par défaut
    Citation Envoyé par Gueritarish Voir le message
    Dans ce cas là, le problème pourrait peut-être venir de l'action qui étend "MaView2" à toute la zone disponible... C'est un piste.
    Tu pourrais poster le code de cette action?
    MaVue2 s'ouvre sur un evenement sur MaVue1 qui est une tableview :

    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
     
    viewer.addDoubleClickListener(new IDoubleClickListener() {
    	@Override
    	public void doubleClick(DoubleClickEvent event) {
    		Object selection = ((IStructuredSelection) event.getSelection()).getFirstElement();
     
    		if (selection instanceof Auto) {
    			try {
    				IViewPart view = ApplicationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(MaVue2.ID, MaVue2.SECUNDARYID, IWorkbenchPage.VIEW_ACTIVATE);
    			} catch (PartInitException e) {
    				system.out.println("Erreur");
    			}
    		}
    	}
    });

  11. #11
    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 : 41
    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
    Une autre piste peut être le fait que tu donnes plus de 100% de l'espace relatif à la zone d'édition...
    Dans ton plugin.xml, tu fais un :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            <view
                  closeable="false"
                  id="maVue1"
                  minimized="false"
                  moveable="false"
                  ratio="0.55"
                  relationship="right"
                  relative="org.eclipse.ui.editorss"
                  showTitle="false"
                  standalone="false"
                  visible="true">
            </view>
    Et dans la définition du IFolderLayout de ta Vue2, tu lui attribues :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String editorArea = layout.getEditorArea();
    layout.setEditorAreaVisible(false);
    	
    IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.55f, editorArea);
    A creuser...

    Gueritarish

Discussions similaires

  1. [WebFlow] Impossible d'ouvrir une vue dans une popup
    Par Marcolinho dans le forum Spring Web
    Réponses: 2
    Dernier message: 31/05/2011, 17h57
  2. [flash] ouvrir une page dans une frame différente
    Par viena dans le forum Intégration
    Réponses: 6
    Dernier message: 01/08/2007, 16h54
  3. [Applet] Ouvrir une applet dans une page HTML
    Par debutant java dans le forum Applets
    Réponses: 4
    Dernier message: 04/06/2004, 18h11
  4. Oracle Designer: récupération d'une vue dans la base
    Par BILLYPATOU dans le forum Designer
    Réponses: 2
    Dernier message: 19/03/2004, 12h08
  5. [DEBUTANT] Une vue dans une procedure stockee ?
    Par Invité dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/02/2004, 12h57

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