Eclipse RCP-ouvrir une vue dans la Zone Editor (3.8/E4 hybrid)
je travaille sur une hybride 3.8-e4 (I. e nous avons les dépendances de Luna, mais nous ne utiliser L'Application .e4xmi , encore). Nous sommes donc fondamentalement le fonctionnement de la couche compacte.
cela dit, il serait bien de trouver un moyen programmatique e4 pour empiler ces vues désagréables sur 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 à l'exécution y sera ouverte.
(photo volée de cette question )
2.1) possible fix no.1: Utilisation du plugin.xml
créer une extension de perspective, et ajouter chaque vue possible à cette extension, avec relation de la pile plus relative org.Eclipse.interface.editorss . C'est un peu gênant si vous avez trop de vues à ouvrir, et si le projet s'échelonne rapidement. J'ai aussi remarqué que les génériques vue Identifiants ne fonctionnent pas ici.
si 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é ici (c'est à dire: ouvre dans un dossier différent), puis chaque vue ouverte sera ouverte dans le dossier précédent, et pas dans la zone de l'éditeur (demander plus d'explications si vous ne l'obtenez pas).
2.2) possible fix no.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
(substance e4).
maintenant, ce ModeledPageLayout
la mise en œuvre est raisonnable, mais aussi pas de documentation et des API publiques bizarres. Celui-ci donne la possibilité de mettre une vue sur n'importe quel autre relatif
modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);
ce serait la version programmatique de 2.1 . 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 supporte pas les caractères génériques (alors que d'autres telles que addView
).
2.3) correction Possible pas.3: Solutions de contournement yaaay!
j'ai beaucoup de points de vue, et beaucoup de différents dossiers dans chacun d'eux. Tout est placé précisément.
depuis Eclipse offre les API pour obtenir tous les ID de vue de partout autour du système, je veux faire ce qui suit, par perspective: chaque ID de vue qui n'a pas été ajouté à un dossier spécifique sera ajouté à la zone d'édition (i.e. dossier d'édition, pile d'édition) .
ce serait mon dernier recours, à moins que quelqu'un offre une solution plus pratique et économe de temps.
rappelez - vous, une alternative programmatique e4 est plus flexible!
3.) Questions connexes
- Eclipse RCP -- Ouvert dans l'Éditeur du dossier
- Eclipse RCP-empiler une vue avec la zone d'édition?
- Personnalisé Eclipse point de vue, avec d'abord invisible vue empilés à la zone de l'éditeur
- Google question, Lars réponse
ceux-ci seraient rendus obsolètes pour la version e4.
4.) Liées Bug sur l'Éclipse du Bugzilla:
ce récent bug ouvert par moi-même a une attache avec un petit SSCCE. Les étapes pour reproduire ceci sont décrites dans ce commentaire , donc je ne vais pas les copier-coller ici.