L'élément viewer définit la configuration d'un afficheur commun. L'extension peut fournir un ID de menu déroulant personnalisé, remplacer si l'afficheur fournit un lien avec le support d'éditeur, fournit une boîte de dialogue de filtre et/ou une boîte de dialogue "Personnalisations disponibles". Par ailleurs, les éléments de configuration imbriqués exercent un contrôle complet sur la structure et le comportement du menu contextuel.
viewerContentBinding associe des extensions de contenu définies (au moyen du point d'extension navigatorContent) aux afficheurs (définis par le point d'extension
org.eclipse.ui.views). Les extensions de contenu associées à un afficheur sont décrites comme visibles. Un service de contenu (org.eclipse.ui.navigator.INavigatorContentService
) ne renverra pas d'extensions non visibles pour l'ID afficheur.
<!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>
Fournit une configuration de base pour établir les caractéristiques d'un afficheur. Les clients doivent également définir une extension org.eclipse.ui.views pour créer la partie de vue.
<!ELEMENT viewerContentBinding (includes? , excludes?)>
<!ATTLIST viewerContentBinding
viewerId CDATA #REQUIRED>
Les clients doivent définir un ou plusieurs éléments viwerContentBinding pour décrire quelles extensions de contenu et filtres communs sont visibles pour l'afficheur. Une extension de contenu ou un filtre commun est visible si l'ID de l'extension de contenu ou le filtre commun correspond à une instruction includes sous un élément viewerContentBinding et n'est pas exclu par une instruction excludes. Si une extension de contenu ou un filtre commun n'est pas visible pour un afficheur, l'extension ne sera jamais interrogée pour du contenu par le service de contenu de cet afficheur ou affichée dans la boîte de dialogue Filtres disponibles.
Les clients peuvent définir un élément includes pour sélectionner les extensions qui sont visibles pour l'afficheur et en parallèle, un élément excludes pour les extensions qui ne doivent pas être visibles pour l'afficheur. Les clients peuvent ensuite définir les extensions qui doivent être interrogées de manière explicite pour les éléments racine (via ITreeContentProvider.getElements()) par l'attribut "isRoot". Si un ou plusieurs éléments contentExtension ont "isRoot" défini sur true dans l'instruction includes, seules ces extensions seront interrogées pour les éléments racine. L'attribut "isRoot" n'a pas d'effet pour les exclusions.
Un afficheur peut avoir plusieurs viewerContentBindings définis et leurs instructions includes/excludes seront agrégées pour produire le comportement final.
org.eclipse.ui.navigator.CommonNavigator
.<!ELEMENT viewerActionBinding (includes? , excludes?)>
<!ATTLIST viewerActionBinding
viewerId CDATA #REQUIRED>
Les clients doivent définir quel fournisseur d'action est visible pour leur afficheur. Les clients peuvent définir un élément includes pour sélectionner les extensions qui sont visibles pour l'afficheur et en parallèle, un élément excludes pour les extensions qui ne doivent pas l'être.
Un afficheur peut avoir plusieurs viewerActionBinding définis et leurs instructions includes/excludes seront agrégées pour produire le comportement final.
Pour les définitions actionProvider qui ne sont pas imbriquées sous une définition navigatorContent, les clients peuvent indiquer un ID personnalisé. Si les clients n'indiquent pas d'ID, celui-ci prend la valeur "org.eclipse.ui.navigator.actionProvider.X" par défaut. Pour les clients qui souhaitent sélectionner des éléments actionProvider sans ID spécifique, les clients doivent définir un élément viewerActionBinding pour l'ID par défaut. Reportez-vous à la section des exemples pour obtenir plus d'informations sur cette opération.
org.eclipse.ui.navigator.CommonNavigator
.<!ELEMENT includes ((contentExtension+) | (actionExtension+))>
Définir un ensemble de masques devant être inclus lors de la recherche des extensions de contenu de l'afficheur qui correspond à l'attribut "viewerId". Lorsque les instructions includes et excludes s'entrecroisent, l'instruction includes a la priorité.
<!ELEMENT excludes ((contentExtension+) | (actionExtension+))>
Définir un ensemble de masques devant être exclus lors de la recherche des extensions de contenu de l'afficheur qui correspond à l'attribut "viewerId". Lorsque les instructions includes et excludes s'entrecroisent, l'instruction includes aura la priorité.
<!ELEMENT contentExtension EMPTY>
<!ATTLIST contentExtension
pattern CDATA #REQUIRED
isRoot (true | false) >
Indique l'ID (ou le masque correspondant) d'une extension de contenu devant être interrogée par ITreeContentProvider.getElements()
ou ITreeContentProvider.getChildren()
pour la racine de l'afficheur ou un filtre commun qui doit être disponible pour l'utilisateur dans la boîte de dialogue "Filtres disponibles".
Les clients peuvent indiquer "isRoot" pour sélectionner des extensions racine pour remplacer les extensions qui seraient en temps normal activées pour l'élément d'entrée de l'afficheur (selon l'expression triggerPoints correspondante pour l'élément d'entrée de l'afficheur).
Pour plus d'informations, reportez-vous à la documentation relative à viewerContentBinding.
Les
modèles sont des expressions standard qui correspondent à des
identificateurs uniques. Consultez la documentation de la plateforme Java(tm)
sur java.util.regex.Pattern
pour en savoir plus.
<!ELEMENT actionExtension EMPTY>
<!ATTLIST actionExtension
pattern CDATA #REQUIRED>
Indique l'extension d'action devant ajouter des éléments au menu contextuel et aux barres d'actions.
Pour plus d'informations, reportez-vous à la documentation relative à viewerActionBinding.
Les
modèles sont des expressions standard qui correspondent à des
identificateurs uniques. Consultez la documentation de la plateforme Java(tm)
sur java.util.regex.Pattern
pour en savoir plus.
<!ELEMENT popupMenu (insertionPoint*)>
<!ATTLIST popupMenu
id CDATA #IMPLIED
allowsPlatformContributions (true | false) >
Un élément popupMenu peut uniquement être défini si l'attribut "popupMenuId" de l'élément viewer n'est pas indiqué.
L'élément popupMenu permet une personnalisation avancée du menu contextuel associé à l'afficheur. Pour que les options soient correctement appliquées, une instance de l'afficheur doit déléguer à un org.eclipse.ui.navigator.NavigatorActionService
, qui se comporte comme un org.eclipse.ui.ActionGroup
normal. Pour plus d'informations sur l'utilisation de cette fonctionnalité, reportez-vous à la documentation relative à cette classe d'API. Pour les clients qui utilisent une instance de org.eclipse.ui.navigator.CommonNavigator
, aucune autre intervention n'est nécessaire.
Un élément popupMenu déclare un ou plusieurs éléments insertionPoints qui seront utilisés par les contributeurs pour organiser leurs contributions sous la forme d'une liste plus cohérente et plus conviviale.
Si les clients indiquent uniquement l'attribut "popupMenuId" de l'élément viewer, l'ensemble d'éléments insertionPoints utilisé par le menu contextuel utilisera par défaut la liste suivante dans l'ordre indiqué :
"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
(voir org.eclipse.ui.navigator.navigatorContent/actionProvider et org.eclipse.ui.navigator.navigatorContent/navigatorContent/actionProvider).<!ELEMENT insertionPoint EMPTY>
<!ATTLIST insertionPoint
name CDATA #REQUIRED
separator (true | false) >
Définit un point d'insertion pour le menu contextuel. Inclut le nom du point auquel les clients doivent se référer et si le point d'insertion doit être affiché comme séparateur ou comme marqueur de groupe.
org.eclipse.ui.navigator.CommonActionProvider
ou des contributions déclaratives par l'intermédiaire du point d'extension org.eclipse.ui.popupMenus.<!ELEMENT options (property+)>
Fournit des options à l'afficheur afin de personnaliser la manière dont il s'affiche pour l'utilisateur. Pour plus d'informations sur les propriétés disponibles, reportez-vous à org.eclipse.ui.navigator.INavigatorViewerDescriptor
.
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED>
Fournissez une paire name=value. La valeur sera fournie en l'état à l'afficheur (les chaînes vides seront donc propagées comme des chaînes vides). Pour plus d'informations sur les propriétés disponibles et pour obtenir une description, reportez-vous à org.eclipse.ui.navigator.INavigatorViewerDescriptor
.
<!ELEMENT dragAssistant EMPTY>
<!ATTLIST dragAssistant
class CDATA #REQUIRED
viewerId CDATA #REQUIRED>
Un assistant glisser-déposer fournit un point d'ancrage léger pour fournir des types de transfert supplémentaires et la logique permettant de définir les données à déplacer. Cet élément n'est pas obligatoire étant donné que le point org.eclipse.ui.navigator.CommonViewer fournit un type org.eclipse.ui.jface.util.LocalSelectionTransfer.
Les clients doivent uniquement définir cette extension dans des plug-ins léger dont les arborescences sont peu développées. Les assistants de glisser-déposer doivent être chargés lorsque l'afficheur est créé, ce qui forcera le chargement des plug-ins affectés.
org.eclipse.ui.navigator.CommonDragAdapterAssistant
.L'exemple suivant illustre la configuration d'un ID de menu contextuel pour un afficheur.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer id=
"org.eclipse.testViewer"
popupMenuId=
"org.eclipse.testViewer#PopupMenu"
/>
</extension>
Etant donné que l'élément enfant popupMenu de l'afficheur n'est pas utilisé dans l'exemple précédent, l'ensemble par défaut insertionPoints sera utilisé. Cet ensemble est défini comme suit. Reportez-vous à la documentation relative à l'élément popupMenu pour plus d'informations.
"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"
L'exemple suivant illustre une configuration d'afficheur qui déclare des éléments popupMenu/insertionPoints personnalisés, mais limite les contributions d'objet et d'afficheur avec l'attribut "allowsPlatformContributions". Les clients peuvent uniquement contribuer au menu défini via les éléments org.eclipse.ui.navigator.CommonActionProvider
déclarés pour l'afficheur (de niveau supérieur ou associé à des extensions de contenu).
Notez que l'attribut "popupMenuId" n'est pas spécifié avec l'élément popupMenu. Seule l'une des deux configurations est correcte.
<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>
L'exemple suivant déclare qu'une extension de contenu (ID : "org.eclipse.ui.navigator.resourceContent") est associée à un afficheur correspondant à l'ID "org.eclipse.ui.navigator.resourceContent". (Dans cet exemple, l'extension de contenu et les ID d'afficheur correspondent, mais cela n'est pas obligatoire.) Par ailleurs, toute extension de contenu dont l'ID commence par "org.eclipse.ui.navigator.tests." sera ignorée.
<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>
L'exemple suivant déclare un attribut viewerActionBinding pour tous les éléments actionProvider (non imbriqués sous une extension navigatorContent) correspondant à l'expression régulière "org.acme.actions.*" et non "org.acme.actions.tests.*". Cette expression rendra tous les éléments actionProvider dont l'ID commence par "org.acme.actions." mais non par "org.acme.actions.tests." visibles pour l'afficheur ayant l'ID "org.acme.viewer". Il va sans dire que l'attribut viewerActionBindings s'applique uniquement aux éléments actionProvider qui ne sont pas imbriqués sous un élément navigatorContent. La visibilité des éléments actionProvider imbriqués est contrôlée par viewerContentBindings pour l'élément englobant navigatorContent.
<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>
L'exemple suivant rend tous les éléments actionProvider sans attribut "id" visibles pour l'afficheur "org.acme.viewer". Les éléments actionProvider sans attribut "id" ont un ID par défaut "org.eclipse.ui.navigator.actionProvider.X". Il va sans dire que l'attribut viewerActionBindings s'applique uniquement aux éléments actionProvider qui ne sont pas imbriqués sous un élément navigatorContent. La visibilité des éléments actionProvider est contrôlée par les éléments viewerContentBinding de l'élément englobant navigatorContent.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerActionBinding viewerId=
"org.acme.viewer"
>
<includes>
<actionExtension pattern=
"org.eclipse.ui.navigator.actionProvider.*"
/>
</includes>
</viewerActionBinding>
</extension>
L'exemple suivant illustre les propriétés standard disponibles pour l'afficheur.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer popupMenuId=
"org.eclipse.ui.tests.navigator.TestView#PopupMenu"
viewerId=
"org.eclipse.ui.tests.navigator.TestView"
>
<options>
<!-- Masque l'onglet
"Extensions disponibles"
dans la boîte de dialogue
"Personnalisations disponibles"
(disponible à partir de l'action
"Filtres"
-->
<property name=
"org.eclipse.ui.navigator.hideAvailableExtensionsTab"
value=
"true"
/>
<!-- Masque la boîte de dialogue
"Personnalisations disponibles"
totalement. Cette propriété masque également les filtres et les extensions de contenu disponibles. -->
<property name=
"org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"
value=
"true"
/>
<!-- Masque l'action
"Lier à l'éditeur"
de la barre d'outils de l'afficheur -->
<property name=
"org.eclipse.ui.navigator.hideLinkWithEditorAction"
value=
"true"
/>
<!-- Masque l'action
"Tout réduire"
de la barre d'outils de l'afficheur -->
<property name=
"org.eclipse.ui.navigator.hideCollapseAllAction"
value=
"true"
/>
</options>
</viewer>
</extension>
Copyright (c) 2002, 2005 IBM Corporation and others.
All rights reserved. Ce programme et les produits associés sont
distribués sous licence v1.0 et disponibles à
l'adresse suivante :
http://www.eclipse.org/legal/epl-v10.html