尽管工作台编辑器的实现将特定于您的插件和您想要编辑的内容,但工作台还是提供了用于构建编辑器的一般结构。下列概念适用于所有工作台编辑器。
编辑器必须实现 IEditorPart,并且通常是通过扩展 EditorPart 类来构建的。编辑器在 createPartControl 方法中实现它的用户界面。此方法用来组装提供编辑器内容的 SWT 窗口小部件或 JFace 查看器。
编辑器输入是对要编辑的内容的描述。可以将编辑器输入看作是文件名,尽管它更常见一些。 IEditorInput 定义编辑器输入的协议,包含输入的名称以及在编辑器顶部的标签中应该用来表示它的图像。
在平台中提供了两个通用编辑器输入。IFileEditorInput 表示在文件系统中作为文件的输入。IStorageEditorInput 表示作为字节流的输入。这些字节可能来自不同于文件系统的源。
如果编辑器可以支持即时替换编辑器的输入对象,则应当实现 IReusableEditor。通过实现此接口允许工作台“回收”编辑器。工作台用户首选项允许用户规定在打开一定数量的编辑器之后就应当重用编辑器。
如果想要在编辑器中实现导航历史,则应当实现 INavigationLocationProvider。这为工作台提供了请求保存导航历史所需要的当前导航位置(INavigationLocation)的机制。工作台处理导航用户界面的机制。当需要将编辑器恢复至它表示的位置时,将通知 INavigationLocation。
编辑器的其余实现取决于您正试图提供的内容。下面,我们将了解最常见的类型的编辑器 - 文本编辑器。