プログラムでEclipseビューを更新するにはどうすればよいですか? (これはRSEに固有である必要はないと思われますか?)EclipseビューまたはRSEファイル・サブシステムをプログラムでリフレッシュする方法はありますか。
背景:私はRemote System Explorer (RSE)をEclipseに使用していますが、リモートホスト上に新しいファイルを作成するSSH経由でリモートコマンドを実行することによっていくつかのことを行います。私は、リモートシステムビューのSFTPファイルリストが、新しく作成されたファイルを表示するように自動的に更新されないことに気付きました。
私はそうのように、関連するビューを取得するために、これまで管理している:
IWorkbench workbench = PlatformUI.getWorkbench();
IViewRegistry viewReg = workbench.getViewRegistry();
IViewDescriptor[] views = viewReg.getViews();
for (IViewDescriptor view : views) {
String viewID = view.getId();
System.out.println("View ID: " + viewID);
if (viewID.equals("org.eclipse.rse.ui.view.systemView")) {
// Do something with the view here
}
}
...おそらくRSE特定の何かをするために、私はRemoteFileSubSystemをつかん試してみました:
IRemoteFileSubSystem rfss = RemoteFileUtility.getFileSubSystem(HPCUtils.getApplication().getHPCHost());
。 ..しかし、ViewDescriptorオブジェクトやFileSubSystemでは、ビューやファイルサブシステムをリフレッシュする方法が見つかりませんでした。私は何を逃したのですか?
上記の「rfss」オブジェクトを「yoursubsystem」パラメータとして送信し、ISystemResourceChangeEvents.EVENT_REFRESHをISystemResourceChangeEvents.EVENT_REFRESH_SELECTED_PARENTに切り替えた場合、これはトリックですこのイベント(EVENT_REFRESH_SELECTED_PARENT)は非難されています:/ ...それを回避する方法のヒント? –
[javadocの](http://help.eclipse.org/indigo/topic/org.eclipse.rse.doc.isv /reference/api/org/eclipse/rse/core/events/ISystemResourceChangeEvents.html#EVENT_REFRESH_SELECTED_PARENT)は、「自分で選択を取得し、EVENT_REFRESHまたはEVENT_REFRESH_REMOTEを実行する」ことを示します。コードでEVENT_REFRESHイベントが問題なく使用されます。 –
問題は、現在のディレクトリにあるファイルが通常選択されているのに対し、新しいファイルを表示するには親フォルダを更新する必要があるということです。EVENT_REFRESH_SELECTED_PARENTを使用していたのはconv私が今必要としている現在選択されているファイルをつかむ必要はないので、親フォルダを取得するには... –