Frage

Ich mag den "Ctrl-Shift-T" Dialog öffnen programmatisch in Eclipse-Plug-in (eine Art finden). Ich versuchte, die FilteredItemsSelectionDialog und ResourceListSelectionDialog, aber wie ich die Typen alle im Arbeitsbereich erhalten?

Danke, Ido.

War es hilfreich?

Lösung

Blick auf org.eclipse.jdt.internal.ui.actions.OpenTypeAction , wie Eclipse seine behandelt. 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 empfehlen, diese Art verwenden. „Entmutigt“ ist eine Warnung, kein Fehler, und in der Praxis von Eclipse würde eine OpenTypeSelectionDialog 2 einzuführen, anstatt die Unterschriften des aktuellen zu ändern. Die Eclipse-Plattform und die wichtigsten Produkte versuchen Kompatibilität so viel wie möglich zu halten, um Innovationen zu fördern (siehe Politik im Wiki). Im Allgemeinen mit entmutigtem Zugang macht es Sinn für Sie, indem Sie einen Helfer, den Rest Ihres Codes von API-Änderungen zu schützen. Dies bedeutet, dass Sie einen einzigen Punkt haben Sie, wenn die referenzierten Typ Änderungen würde sich ändern müssen.

Die Alternative ist für Sie den Dialog und ihre Eltern selbst, sondern die Eltern, FilteredTypesSelectionDialog zu implementieren, verfügt über mehr als 20 interne Referenzen, so wäre das Problem noch schlimmer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top