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.

View in editor folder

(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.

SS of the plugin.xml with perspective extensions

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

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.

104
demandé sur Community 2014-11-06 13:14:23

1 réponses

je vous suggère d'aller avec pas de correction Possible.3, car je pense qu'il n'y a pas une méthode plus rapide pour ce faire.

1
répondu 2016-01-08 11:57:05