Publicité
+ Répondre à la discussion
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 21 à 26 sur 26
  1. #21
    Modérateur
    Avatar de Gueritarish
    Homme Profil pro Marc
    Développeur Java
    Inscrit en
    mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Nom : Homme Marc
    Âge : 30
    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 776
    Points
    3 776

    Par défaut

    Salut,

    Il vaut mieux, selon moi, passer par le service de sélection plutôt que par HandlerUtil. Pour ce faire, dans ton Handler, tu fais:
    Code :
    1
    2
    3
    4
    5
    6
    final ISelectionService iService = (ISelectionService) PlatformUI.getWorkbench().getService(ISelectionService.class);
    final IWorkbenchPart iActivePart = HandlerUtil.getActivePart(event);
    if (iActivePart != null) {
      final String iPartId = iActivePart.getSite().getId();
      ISelection  iCurrentSelection = iService.getSelection(iPartId);
    }
    Et tu es sûr d'avoir la sélection de la vue ou de l'éditeur courant.

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

  2. #22
    Membre Expert Avatar de thierrybenji
    Homme Profil pro Benjamin
    Étudiant
    Inscrit en
    décembre 2008
    Messages
    1 209
    Détails du profil
    Informations personnelles :
    Nom : Homme Benjamin
    Âge : 26
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2008
    Messages : 1 209
    Points : 1 985
    Points
    1 985

    Par défaut

    Merci, mais ça ne change en rien mon problème.
    L'ActivePart ne change pas quand je clic sur mon treeViewer.

    À la base je voulais faire ça :
    Code :
    1
    2
    3
    4
    5
    6
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener (){
    	@Override
    	public void selectionChanged(SelectionChangedEvent event) {
                    // Ici quelque chose pour réactiver la vue
                    // Mais je ne sais pas quoi
    	}});
    Mais en fait je viens de voir que la méthode :
    Code :
    IEditorPart org.eclipse.ui.IWorkbenchPage.openEditor(IEditorInput input, String editorId) throws PartInitException
    Existait aussi comme ça :
    Code :
    IEditorPart org.eclipse.ui.IWorkbenchPage.openEditor(IEditorInput input, String editorId, boolean activate) throws PartInitException
    Et donc maintenant quand je créer un onglet EditorPart je met le booléen activate à false, et donc ma vue reste active, au lieu que l'onglet devienne actif.

    J'ai mal expliqué, mais en fait quand je créer un onglet depuis la ViewPart, l'EditorPart créé est actif et du coup la ViewPart ne l'est plus.
    Aidez la chaîne Nolife, abonnez-vous : http://www.nolife-tv.com/

  3. #23
    Membre Expert Avatar de thierrybenji
    Homme Profil pro Benjamin
    Étudiant
    Inscrit en
    décembre 2008
    Messages
    1 209
    Détails du profil
    Informations personnelles :
    Nom : Homme Benjamin
    Âge : 26
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2008
    Messages : 1 209
    Points : 1 985
    Points
    1 985

    Par défaut

    En fait j'aurai préféré mettre la vue active dans le SelectionChangedListener.

    Parce que là si j'ouvre un onglet et que j'appuie sur le bouton retour, la sélection est sur la ViewPart alors qu'il faudrait qu'elle soit sur l'EditorPart, mais comme elle n'est pas active par défaut à cause de mon openEditor je suis obligé de sélectionner l'EditorPart pour la rendre active.

    Mais je n'ai pas trouvé comme activé une vue...

    Edit : j'ai trouvé une solution dans mon BackHandler je fais :
    Code :
    1
    2
    3
    HandlerUtil.getActiveEditor(event);
    au lieu de :
    HandlerUtil.getActivePage(event);
    J'ai des commandes en commun depuis la View ou depuis l'Editor, c'est les commandes que j'affiche avec le clique droit.

    Et j'ai, sur la barre de commande, ces commandes, plus des autres commandes uniquement utile depuis l'Editor (Back fait partie de ces commandes).
    Aidez la chaîne Nolife, abonnez-vous : http://www.nolife-tv.com/

  4. #24
    Modérateur
    Avatar de Gueritarish
    Homme Profil pro Marc
    Développeur Java
    Inscrit en
    mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Nom : Homme Marc
    Âge : 30
    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 776
    Points
    3 776

    Par défaut

    Salut,

    Essaye de reformuler mieux ce que tu attends. Parce que là, pour moi ça reste du chinois.
    Qu'est-ce que tu veux faire exactement?

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

  5. #25
    Membre Expert Avatar de thierrybenji
    Homme Profil pro Benjamin
    Étudiant
    Inscrit en
    décembre 2008
    Messages
    1 209
    Détails du profil
    Informations personnelles :
    Nom : Homme Benjamin
    Âge : 26
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2008
    Messages : 1 209
    Points : 1 985
    Points
    1 985

    Par défaut

    Ouais désolé j'ai vraiment du mal à éxpliquer... Pourtant c'est simple !

    Je veux que la View soit active quand on clique dessus et je veux que l'Editor soit actif quand on clique dessus.

    Du coup dans le TreeViewer de la View j'ai mis ça :
    Code :
    1
    2
    3
    4
    5
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener (){
    	@Override
    	public void selectionChanged(SelectionChangedEvent event) {
    		getSite().getPage().activate(MaView.this);
    	}});
    Comme ça dès que je sélectionne un objet dans le TreeViewer la View est active.
    Tout fonctionne maintenant.

    Je vais peut être juste ajouter de quoi activer ou désactiver des commandes selon ce qui est actif et j'aurai terminé.
    Aidez la chaîne Nolife, abonnez-vous : http://www.nolife-tv.com/

  6. #26
    Membre Expert Avatar de thierrybenji
    Homme Profil pro Benjamin
    Étudiant
    Inscrit en
    décembre 2008
    Messages
    1 209
    Détails du profil
    Informations personnelles :
    Nom : Homme Benjamin
    Âge : 26
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2008
    Messages : 1 209
    Points : 1 985
    Points
    1 985

    Par défaut

    J'ai réussi à afficher des commandes dans la barre d'outils quand un DetailEditorPart est sélectionné :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <command
          commandId="package.maCommande"
          style="push">
          <visibleWhen
    		checkEnabled="false">
     		<with
           		      variable="activePartId">
            	      <equals
                  	            value="ProjetRCP.detailEditorPart">
            	      </equals>
     		</with>
    	</visibleWhen>                  
    </command>
    C'était simple à implémenter, mais j'ai eu un peu de mal à trouver cette technique.

    Je crois que je vais m'arrêter là.
    La seule chose que je ferais bien encore c'est d'utiliser QuickAccess pour filtrer un DetailEditorPart, mais ce n'est pas nécessaire.

    En tout cas merci pour votre aide.
    Aidez la chaîne Nolife, abonnez-vous : http://www.nolife-tv.com/

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •