2009-08-02 14 views
2

Ich möchte das "Ctrl-Shift-T" -Dialogfeld (suchen Sie einen Typ) programmgesteuert im Eclipse-Plug-in öffnen. Ich habe die FilteredItemsSelectionDialog und ResourceListSelectionDialog versucht, aber wie bekomme ich alle Typen im Arbeitsbereich?Wie öffne ich den Find-Typ-Dialog programmatisch in Eclipse

Vielen Dank, Ido.

+0

Möchten Sie den Dialog tatsächlich öffnen oder alle Ergebnisse direkt abrufen? –

+0

Ich möchte den Dialog öffnen, lassen Sie den Benutzer einen Typ wählen, die er will, und nachdem er auswählen möchte ich das Ergebnis als Zeichenfolge mit vollständig qualifizierten Namen erhalten. Es scheint, dass der OpenTypeSelectionDialog den Job erledigt, aber es wird davon abgeraten. – Ido

Antwort

3

Betrachten Sie org.eclipse.jdt.internal.ui.actions.OpenTypeAction für wie es von Eclipse behandelt wird. Der wichtigste Teil ist dies:

SelectionDialog dialog= new OpenTypeSelectionDialog(parent, true, 
    PlatformUI.getWorkbench().getProgressService(), null, 
    IJavaSearchConstants.TYPE); 
dialog.setTitle(JavaUIMessages.OpenTypeAction_dialogTitle); 
dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage); 

int result= dialog.open(); 

Wo Eltern ist das Verbund Sie sich für den Dialog öffnen möchten. Typischerweise ist die aktive Werkbank Schale, erhalten durch:

Shell parent= JavaPlugin.getActiveWorkbenchShell(); 

OpenTypeSelectionDialog ist in einem internen Paket, so dass Sie eine „Discouraged Zugang“ Warnung erhalten. Solange Sie sich der Risiken bewusst sind, würde ich diesen Typ empfehlen. "Entmutigt" ist eine Warnung, kein Fehler, und in der Praxis würde Eclipse einen OpenTypeSelectionDialog einführen anstatt die Signaturen des aktuellen zu ändern. Die Eclipse-Plattform und die wichtigsten Produkte versuchen, die Kompatibilität so weit wie möglich zu erhalten, um Innovationen zu fördern (siehe policy im Wiki). Im Allgemeinen mit entmutigten Zugriff ist es sinnvoll für Sie, den Rest Ihres Codes von API-Änderungen mit Hilfe eines Helfers abzuschirmen. Dies bedeutet, dass Sie einen einzelnen Punkt haben, den Sie ändern müssen, wenn sich der referenzierte Typ ändert.

Die Alternative ist, dass Sie den Dialog und seine Eltern selbst implementieren, aber der Vater, FilteredTypesSelectionDialog, hat mehr als 20 interne Referenzen, so würde das Problem noch schlimmer machen.

+0

Es scheint, dass der OpenTypeSelectionDialog "entmutigten Zugriff" ist. Was bedeutet das? – Ido

+2

Sie erhalten eine entmutigte Zugriffswarnung, wenn Sie auf einen Typ in einem Paket verweisen, das nicht Teil der API ist. In der Regel sind dies * .internal-Pakete. "Entmutigter Zugriff" ist ein Hinweis darauf, dass Sie nach Möglichkeit eine API-Alternative suchen sollten. Beachten Sie, dass Sie in späteren Versionen von Eclipse anfällig für Änderungen sind. Weitere Informationen finden Sie unter http://help.eclipse.org/galileo/index.jsp –

+0

Hallo, Wenn ich es benutzt habe, habe ich eine Abhängigkeit zum jdt-Plugin hinzugefügt. Ich benutze Galileo für die Entwicklung. Wenn ich es auf Clients installierte, die Ganymed verwenden, funktionierte es nicht. Wie sollte ich es konfigurieren, um es zu unterstützen? – Ido

Verwandte Themen