2010-03-07 11 views
6

Quiero agregar un nuevo filtro al Explorador de proyectos, para ocultar al usuario algunos proyectos que se crean automáticamente en una aplicación Eclipse RCP.Agregar un filtro al Explorador de proyectos en Eclipse

Hasta ahora he encontrado dos puntos de extensión:

org.eclipse.ui.ide.resourceFilters

me permite filtrar la navegación

org.eclipse.jdt.ui .javaElementFilters

me permite filtrar los visores Java

Espero que exista un punto de extensión similar para el Explorador de proyectos, pero hasta ahora no he tenido suerte al obtenerlo.

he intentado importar org.eclipse.ui.navigator y org.eclipse.ui.navigator.resources pero no pude encontrar ningún punto de extensión mirando interesante ya sea

Estoy usando Eclipse 3.3.2 como base para esta aplicación RCP

Gracias!

Respuesta

7

me encontré con el conjunto adecuado de puntos de extensión. Es más de un dolor que esperaba, porque el Explorador de proyectos es una especialización del navegador común.

Este es un proceso de dos pasos:

  • extienden org.eclipse.ui.navigator.navigatorContent

    • Añadir un filtro común a este punto de extensión.
    • Establecer un nombre y una identificación al filtro
    • Implementar el visor de filtro con la lógica deseada
  • extienden org.eclipse.ui.navigator.viewer

    • Añadir un viewerContentBinding
    • Establezca el id de contenido en org.eclipse.ui.navigator.ProjectExplorer
    • Agregar dos incluye
    • En la primera se incluyen añadir un golpeteo que coincide con el ID del filtro común
    • En la segunda incluir añadir el org.eclipse.ui.navigator.resourceContent Identificación

Y luego, el filtro se asocia a la común Explorador de proyectos

+0

@Mario: muy interesante; gracias por la respuesta, aunque podría detallarlo un poco más;). +1 – VonC

2

Filtros ... para el proyecto ¿Vista del explorador?

Hay algunos errores de larga data en la que:

que pueden Requiere un poco de desarrollo específica (como se sugiere en this thread)

probablemente podría lograr esto por crea una clase que se extiende ViewFilter y asociar su clase con el explorador de proyectos.

(Nota: FilterViewer eran broken in Eclipse3.3.1, algunos usando 3.3.2 aquí es una buena idea)

+0

Este comentario dio una pista. De hecho, se hace extendiendo ViewFilter. La parte difícil fue obtener la combinación correcta de puntos de extensión para registrarla en el explorador del proyecto. –

8

ahí lo tienes:

<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> 

no se olvide de importar org.ec paquete lipse.ui.navigator

+0

Funcionó perfectamente para mí y es bueno que no necesites crear una sola clase. ¡Gracias! –

Cuestiones relacionadas