0

我建立了一个 GEF 编辑器(如 OPM 编辑器),我需要你对 OutlineView 的帮助,因为我的尝试不起作用。我像 ShapeEditor 中的 GEF 示例一样构建了 ContentOutlinePage。

当类型为 IContentOutlinePage.class 时,我在 getAdapter 中返回我的新 OutlinePage。然后我调用 createControl 和 setContent(model),出现错误。我无法设置 addPropertyChangeListener,我的模型不是为这个 Listener 设计的

ShapeEditor 中的解决方案似乎很复杂。

是否没有针对 ContentToutlinePage 的简单解决方案或有人使用此 OPM 编辑器提供解决方案?

感谢我们的帮助

4

1 回答 1

0

参见 ShapesEditor#createControl(Composite parent) 第 355 行:getViewer().setEditPartFactory(new ShapesTreeEditPartFactory());

这可能是您缺少正确实现的原因。您必须实现自己的 EditPart 工厂来构建自己的树编辑部件(子类 GEF 的 AbstractTreeEditPart)。ShapeTreeEditPart #activate() 和 #deactivate() 方法添加/删除属性更改侦听器。这些侦听器将对模型更改做出反应(例如名称标签已更改),因此您可以在此处注册自己的模型更改侦听器,或者如果您不关心模型的更改,则将方法留空。

于 2014-08-28T04:30:47.393 回答