Je travaille sur un hybride 3.8-e4 (c'est-à-dire que nous avons les dépendances Luna, mais nous ne pas utilisez Application.e4xmi , pour l'instant). Nous exécutons donc essentiellement la couche compacte.
Cela étant dit, il serait agréable de trouver un moyen programmatique e4 pour empiler ces vues désagréables sur le dossier de l'éditeur.
Je souhaite placer un dossier de vues génériques dans la zone de l'éditeur, de sorte que chaque vue ouverte lors de l'exécution y soit ouverte.
(photo volée à cette question )
Créez une extension de perspective et ajoutez chaque vue possible à cette extension, avec pile de relations plus de organisation relative.Eclipse.ui.editorss. 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 ID de vue génériques ne fonctionnent pas ici.
Si vous vous trouvez le temps d'ajouter chaque vue possible à l'extension de perspective, cela fonctionnerait. Bien que, si vous ouvrez une vue qui n'est pas ajoutée ici (c'est-à-dire: s'ouvre dans un dossier différent), chaque vue ouverte suivante sera ouverte dans le dossier précédent, et NON dans la zone de l'éditeur (demandez des explications supplémentaires si vous ne le faites pas). tu piges).
Dans le IPerspectiveFactory
, nous avons accès au IPageLayout
, qui se trouve être org.Eclipse.ui.internal.e4.compatibility.ModeledPageLayout
(e4).
Maintenant, cette implémentation de ModeledPageLayout
est raisonnable, mais aussi pas de documentation et des 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'API stackView
ne prend pas en charge les caractères génériques (contrairement à d'autres comme addView
).
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 effectuer les opérations suivantes, 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, la 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, une alternative programmatique e4 est plus flexible!
Ceux-ci seraient rendus obsolètes pour la version e4.
Ce bug 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.
Je vous suggère d'utiliser le correctif possible n ° 3, car je pense qu'il n'y a pas de méthode plus rapide pour le faire.