重新加载比较编辑器输入

时间:2012-01-09 09:21:21

标签: java eclipse eclipse-rcp

我在CompareEditor中显示了CompareEditorInput,它比较了文本数据。我需要在CompareEditor之外更改CompareEditorInput时重新加载。

  1. 打开比较编辑器(CompareUI.openCompareEditor(输入))
  2. 比较输入已更改(ISteramContentAccessor.getContents()返回已更改的内容)
  3. 告诉打开的比较编辑器重新加载CompareEditorInput< - 需要实现。

2 个答案:

答案 0 :(得分:3)

您可以在setInput(sameInput)上致电CompareEditor,但由于CompareEditor是内部的,setInput()EditorPart中不公开,因此解决方法是调用{{ 3}} .init(IEditorSite site, IEditorInput input)

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

答案 1 :(得分:-1)

新的java io包java.nio.file包提供了一个文件更改通知API,称为Watch Service API。使用它,您可以监视磁盘上的文件并跟踪任何更改。请查看此内容以获取更多reference

创建一个单独的线程,该线程使用WatchService API并在后台监视该文件,如果在磁盘上发现任何更改,则通知用户。