我创建了一个包含GEF编辑器的小型GEF项目。现在我想将所有功能转换为View,除了GEF调色板。有可能吗?因为当我尝试编辑政策时,一切都无法正常工作。我可以使用GEF矩形零件和模型绘制一个矩形。它工作正常。但现在我想在我的视图中添加调整大小,删除,撤消功能。在GEF编辑器中,这些功能正常运行。 这些功能是否仅适用于编辑器?有人可以建议怎么做吗?
答案 0 :(得分:1)
目前的GEF实施无法实现您的目标。所有图形编辑器都是eclipse编辑器,因此我无法看到如何将它们放在视图中。你可以实现这个,但需要大量的布线......
答案 1 :(得分:1)
您可以在视图中添加一些GEF功能。因为您的视图必须实现 在接下来的方式。
// Use a standard Viewer for the Draw2d canvas
private ScrollingGraphicalViewer viewer = new ScrollingGraphicalViewer();
// Use standard RootEditPart as holder for all other edit parts
// private RootEditPart rootEditPart = new ScalableFreeformRootEditPart();
private ScalableRootEditPart rootEditPart = new ScalableRootEditPart();
// parts for model elements
private EditPartFactory editPartFactory = new MyEditPartFactory();
例如,您可以在视图中添加GEF编辑策略。
public void createPartControl(Composite parent) {
// Initialize the viewer, 'parent' is the
// enclosing RCP windowframe
viewer.createControl(parent);
viewer.setRootEditPart(rootEditPart);
viewer.setEditPartFactory(editPartFactory);
viewer.setContents(ModelFactory.createRegionLayerModel());
viewer.setEditDomain(new DefaultEditDomain(new GraphicalEditor() {
@Override
public void doSave(IProgressMonitor monitor) {
// TODO Auto-generated method stub
}
@Override
protected void initializeGraphicalViewer() {
GraphicalViewer viewer = getGraphicalViewer();
}
@Override
protected void configureGraphicalViewer() {
super.configureGraphicalViewer();
super.configureGraphicalViewer();
GraphicalViewer viewer = getGraphicalViewer();
}
}));
}
希望这可以帮助你!!!
答案 2 :(得分:0)
如果我理解正确,你基本上只想摆脱调色板,同时保留完整的编辑功能?
这可以很容易地实现。让你的编辑器类扩展org.eclipse.gef.ui.parts.GraphicalEditor
(API)而不是org.eclipse.gef.ui.parts.GraphicalEditorWithPalette
或org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
,你就摆脱了调色板:
这门课程可以作为新手的客户的快速起点 全球环境基金。它将创建一个包含单个GraphicalViewer的编辑器 它的控制。
但请注意,Javadoc评论说
重要事项此类仅应用作创建的参考 你自己的EditorPart实现。这堂课不适合 每个人的需求,并可能在未来发生变化。客户可以复制 实施
理想情况下,您应该设置自己的org.eclipse.ui.part.EditorPart
实现,但我认为作为起点GraphicalEditor
可能会这样做:)。