O elemento viewer define a configuração para um visualizador comum. A extensão pode fornecer um id de menu pop-up personalizado, substituir se o visualizador fornece link com suporte de editor, fornece um diálogo de filtro e/ou um diálogo de "Customizações Disponíveis". Além disso, elementos de configuração aninhados recebem controle total sobre a estrutura e o comportamento do menu de contexto pop-up.
viewerContentBinding liga extensões de conteúdo definidas (por meio do ponto
de extensão navigatorContent) aos visualizadores (definidos por meio do ponto de
extensão org.eclipse.ui.views). Qualquer extensão de conteúdo ligada a um
visualizador é descrita como visível. Um serviço de conteúdo
(org.eclipse.ui.navigator.INavigatorContentService
) não retornará nenhuma
extensão que não seja visível para seu id de visualizador.
<!ELEMENT extension (viewer* , viewerContentBinding* , viewerActionBinding* , dragAssistant)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT viewer (popupMenu? , options?)>
<!ATTLIST viewer
viewerId CDATA #REQUIRED
popupMenuId CDATA #IMPLIED>
Fornece a configuração básica para estabelecer as características de um visualizador. Os clientes também devem definir uma extensão org.eclipse.ui.views para criar a parte da visualização.
<!ELEMENT viewerContentBinding (includes? , excludes?)>
<!ATTLIST viewerContentBinding
viewerId CDATA #REQUIRED>
Os clientes devem definir um ou mais elementos viwerContentBinding para descrever
quais extensões de conteúdo e filtros comuns são visíveis ao visualizador. Uma
extensão de conteúdo ou um filtro comum será visível se o id da extensão de
conteúdo ou do filtro comum corresponder a uma instrução includes em um
viewerContentBinding e não for excluída por uma instrução excludes. Se uma
extensão de conteúdo ou um filtro comum não estiver visível a um visualizador,
nunca será solicitado conteúdo da extensão por um serviço de conteúdo desse visualizador
ou será apresentado ao usuário no diálogo de filtros disponíveis.
Os clientes podem definir um elemento includes para selecionar quais extensões são
visíveis ao visualizador e de forma semelhante um elemento excludes
para extensões que não devem ser tornadas visíveis ao visualizador. Os
clientes podem ainda definir as extensões que devem ser consultadas explicitamente
para elementos raiz (por meio de ITreeContentProvider.getElements()) pelo atributo
"isRoot". Se um ou mais elementos contentExtension tiver "isRoot" definido como
true na instrução includes, somente essas extensões serão consultadas para
elementos raiz. O atributo "isRoot" não tem efeito para exclusões.
Um visualizador pode ter vários viewerContentBindings definidos, e suas instruções
includes/excludes serão agregadas para produzir o comportamento final.
org.eclipse.ui.navigator.CommonNavigator
.<!ELEMENT viewerActionBinding (includes? , excludes?)>
<!ATTLIST viewerActionBinding
viewerId CDATA #REQUIRED>
Os clientes devem definir quais provedores de ações são visíveis aos seus
visualizadores. Os clientes podem definir um elemento includes para selecionar
quais extensões são visíveis ao visualizador e de forma semelhante um elemento
excludes para extensões que não devem ser tornadas visíveis ao visualizador.
Um visualizador pode ter vários viewerActionBindings definidos, e suas instruções
includes/excludes serão agregadas para produzir o comportamento final.
Para definições actionProvider não aninhadas em uma definição
navigatorContent, os clientes podem especificar um id personalizado. Se os
clientes não especificarem um id, o id padrão será
"org.eclipse.ui.navigator.actionProvider.X". Para clientes que desejam selecionar
actionProviders sem id específico, os clientes devem definir um
viewerActionBinding para o id padrão. Consulte a seção de exemplos de como isso é
feito.
org.eclipse.ui.navigator.CommonNavigator
.<!ELEMENT includes ((contentExtension+) | (actionExtension+))>
Defina um conjunto de padrões que deverá ser incluído ao procurar extensões de conteúdo para o visualizador que corresponde ao atributo "viewerId". Quando as instruções de inclusão e exclusão se cruzarem, a de inclusão terá precedência.
<!ELEMENT excludes ((contentExtension+) | (actionExtension+))>
Defina um conjunto de padrões que deverá ser excluído ao procurar extensões de conteúdo para o visualizador que corresponde ao atributo "viewerId". Quando as instruções de inclusão e exclusão se cruzarem, a de inclusão terá precedência.
<!ELEMENT contentExtension EMPTY>
<!ATTLIST contentExtension
pattern CDATA #REQUIRED
isRoot (true | false) >
Indica o id (ou o padrão de correspondência) de uma extensão de conteúdo que deve ser
consultado pelo ITreeContentProvider.getElements()
ou
ITreeContentProvider.getChildren()
para a raiz do visualizador ou um filtro
comum que deverá estar disponível ao usuário no diálogo "Filtros Disponíveis".
Os clientes podem especificar "isRoot" para selecionar extensões raiz específicas para
substituir as extensões que do contrário seriam ativadas para o elemento de entrada do
visualizador (com base na expressão triggerPoints de correspondência para o
elemento de entrada do visualizador).
Consulte a documentação do viewerContentBinding para obter mais informações.
Os padrões são expressões comuns que
correspondem a identificadores exclusivos. Consulte a documentação da Plataforma Java(tm)
para java.util.regex.Pattern
para obter detalhes adicionais.
<!ELEMENT actionExtension EMPTY>
<!ATTLIST actionExtension
pattern CDATA #REQUIRED>
Indica a extensão de ação que deverá ter oportunidade de contribuir com o menu de
contexto e as barras de ações.
Consulte a documentação do viewerActionBinding para obter mais informações.
Os padrões são expressões comuns que
correspondem a identificadores exclusivos. Consulte a documentação da Plataforma Java(tm)
para java.util.regex.Pattern
para obter detalhes adicionais.
<!ELEMENT popupMenu (insertionPoint*)>
<!ATTLIST popupMenu
id CDATA #IMPLIED
allowsPlatformContributions (true | false) >
Um elemento popupMenu só poderá ser definido se o atributo "popupMenuId" do elemento
viewer não for especificado.
O elemento popupMenu permite customização adicional do menu de contexto
associado ao visualizador. Para que as opções sejam aplicadas corretamente, uma instância
do visualizador deverá ser delegada a um
org.eclipse.ui.navigator.NavigatorActionService
, que se comporta como um
org.eclipse.ui.ActionGroup
normal. Consulte a documentação dessa classe de
API para obter mais informações sobre como explorar essa funcionalidade. Para clientes
que utilizam uma instância de org.eclipse.ui.navigator.CommonNavigator
, não
será necessário trabalho extra.
Um popupMenu declara um ou mais insertionPoints que serão utilizados pelos
contribuidores para organizar suas contribuições em uma lista consistente, significativa,
mais fácil e simples.
Se os clientes especificarem apenas o atributo "popupMenuId" do elemento viewer, o
conjunto de insertionPoints utilizado pelo menu de contexto assumirá como padrão a
seguinte lista na ordem determinada:
"group.new" separator="true" "group.goto" "group.open" separator="true" "group.openWith" "group.show" separator="true" "group.edit" separator="true" "group.reorganize" "group.port" "group.generate" separator="true" "group.search" separator="true" "group.build" separator="true" "additions" separator="true" "group.properties" separator="true"
org.eclipse.ui.navigator.ICommonMenuConstants
.
org.eclipse.ui.navigator.CommonActionProviders
(consulte
org.eclipse.ui.navigator.navigatorContent/actionProvider e
org.eclipse.ui.navigator.navigatorContent/navigatorContent/actionProvider).<!ELEMENT insertionPoint EMPTY>
<!ATTLIST insertionPoint
name CDATA #REQUIRED
separator (true | false) >
Define um ponto de inserção para o menu de contexto. Inclui o nome do ponto para clientes aos quais se referir e se o ponto de inserção deve ser renderizado como um separador ou como um marcador de grupo.
org.eclipse.ui.navigator.CommonActionProvider
; ou contribuições
declarativas, por meio do ponto de extensão org.eclipse.ui.popupMenus.<!ELEMENT options (property+)>
Forneça opções ao visualizador para customizar o modo como ele é apresentado ao
usuário. Consulte org.eclipse.ui.navigator.INavigatorViewerDescriptor
para
obter as propriedades disponíveis.
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED>
Forneça um par de nome=valor. O valor será fornecido ao visualizador como está (assim,
cadeias vazias serão propagadas como cadeias vazias). Consulte
org.eclipse.ui.navigator.INavigatorViewerDescriptor
para obter as
propriedades disponíveis e suas descrições.
<!ELEMENT dragAssistant EMPTY>
<!ATTLIST dragAssistant
class CDATA #REQUIRED
viewerId CDATA #REQUIRED>
Um assistente para Arrastar e Soltar fornece gancho reduzido para oferecer tipos de
transferência extras e lógica para definir os dados a serem arrastados. Esse elemento
não é necessário, pois o org.eclipse.ui.navigator.CommonViewer básico
fornece um tipo org.eclipse.jface.util.LocalSelectionTransfer.
Os clientes só deverão definir essa extensão em plugins reduzidos, com árvores de
pouca dependência. Os assistentes para arrastar devem ser carregados na frente quando o
visualizador é criado, o que forçará o carregamento dos plugins afetados.
org.eclipse.ui.navigator.CommonDragAdapterAssistant
.O exemplo a seguir configura o id do menu pop-up para um visualizador.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer id=
"org.eclipse.testViewer"
popupMenuId=
"org.eclipse.testViewer#PopupMenu"
/>
</extension>
Visto que o elemento filho popupMenu do visualizador não é utilizado no exemplo anterior, o conjunto padrão de insertionPoints será utilizado. Esse conjunto é definido como se segue. Consulte a documentação do elemento popupMenu para obter mais informações.
"group.new" separator="true" "group.goto" "group.open" separator="true" "group.openWith" "group.show" separator="true" "group.edit" separator="true" "group.reorganize" "group.port" "group.generate" separator="true" "group.search" separator="true" "group.build" separator="true" "additions" separator="true" "group.properties" separator="true"
O exemplo a seguir demonstra uma configuração de visualizador que declara
popupMenu/insertionPoints personalizados, mas restringe contribuições de objeto e
visualizador com o atributo "allowsPlatformContributions". Os clientes só podem
contribuir com o menu definido por meio do
org.eclipse.ui.navigator.CommonActionProvider
s declarado para o
visualizador (de nível superior ou associado a extensões de conteúdo).
Observe que o atributo "popupMenuId" não é especificado simultaneamente com o elemento popupMenu. Somente um ou outro, mas não ambos, é uma configuração válida.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer viewerId=
"org.eclipse.ui.navigator.resourceContent"
>
<popupMenu allowsPlatformContributions=
"false"
id=
"org.eclipse.ui.navigator.resourceContent#PopupMenu"
>
<insertionPoint name=
"group.new"
/>
<insertionPoint name=
"group.open"
separator=
"true"
/>
<insertionPoint name=
"group.openWith"
/>
<insertionPoint name=
"group.port"
separator=
"true"
/>
<insertionPoint name=
"additions"
separator=
"true"
/>
<insertionPoint name=
"group.properties"
separator=
"true"
/>
</popupMenu>
</viewer>
<viewerContentBinding viewerId=
"org.eclipse.ui.navigator.resourceContent"
>
<includes>
<contentExtension pattern=
"org.eclipse.ui.navigator.resourceContent"
/>
</includes>
</viewerContentBinding>
</extension>
O exemplo a seguir declara que uma extensão de conteúdo (id: "org.eclipse.ui.navigator.resourceContent") está ligada a um visualizador que corresponde ao id "org.eclipse.ui.navigator.resourceContent". (Nesse exemplo, os ids de extensão de conteúdo e do visualizador correspondem, mas isso não é exigido.) Além disso, toda extensão de conteúdo com um id que começa com "org.eclipse.ui.navigator.tests." será ignorada.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerContentBinding viewerId=
"org.eclipse.ui.navigator.resourceContent"
>
<includes>
<contentExtension pattern=
"org.eclipse.ui.navigator.resourceContent"
/>
</includes>
<excludes>
<contentExtension pattern=
"org.eclipse.ui.navigator.tests.*"
/>
</excludes>
</viewerContentBinding>
</extension>
O exemplo a seguir declara um viewerActionBinding para todos actionProviders (não aninhados em uma extensão navigatorContent) que correspondem à expressão comum "org.acme.actions.*", mas não à "org.acme.actions.tests.*". Essa expressão tornará qualquer actionProvider cujo id começa com "org.acme.actions." , mas não "org.acme.actions.tests.", visível ao visualizador com o id "org.acme.viewer". Certamente, o viewerActionBindings só se aplica aos elementos actionProvider que não estão aninhados em um elemento navigatorContent. A visibilidade de elementos actionProvider aninhados é controlada pelo viewerContentBindings para o elemento navigatorContent de fechamento.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerActionBinding viewerId=
"org.acme.viewer"
>
<includes>
<actionExtension pattern=
"org.acme.actions.*"
/>
</includes>
<excludes>
<actionExtension pattern=
"org.acme.actions.tests.*"
/>
</excludes>
</viewerActionBinding>
</extension>
O exemplo a seguir torna visível ao visualizador "org.acme.viewer" todo actionProvider sem o atributo "id". Os actionProviders sem o atributo "id" têm um id padrão de "org.eclipse.ui.navigator.actionProvider.X". Certamente, o viewerActionBindings só se aplica aos elementos actionProvider que não estão aninhados em um elemento navigatorContent. A visibilidade de elementos actionProvider aninhados é controlada pelo viewerContentBindings para o elemento navigatorContent de fechamento.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerActionBinding viewerId=
"org.acme.viewer"
>
<includes>
<actionExtension pattern=
"org.eclipse.ui.navigator.actionProvider.*"
/>
</includes>
</viewerActionBinding>
</extension>
O exemplo a seguir demonstra as propriedades padrão disponíveis ao visualizador.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer popupMenuId=
"org.eclipse.ui.tests.navigator.TestView#PopupMenu"
viewerId=
"org.eclipse.ui.tests.navigator.TestView"
>
<options>
<!-- Ocultar a guia
"Extensões Disponíveis"
no diálogo
"Customizações Disponíveis"
(disponível na ação
"Filtros"
-->
<property name=
"org.eclipse.ui.navigator.hideAvailableExtensionsTab"
value=
"true"
/>
<!-- Ocultar o diálogo
"Customizações Disponíveis"
completamente. Isso inclui ocultar os filtros e as extensões de conteúdo disponíveis. -->
<property name=
"org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"
value=
"true"
/>
<!-- Ocultar a ação
"Vincular ao Editor"
da barra de ferramentas do visualizador -->
<property name=
"org.eclipse.ui.navigator.hideLinkWithEditorAction"
value=
"true"
/>
<!-- Ocultar a ação
"Reduzir Tudo"
da barra de ferramentas do visualizador -->
<property name=
"org.eclipse.ui.navigator.hideCollapseAllAction"
value=
"true"
/>
</options>
</viewer>
</extension>
Direitos Autorais (c) 2002, 2005 IBM Corporation e outros.
Todos os direitos reservados. Este programa e os materiais fornecidos com ele são
disponibilizados sob os termos da Licença Pública do Eclipse v1.0 que acompanha
esta distribuição e está disponível em
http://www.eclipse.org/legal/epl-v10.html