2012-01-09 2 views
2

CompareEditor에 CompareEditorInput이 표시되어있어 텍스트 데이터를 비교합니다. CompareEditor 외부에서 변경 될 때 CompareEditorInput을 다시로드해야합니다.리로드 비교 편집기 입력

  1. 열기
  2. 에게이 CompareEditorInput <를 다시로드 편집기를 비교 열 (변경된 내용을 반환) (ISteramContentAccessor.getContents를) 편집기 (CompareUI.openCompareEditor (입력))
  3. 입력을 비교 변경 비교 - 구현 될 필요가 .
+0

편집기 부분에서'setInput (sameInput) '을 호출하면 어떻게됩니까? –

+0

@ MarttiKäärik,이 비교 편집기는 어떻게 찾을 수 있습니까? 나는 'CompareUI.openCompareEditor (input);'으로 열었고 그 인스턴스가 없다. –

+0

['IWorkbenchPage'] (http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/IWorkbenchPage.html)'.findEditor IEditorInput 입력)'. –

답변

3

당신은 CompareEditorsetInput(sameInput) 부르지 만, CompareEditor 이후 내부이며 EditorPart 다음 대안으로 IEditorPart.init(IEditorSite site, IEditorInput input)를 호출하는 것입니다에 setInput() 공개하지 않습니다 수 있습니다.

IWorkbenchWindow wnd = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
IEditorPart editor = wnd.getActivePage().findEditor(input); 
editor.init((IEditorSite) editor.getSite(), input); 
+0

당신은 남자예요. 3 주 동안 실패 했어.필자는 EditorPart 구현을 수정하여 setInput을 public으로 만들고 rejar하려고했습니다. –

-1

새로운 java io 패키지 java.nio.file 패키지는 Watch Service API라고하는 파일 변경 알림 API를 제공합니다. 이것을 사용하여 디스크의 파일을 모니터하고 변경 사항을 추적 할 수 있습니다. 추가 확인을 위해 reference

WatchService API를 사용하는 별도의 스레드를 만들고 백그라운드에서 파일을 모니터링하고 디스크의 변경 사항을 발견하면 사용자에게 알립니다.

+0

불행히도 그것이 옳지 않다. 실제로 파일은 변경되지 않습니다. 파일 내용에서로드 된 파일이 변경되었습니다. –

+0

당신은 파일 내용이 비교 편집기 밖에서 변경되었다고 말하고 싶습니까? –

+0

비교 편집기와 텍스트 패드를 사용하여 동일한 파일을 열고 텍스트 패드를 사용하여 변경하고 변경 사항을 저장하면 비교 편집기가 해당 파일 내용이 변경된 것을 추적 할 수 있어야합니다? 내가 제대로하고 있니? –