Domanda

Domanda su Eclipse RCP e tutta la prospettiva / visualizzazione di progettazione / Editor - qual è il modo migliore per creare l'applicazione che consente di visualizzare più finestre su più monitor? Esercitazioni e libro che ho visto sempre pacco RCP disegno / SWT in vista all'interno di prospettiva all'interno della finestra di domanda unica.

Qualora una regola finestra tutti gli altri o che tutti dovrebbero essere uguali (chiudendo ultimo esce applicazione)? Come affrontare le prospettive e punti di vista? Ci sono altre cose che dovremmo sapere?

Ambiente:. Eclipse Ganymede, Windows XP

È stato utile?

Soluzione

Un singolo workbench Eclipse in grado di creare più finestre. Ogni finestra è disposto con un punto di vista, così diverse finestre potevano essere impostati su diverse prospettive, o la stessa prospettiva, ed è possibile passare prospettive in ogni finestra indipendentemente dalle altre finestre.

È inoltre possibile impostare ingresso per ogni finestra. Questo è utile se ogni finestra sta lavorando su dati diversi (ad esempio, ogni finestra può essere collegato a un altro server o potrebbe essere che mostra i dati da diversi database che hanno tutti lo stesso schema, ma dati diversi).

Può essere che si sta utilizzando le finestre solo in modo che si possono vedere diversi punti di vista degli stessi dati su monitor diversi. In questo caso non è necessario creare programatically le finestre, ma deve solo aggiungere l'azione fornita dal banco di lavoro. Questo può essere fatto modificando la classe ActionBarAdvisor:

aggiungere alle dichiarazioni di campo:

private IWorkbenchAction newWindowAction;

aggiungere al codice in cui si fanno le azioni (in genere un metodo chiamato makeActions):

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

aggiungere al codice in cui si crea il menu:

    menu.add(newWindowAction);

dove menù è in genere il menu Finestra. Se non si dispone di un menu Finestra già nella propria applicazione e si desidera creare uno, la seguente riga funziona:

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

Questo vi darà una voce di menu che creerà una nuova finestra nello stesso modo in cui la voce di menu Finestra-> Nuova finestra in Eclipse IDE.

Se, d'altra parte, si desidera che ogni finestra per mostrare dati diversi, è necessario aprire nuove finestre programatically. Questo ti permette di impostare input differente per ogni finestra. Avrete bisogno di una riga di codice qualcosa come:

IWorkbenchPage newPage = window.openPage(inputObject);

dove InputObject contiene informazioni che identificano i dati visualizzati nella finestra. Se si desidera impostare il punto di vista iniziale di questo può essere fatto chiamando setPerspective sulla pagina.

Si vuole impostare il titolo in ogni finestra:

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

dove windowTitle è una stringa che descrive l'input per la finestra.

È possibile recuperare l'input per una finestra come segue:

window.getActivePage().getInput()

È quindi possibile lanciare questa a qualsiasi classe che si sta utilizzando come input della finestra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top