Je travaille sur un hybride 3,8-e4 (autrement dit , nous avons les dépendances de Luna, mais nous n'utiliser le Application.e4xmi , encore). Nous utilisons donc essentiellement la couche compacte.
Cela étant dit, il serait bien de trouver un moyen par programme e4 d'empiler ces vues désagréables dans le dossier de l'éditeur.
1.) Problème
Je veux placer un dossier de vue générique dans la zone de l'éditeur, de sorte que chaque vue qui est ouverte au moment de l'exécution y soit ouverte.
(photo volée à cette question )
2.1) Solution possible n ° 1: Utilisation de plugin.xml
Créez une extension de perspective et ajoutez chaque vue possible à cette extension, avec une pile de relations sur org.eclipse.ui.editorss relative . C'est un peu gênant si vous avez trop de vues à ouvrir et si le projet évolue rapidement. J'ai également remarqué que les identifiants de vue génériques ne fonctionnent pas ici.
Si vous trouvez le temps d'ajouter chaque vue possible à l'extension de perspective, cela fonctionnerait. Cependant, SI vous ouvrez une vue qui n'est pas ajoutée ici (c'est-à-dire: s'ouvre dans un dossier différent), alors chaque vue ouverte suivante sera ouverte dans le dossier précédent, et PAS dans la zone de l'éditeur (demandez plus d'explications si vous ne le faites pas) tu piges).
2.2) Solution possible n ° 2: Utilisation du code dans l'usine de perspective
Dans le IPerspectiveFactory
, nous avons accès au IPageLayout
, qui se trouve être org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout
(e4 stuff).
Maintenant, cette ModeledPageLayout
implémentation est raisonnable, mais aussi aucune documentation et API publiques étranges. Celui-ci donne la possibilité d'empiler une vue sur tout autre parent
modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);
Ce serait la version programmatique de 2.1 . En outre, le même problème apparaît ici. Si une vue est ouverte ailleurs, le code ci-dessus devient inutile.
Assez intéressant, l' stackView
API ne prend pas en charge les caractères génériques (alors que d'autres comme le addView
font).
2.3) Solution possible n ° 3: Solutions de contournement yaaay!
J'ai beaucoup de perspectives, et beaucoup de dossiers différents dans chacun. Tout est précisément placé.
Étant donné qu'Eclipse propose les API pour obtenir tous les ID de vue de partout dans le système, je souhaite faire ce qui suit, par perspective: chaque ID de vue qui n'a pas été ajouté à un dossier spécifique sera ajouté à la zone de l'éditeur (c'est-à-dire le dossier de l'éditeur , pile de l'éditeur) .
Ce serait mon dernier recours, à moins que quelqu'un ne propose une solution plus pratique et plus rapide.
N'oubliez pas qu'une alternative programmatique e4 est plus flexible!
3.) Questions connexes
- Eclipse RCP - Ouvrir la vue dans le dossier de l'éditeur
- Eclipse RCP - Empiler une vue avec la zone d'édition?
- Perspective Eclipse personnalisée, avec une vue initialement invisible empilée dans la zone de l'éditeur
- Question Google, réponse de Lars
Celles-ci deviendraient obsolètes pour la version e4.
4.) Bug connexe sur Bugzilla d'Eclipse:
Ce bogue récent ouvert par moi-même a une pièce jointe avec un petit SSCCE. Les étapes pour reproduire ceci sont décrites dans ce commentaire , donc je ne vais pas les copier-coller ici.
Réponses:
Je vous suggère d'aller avec la solution possible n ° 3, car je pense qu'il n'y a pas de méthode plus rapide pour le faire.
la source