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 Janela->Mostrar Exibição. Os conjuntos de ações podem ser ocultados ou exibidos utilizando o menu Janela->Personalizar Perspectiva.... Esses recursos ajudam o usuário a organizar o workbench.
As Perspectivas fornecem uma camada adicional de organização em uma janela do workbench. Os usuários podem alternar entre as perspectivas conforme se movem pelas tarefas. Uma perspectiva define uma coleção de exibições, um layout das exibições e os conjuntos de ações visíveis que devem ser utilizados quando o usuário abre a perspectiva pela primeira vez.
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 name="%Perspective.resourcePerspective" icon="icons/full/cview16/resource_persp.gif" class="org.eclipse.ui.internal.ResourcePerspective" id="org.eclipse.ui.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 deve estar acontecendo 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.
Um dos principais jobs 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 em relação à (top, bottom, left, right) outra parte. Os marcadores (espaço vazio) também podem ser incluídos para itens não exibidos inicialmente.
Para organizar as exibições relacionadas e reduzir a confusão, você pode utilizar IFolderLayout para agrupar as exibições nas pastas separadas por 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 também permite definir as ações e atalhos disponíveis em uma perspectiva.