org.eclipse.ui.perspectives

Já vimos algumas maneiras de o workbench permitir ao usuário controlar a aparência da funcionalidade do plug-in. As exibições podem ser ocultadas ou exibidas utilizando o menu Perspectiva->Mostrar Exibição. Os conjuntos de ações podem ser ocultados ou exibidos utilizando o menu Perspectiva->Personalizar.... Esses recursos ajudam o usuário a organizar a confusão no workbench em um nível bem granulado.

Perspectivas

As Perspectivas fornecem uma camada adicional da organização. Os usuários podem alternar entre as perspectivas conforme se movem pelas tarefas. Uma perspectiva define uma coleção inicial e um layout de exibições que devem ser utilizados quando o usuário alterna para ela pela primeira vez. Define também o conjunto de ações iniciais visíveis.

A própria plataforma define uma perspectiva, a perspectiva Recurso. Outros plug-ins da plataforma, como o sistema de ajuda e o conjunto de ferramentas Java, definem outras perspectivas. O plug-in pode definir sua própria perspectiva, colaborando com o ponto de extensão org.eclipse.ui.perspectives.

A especificação da perspectiva no plugin.xml é direta. A marcação a seguir é utilizada pelo workbench na definição da sua própria perspectiva de recursos.

<extension
    point="org.eclipse.ui.perspectives">
    <perspective
        id="org.eclipse.ui.resourcePerspective"
        name="Resource"
        class="org.eclipse.ui.internal.ResourcePerspective">
    </perspective>
</extension>

Um plug-in deve fornecer um ID e um nome para a perspectiva, juntamente com o nome da classe que a implementa. Um ícone pode também ser especificado. A classe da perspectiva deve implementar IPerspectiveFactory.

Podemos ver na marcação que o trabalho real acontece no código. A interface com o factory da perspectiva é direta. Espera-se que os implementadores de IPerspectiveFactory configurem um IPageLayout com informações que descrevam a perspectiva e sua página de layout.

Layout de parte do workbench

Uma das principais tarefas de um IPageLayout é descrever o posicionamento do editor e das exibições na janela do workbench. Observe que esses layouts são diferente da classe Layout no SWT. Embora IPageLayout e Layout resolvam um problema semelhante (dimensionamento e posicionamento do widget em uma área maior), não é preciso entender os layouts do SWT para fornecer um layout de página da perspectiva.

O layout de página de uma perspectiva é inicializado com uma área para exibição de um editor. O factory da perspectiva é o responsável pela inclusão de exibições adicionais relativas ao editor. As exibições são incluídas no layout na relação (top, bottom, left, right), em outra parte. Os marcadores (espaço vazio) podem também ser incluídos em uma exibição que não seja mostrada inicialmente.

IFolderLayout pode ser utilizado para agrupar exibições em pastas com guias. Por exemplo, a perspectiva Recurso coloca o navegador do recurso dentro de uma pasta no canto superior esquerdo do workbench.  Normalmente, os marcadores são utilizados em layouts de pasta. A perspectiva Recurso define um marcador para a exibição de marcadores na mesma pasta que o navegador de recurso. Se o usuário mostrar a exibição dos marcadores, ela aparecerá na mesma pasta que o navegador, com uma guia para cada exibição.

IPageLayout permite também incluir conjuntos de ações em uma perspectiva.  Você pode também incluir alguns atalhos para os menus relacionados a ela.  Um novo atalho de assistente irá incluir uma nova entrada no menu Arquivo->Novo de uma perspectiva e irá chamar o assistente apropriado.   Os atalhos de exibição incluem os nomes das perspectivas que devem aparecer no menu Perspectiva->Mostrar Exibição da perspectiva, quando ela está ativa.  Os atalhos da perspectiva incluem os nomes das perspectivas que devem aparecer no menu Perspectiva->Abrir quando a perspectiva está ativa.