2010-03-07 4 views
6

Je souhaite ajouter un nouveau filtre à l'Explorateur de projet pour masquer à l'utilisateur certains projets créés automatiquement dans une application RCP Eclipse.Ajout d'un filtre à l'Explorateur de projet dans Eclipse

Jusqu'à présent, j'ai trouvé deux points d'extension:

org.eclipse.ui.ide.resourceFilters

me permet de filtrer la navigation

org.eclipse.jdt.ui .javaElementFilters

me permet de filtrer les visualiseurs Java

Je m'attends à ce qu'il y ait un point d'extension similaire pour l'Explorateur de projet, mais jusqu'ici je n'ai pas eu de chance de l'obtenir.

J'ai essayé d'importer org.eclipse.ui.navigator et org.eclipse.ui.navigator.resources mais je ne pouvais pas trouver un point d'extension à la recherche intéressante soit

J'utilise Eclipse 3.3.2 comme base pour cette application RCP

Merci!

Répondre

7

J'ai trouvé le bon ensemble de points d'extension. C'est plus une douleur que je m'attendais, car l'Explorateur de projet est une spécialisation du navigateur commun.

Ceci est un procédé en deux étapes:

  • étendent org.eclipse.ui.navigator.navigatorContent

    • ajouter un filtre commun à ce point d'extension.
    • Définir un nom et identifiant au filtre
    • Mettre en œuvre le spectateur de filtre avec la logique souhaitée
  • étendent org.eclipse.ui.navigator.viewer

    • Ajouter un viewerContentBinding
    • Définir l'ID de contenu sur org.eclipse.ui.navigator.ProjectExplorer
    • Ajouter deux includes
    • Dans le premier comprennent ajouter un boniment qui correspond à l'identifiant du filtre commun
    • Dans le second inclure ajouter l'identifiant org.eclipse.ui.navigator.resourceContent

Et puis, le filtre est associée au projet Explorateur

+0

@Mario: très intéressant; merci pour la réponse, bien que vous pourriez en détailler un peu plus;). +1 – VonC

2

Filtres ... pour le Projet Explorer view?

Il y a quelques bugs de longue date sur ce point:

Cela peut requiere un certain développement spécifique (comme le suggère this thread)

vous pourriez probablement accomplir cela par crea ting une classe qui étend et en associant votre classe avec l'explorateur de projet.

(Note: FilterViewer étaient broken in Eclipse3.3.1, certains utilisent 3.3.2 ici est une bonne idée)

+0

Ce commentaire a donné un indice. En effet, cela se fait en étendant ViewFilter. La partie délicate consistait à obtenir la bonne combinaison de points d'extension pour l'enregistrer dans l'explorateur de projet. –

8

commune Il vous allez:

<extension point="org.eclipse.ui.navigator.navigatorContent"> 
    <commonFilter 
     description="Hides *.pj resources" 
     id="com.xyz.commonFilter.hidePj" 
     name="*.pj resources" 
     activeByDefault="true"> 
     <filterExpression> 
      <and> 
       <adapt type="org.eclipse.core.resources.IResource"> 
        <test property="org.eclipse.core.resources.name" value="*.pj"/> 
       </adapt> 
      </and> 
     </filterExpression> 
    </commonFilter> 
</extension> 
<extension point="org.eclipse.ui.navigator.viewer"> 
    <viewerContentBinding 
      viewerId="org.eclipse.ui.navigator.ProjectExplorer"> 
      <includes> 
      <contentExtension pattern="com.xyz.commonFilter.hidePj"/> 
      </includes> 
    </viewerContentBinding> 
</extension> 

ne pas oublier d'importer org.ec lipse.ui.navigator package

+0

Travaillé parfaitement pour moi et sympa que vous n'avez pas besoin de créer une seule classe. Merci! –

Questions connexes