Eclipse rcp 要查看的GEF编辑器功能

Eclipse rcp 要查看的GEF编辑器功能,eclipse-rcp,eclipse-gef,draw2d,Eclipse Rcp,Eclipse Gef,Draw2d,我创建了一个小的GEF项目,其中包含GEF编辑器。现在,我想将除GEF Pallete之外的所有功能转换为View。有可能吗?因为当我试着做编辑的时候,一切都不起作用。我能够使用GEF矩形零件和模型绘制矩形。它工作得很好。但现在我想在我的视图中添加调整大小、删除和撤消功能。在GEF编辑器中,这些功能运行良好。 这些功能是否仅适用于编辑器?有人能建议怎么做吗?在当前的全球环境基金实施中,你想要什么是不可能的。所有图形编辑器都是eclipse编辑器,所以我看不出如何将它们放在视图中。您可以实现这一点

我创建了一个小的GEF项目,其中包含GEF编辑器。现在,我想将除GEF Pallete之外的所有功能转换为View。有可能吗?因为当我试着做编辑的时候,一切都不起作用。我能够使用GEF矩形零件和模型绘制矩形。它工作得很好。但现在我想在我的视图中添加调整大小、删除和撤消功能。在GEF编辑器中,这些功能运行良好。
这些功能是否仅适用于编辑器?有人能建议怎么做吗?

在当前的全球环境基金实施中,你想要什么是不可能的。所有图形编辑器都是eclipse编辑器,所以我看不出如何将它们放在视图中。您可以实现这一点,但需要大量的连接…

如果我理解正确,您基本上只是想摆脱调色板,同时保留完整的编辑功能

这是很容易做到的。让您的编辑器类扩展
org.eclipse.gef.ui.parts.GraphicalEditor
(),而不是
org.eclipse.gef.ui.parts.graphicaleditorwithpalete
org.eclipse.gef.ui.parts.graphicaleditorwithflyioutpalete
,这样您就可以去掉该调色板:

这个类为新加入的客户提供了一个快速的起点 全球环境基金。它将创建一个编辑器,其中包含一个GraphicalViewer作为 它的控制

但是,请注意Javadoc注释说

重要信息:该类只能用作创建 您自己的EditorPart实现。这门课不合适 每个人的需要,将来可能会改变。客户可以复制 实施


理想情况下,您应该设置自己的
org.eclipse.ui.part.EditorPart
,但我认为作为起点,
GraphicalEditor
可能会做到:)。

您可以向视图中添加一些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();
                }

            }));
}

希望这对你有帮助

您是如何将其转换为视图的?GEF是基于编辑器的…不,我不想将视图转换为编辑器。我想所有的功能,可以在编辑器中完成,以完成在视图中也除了调色板。那有可能吗。但我可以实现一些功能,如缩放、缩小、编辑策略等。在这种情况下,可以添加。我不确定我是否理解正确。是否要将
编辑器
替换为
视图
?或者,您是否也希望使用视图来操纵编辑器中发生的事情?
视图的想法来自哪里?我知道,在他们转向Zest和编辑器之前,构建一个GEF视图的过程是这样的。事实上,我怀疑的是,我实现了缩放、图形移动、调整图形大小——图形编辑器中的所有功能。但是,我是否可以在视图中使用所有相同的功能?