Question

Question sur la conception Eclipse RCP et toute la perspective / view / éditeur - quelle est la meilleure façon de créer l'application qui permet d'afficher plusieurs fenêtres sur plusieurs moniteurs? Tutoriels et livre que je l'ai vu Emportez toujours la conception RCP / SWT en vue à l'intérieur perspective dans la fenêtre d'application unique.

Si l'une règle de fenêtre tous les autres ou ils devraient tous être égaux (fermeture dernière application se ferme)? Comment traiter les perspectives et points de vue? Y at-il d'autres choses que nous devrions savoir?

Environnement:. Eclipse Ganymede, Windows XP

Était-ce utile?

La solution

Un seul plan de travail Eclipse peut créer des fenêtres multiples. Chaque fenêtre est posée à l'aide d'un point de vue, les fenêtres si différentes pourraient être mis à différents points de vue, ou la même perspective, et vous pouvez changer de perspectives dans chaque fenêtre indépendamment des autres fenêtres.

Vous pouvez également entrée réglée pour chaque fenêtre. Ceci est utile si chaque fenêtre travaille sur différentes données (par exemple, chaque fenêtre peut être connecté à un autre serveur ou pourrait montrer des données de bases de données différentes qui ont toutes le même schéma, mais des données différentes).

Il se peut que vous utilisez Windows uniquement pour que vous puissiez voir les différents points de vue des mêmes données sur différents moniteurs. Dans ce cas, vous n'avez pas besoin de créer les fenêtres, mais programatically besoin que d'ajouter l'action fournie par l'établi. Cela peut se faire en modifiant votre classe ActionBarAdvisor:

ajouter aux déclarations sur le terrain:

private IWorkbenchAction newWindowAction;

ajouter au code où vous faites les actions (généralement une méthode appelée makeActions):

    newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
    register(newWindowAction);

ajouter au code où vous créez des menus:

    menu.add(newWindowAction);

où le menu est généralement le menu Fenêtre. Si vous ne disposez pas d'un menu Fenêtre déjà dans votre application et souhaitez créer une, la ligne suivante fonctionnera:

    MenuManager menu = new MenuManager(
      "&Window", 
      IWorkbenchActionConstants.M_WINDOW);

Cela vous donnera un élément de menu qui va créer une nouvelle fenêtre de la même manière que le Fenêtre-> Nouvel élément de menu Fenêtre dans l'IDE Eclipse.

Si, d'autre part, vous voulez que chaque fenêtre pour afficher des données différentes, vous aurez besoin d'ouvrir les nouvelles fenêtres programatically. Cela vous permet de définir l'entrée différent pour chaque fenêtre. Vous aurez besoin d'une ligne de code quelque chose comme:

IWorkbenchPage newPage = window.openPage(inputObject);

où InputObject contient des informations qui identifient les données affichées dans la fenêtre. Si vous souhaitez définir la perspective initiale cela peut être fait en appelant setPerspective sur la page.

Vous voulez définir le titre dans chaque fenêtre:

newPage.getWorkbenchWindow().getShell().setText(windowTitle);

où windowTitle est une chaîne décrivant l'entrée de la fenêtre.

Vous pouvez chercher l'entrée d'une fenêtre comme suit:

window.getActivePage().getInput()

Vous pouvez ensuite lancer ce à quelque classe que vous utilisez comme entrée de la fenêtre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top