0

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

4

3 回答 3

1

您想要的在当前的 GEF 实施中是不可能的。所有图形编辑器都是 Eclipse 编辑器,所以我看不到如何将它们放在视图中。您可以实现此功能,但需要大量接线...

于 2012-06-11T08:54:01.597 回答
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();
                }

            }));
}

希望这对你有帮助!!!

于 2012-07-11T09:17:13.870 回答
0

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

这可以很容易地实现。让你的编辑器类扩展org.eclipse.gef.ui.parts.GraphicalEditorAPI)而不是org.eclipse.gef.ui.parts.GraphicalEditorWithPaletteor org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette,你就摆脱了调色板:

本课程可作为 GEF 新客户的快速入门。它将创建一个包含单个 GraphicalViewer 作为其控件的编辑器。

但是,请注意 Javadoc 注释说

重要信息 此类仅应用作创建您自己的 EditorPart 实现的参考。这个类不会满足每个人的需要,并且将来可能会改变。客户可以复制实现。

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

于 2012-06-12T10:17:50.557 回答