Eclipse 뷰를 프로그래밍 방식으로 업데이트하려면 어떻게해야합니까? (이것이 RSE에만 한정 될 필요는 없을 것이라고 생각합니다.)Eclipse 뷰 또는 RSE 파일 하위 시스템을 프로그래밍 방식으로 새로 고치는 방법은 무엇입니까?
배경 : 나는 이클립스에 Remote System Explorer (RSE)을 사용하고, 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 모두에서 뷰 또는 파일 하위 시스템을 새로 고치는 방법을 찾지 못했습니다. 나는 무엇을 놓쳤는가?
"rfs"객체를 "yoursubsystem"매개 변수로 보내고 ISystemResourceChangeEvents.EVENT_REFRESH를 ISystemResourceChangeEvents.EVENT_REFRESH_SELECTED_PARENT로 전환하면 트릭이 실행됩니다 (단지 약간의 문제 만 있습니다. 이 이벤트 (EVENT_REFRESH_SELECTED_PARENT)는 가치가 떨어집니다 :/... 주위를 둘러 보는 방법에 대한 힌트가 있습니까? –
[javadoc 's] (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 지금 내가해야 할 현재 선택된 파일을 가져올 필요가 없기 때문에, 부모 폴더를 얻으려면 ... –