用于查看的GEF编辑器功能

时间:2012-06-09 08:51:39

标签: eclipse-rcp eclipse-gef draw2d

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

3 个答案:

答案 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.GraphicalEditorAPI)而不是org.eclipse.gef.ui.parts.GraphicalEditorWithPaletteorg.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette,你就摆脱了调色板:

  

这门课程可以作为新手的客户的快速起点   全球环境基金。它将创建一个包含单个GraphicalViewer的编辑器   它的控制。

但请注意,Javadoc评论说

  

重要事项此类仅应用作创建的参考   你自己的EditorPart实现。这堂课不适合   每个人的需求,并可能在未来发生变化。客户可以复制   实施

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