2010-03-07 6 views
6

Ich möchte dem Projekt-Explorer einen neuen Filter hinzufügen, um einige Projekte, die automatisch in einer Eclipse RCP-Anwendung erstellt werden, vor dem Benutzer auszublenden.Hinzufügen eines Filters zum Projektexplorer in Eclipse

Bisher habe ich gefunden zwei Erweiterungspunkte:

org.eclipse.ui.ide.resourceFilters

Erlaubt mir Navigation

org.eclipse.jdt.ui zu filtern .javaElementFilters

Erlaubt mir die Java-Zuschauer zu filtern

Ich erwarte, dass es einen ähnlichen Erweiterungspunkt für den Projekt Explorer gibt, aber bisher hatte ich kein Glück, ihn zu bekommen.

Ich versuchte org.eclipse.ui.navigator und org.eclipse.ui.navigator.resources importieren, aber ich konnte keinen interessant aussehenden Erweiterungspunkt finde entweder

Ich bin mit Eclipse 3.3.2 als Basis für diese RCP-Anwendung

Vielen Dank!

Antwort

7

ich den richtigen Satz von Erweiterungspunkten gefunden. Es ist mehr ein Schmerz, den ich erwartet habe, weil der Projekt Explorer eine Spezialisierung des gemeinsamen Navigators ist.

Dies ist ein zweistufiger Prozess:

  • org.eclipse.ui.navigator.navigatorContent

    • einen gemeinsamen Filter zu diesem Erweiterungspunkt hinzufügen erstrecken.
    • Legen Sie einen Namen und ID an den Filter
    • den Filter Betrachter Implementieren mit der gewünschten Logik
  • org.eclipse.ui.navigator.viewer

    • hinzufügen viewerContentBinding
    • erweitern
    • Legen Sie die Inhalts-ID auf org.eclipse.ui.navigator.ProjectExplorer
    • Fügen Sie zwei enthält
    • Im ersten gehören ein Rüttler hinzufügen, die
    • In der zweiten sind fügen Sie die ID org.eclipse.ui.navigator.resourceContent

Und dann die ID des gemeinsamen Filter entspricht, wobei der Filter verbunden ist

mit dem gemeinsamen Projekt-Explorer
+0

@Mario: sehr interessant; Danke für die Antwort, obwohl Sie es ein wenig mehr beschreiben könnten;). +1 – VonC

2

Filter ... für das Projekt Explorer-Ansicht?

Es gibt einige lange bekannte Fehler auf, dass:

, dass einige spezifische Entwicklung requiere kann (wie vorgeschlagen in this thread)

könnten Sie wahrscheinlich dies durch crea erreichen Eine Klasse, die erweitert und Ihre Klasse mit dem Projekt-Explorer verbindet.

(Anmerkung: FilterViewer waren broken in Eclipse3.3.1, einige mit 3.3.2 hier ist eine gute Idee)

+0

Dieser Kommentar gab einen Hinweis. In der Tat wird dies durch Erweiterung von ViewFilter erreicht. Der schwierigste Teil war, die richtige Erweiterungspunkt-Kombination zu bekommen, um sie im Projekt-Explorer zu registrieren. –

8

Dort gehen Sie:

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

nicht vergessen org.ec zu importieren lipse.ui.navigator Paket

+0

Arbeitete perfekt für mich und nett, dass Sie keine einzige Klasse erstellen müssen. Vielen Dank! –

Verwandte Themen