我构建了一个GEF编辑器(类似于OPM编辑器),我需要您对OutlineView的帮助,因为我的尝试不起作用。我像ShapeEditor中的GEF示例一样构建了ContentOutlinePage。
当类型为IContentOutlinePage.class时,我在getAdapter中返回我的新OutlinePage。然后我调用createControl和setContent(模型),出现错误。我无法设置addPropertyChangeListener,我的模型不是为这个Listener 设计的
ShapeEditor中的解决方案似乎非常复杂。
ContenToutlinePage没有一个简单的解决方案吗?或者有人用这个OPM编辑器找到一个解决方案?
感谢我们的帮助
请参见ShapesEditor#createControl(复合父级)第355行:getViewer().setEditPartFactory(new ShapesTreeEditPartFactory());
这可能是您缺少正确实现的原因。您必须实现自己的EditPart工厂来构建自己的树编辑部件(子类GEF的AbstractTreeEditPart)。ShapeTreeEditPart#activate()和#deactivate()方法添加/删除属性更改侦听器。这些监听器将对模型更改做出反应(例如,名称标签已经更改),因此您可以在那里注册自己的模型更改监听器,或者如果您不关心模型的更改,则将方法留空。