【问题标题】:How to update GEF editor if file renamed?如果文件重命名,如何更新 GEF 编辑器?
【发布时间】:2011-04-16 03:28:19
【问题描述】:

如果文件重命名,如何更新 GEF 编辑器?

这适用于文本编辑器。例如在 Eclipse 中转到 Navigator,在编辑器中打开文件 HelloWorld.java,在 Navigator 中将 HelloWorld.java 重命名为 HelloWorld2.java。请注意,编辑器现已更新,标题为“HelloWorld2.java”。

为此,Eclipse 创建侦听器并将其添加到 ITextEditor: IElementStateListener fElementStateListener= new ElementStateListener() (handles elementMoved and calles setInput((IEditorInput) movedElement)) ITextEditor.getDocumentProvider().addElementStateListener(fElementStateListener);

我想我需要在 org.eclipse.gef.ui.parts.GraphicalEditor 中做同样的事情,但我不知道是什么原因导致 graphicsEditor 没有 documentProvider。

更新:

GEF 提供了三个示例。其中之一是逻辑 例子: http://wiki.eclipse.org/GEF_Developer_FAQ#How_do_I_Run_the_Logic_Example.3F

在LogicEditor类中,内部类ResourceTracker是关键。

【问题讨论】:

    标签: eclipse-gef


    【解决方案1】:

    当您检测到资源被移动时,您需要添加资源侦听器并更新您的编辑器属性(即标题、工具提示)。

    【讨论】:

    • 我不确定是否应该这样做。在资源监听器中我没有对编辑器的引用,所以我需要扫描打开的编辑器,我也会在资源监听器中收到有关资源更改的通知...
    • 你可以让每个编辑器监听事件(即在单元方法中添加监听器并在编辑器被释放时删除)。
    • 最后一个建议听起来很“丑陋”。我想做的事情就像他们为 ITextEditor 所做的那样简单(参考描述)
    • 据我所知,GEF 中没有对资源更改通知的更高级别支持。您将不得不依赖资源侦听器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多