Eclipseでタイプ検索ダイアログをプログラムで開く方法
-
10-07-2019 - |
質問
" Ctrl-Shift-T"を開きたいEclipseプラグインでプログラムでダイアログ(タイプを検索)します。 FilteredItemsSelectionDialogとResourceListSelectionDialogを試しましたが、ワークスペースのすべてのタイプを取得するにはどうすればよいですか?
ありがとう、 イド。
解決
Eclipseでの処理方法については、 org.eclipse.jdt.internal.ui.actions.OpenTypeAction をご覧ください。重要な部分はこれです:
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();
親は、ダイアログを開くコンポジットです。通常、次の方法で取得したアクティブなワークベンチシェル:
Shell parent= JavaPlugin.getActiveWorkbenchShell();
OpenTypeSelectionDialogは内部パッケージに含まれているため、「Discouraged access」を取得できます。警告。リスクを認識している限り、このタイプの使用をお勧めします。 「ディスコウレージド」エラーではなく警告であり、実際にはEclipseは現在の署名を変更するのではなくOpenTypeSelectionDialog 2 を導入します。 Eclipseプラットフォームと主要製品は、可能な限り互換性を維持して革新を促進しようとします(ポリシー)。 一般に、アクセスが禁止されている場合、ヘルパーを使用してAPIの変更からコードの残りの部分を保護することは理にかなっています。これは、参照される型が変更された場合に変更する必要がある単一のポイントがあることを意味します。
別の方法は、ダイアログとその親を自分で実装することですが、親のFilteredTypesSelectionDialogには20を超える内部参照があるため、問題が悪化します。