Pergunta

Questão sobre Eclipse RCP e / exibição de design toda perspectiva / editor - qual é a melhor maneira de criar aplicativo que irá exibir múltiplas janelas em vários monitores? Tutoriais e livro que eu vi sempre embalar RCP / design SWT em vista dentro perspectiva dentro da janela de pedido único.

Caso uma janela de governar todos os outros, ou todos eles devem ser iguais (fechando última aplicação um saídas)? Como lidar com as perspectivas e pontos de vista? Existem outras coisas que devemos saber?

Ambiente:. Eclipse Ganymede, o Windows XP

Foi útil?

Solução

A única Eclipse bancada pode criar várias janelas. Cada janela é definida usando uma perspectiva, de modo que diferentes janelas poderia ser ajustado para diferentes perspectivas, ou a mesma perspectiva, e você pode alternar perspectivas em cada janela independentemente das outras janelas.

Você também pode definir a entrada para cada janela. Isto é útil se cada janela está trabalhando em dados diferentes (por exemplo, cada janela pode ser conectado a um servidor diferente ou poderia estar mostrando dados de bancos de dados diferentes que todos têm o mesmo esquema, mas dados diferentes).

Pode ser que você está usando janelas apenas para que você pode ver diferentes perspectivas dos mesmos dados em diferentes monitores. Nesse caso, você não precisa criar programaticamente as janelas, mas necessidade só adicionar a ação fornecido pela bancada. Isso pode ser feito modificando sua classe ActionBarAdvisor:

adicionar aos declarações de campo:

private IWorkbenchAction newWindowAction;

adicionar ao código onde você faz as ações (normalmente um método chamado makeActions):

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

adicionar ao código onde você cria os menus:

    menu.add(newWindowAction);

onde menu é tipicamente o menu Janela. Se você não tem um menu janela já em seu aplicativo e gostaria de criar um, a seguinte linha irá funcionar:

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

Isto lhe dará um item de menu que irá criar uma nova janela, da mesma forma como o Janela-> item de menu Nova janela no Eclipse IDE.

Se, por outro lado, você quer cada janela para mostrar dados diferente, então você vai precisar para abrir as novas janelas programaticamente. Isso permite que você definir a entrada diferente para cada janela. Você vai precisar de uma linha de código algo como:

IWorkbenchPage newPage = window.openPage(inputObject);

onde InputObject contém informações que identificam os dados mostrados na janela. Se você deseja definir a perspectiva inicial isso pode ser feito pelo telefone setPerspective na página.

Você vai querer definir o título em cada janela:

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

onde WindowTitle é uma string descrevendo a entrada para a janela.

Você pode buscar a entrada para uma janela da seguinte forma:

window.getActivePage().getInput()

Você pode então converter este para qualquer classe que você está usando como sua entrada janela.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top