`

将GEF模型显示保存为图片

    博客分类:
  • GEF
阅读更多
from:http://blog.csdn.net/moneyice/archive/2007/03/08/1524371.aspx 
项目需求,要把GEF模型在editor中的显示保存为一张图片,便于预览或在文档中使用。研究了GMF的代码,它使用AWT来进行图片的输出,所以在中间作了一个SWT和AWT的转换Adapter. 是一个叫做AWTGraphics的类.其实使用SWT本身就可以进行。
         使用draw2D提供的SWTGraphics可以进行GEG图像的保存。本程序假定读者对GEF有一定了解。
        
private void saveOutlinePicture(ScrollingGraphicalViewer viewer) ...{
        LayerManager layerManager = (LayerManager) viewer.getEditPartRegistry().get(LayerManager.ID);
        // save image using swt
        // get root figure
           // 获取显示在editor中的背景层和打印层
        IFigure backgroundLayer = layerManager.getLayer(LayerConstants.GRID_LAYER);

        IFigure contentLayer = layerManager.getLayer(LayerConstants.PRINTABLE_LAYERS);

        // create image from root figure
        Image img = new Image(null, contentLayer.getSize().width, contentLayer.getSize().height);
        GC gc = new GC(img);
        Graphics graphics = new SWTGraphics(gc);
        graphics.translate(contentLayer.getBounds().getLocation());
             // 传送显示图层
        backgroundLayer.paint(graphics);
        contentLayer.paint(graphics);
        graphics.dispose();
        gc.dispose();

        // save image to file
        ImageLoader il = new ImageLoader();
        il.data = new ImageData[] ...{ img.getImageData() };

            //保存地址和保存图片的类型
        il.save(“c:/test.jpg", SWT.IMAGE_JPEG);
    }

        




分享到:
评论

相关推荐

    gef布局显示学习

    通过深入学习和实践,你将能够熟练地运用Gef布局显示,提升你的Linux程序调试技能。同时,了解Gef的源码和扩展机制,还可以为今后开发自己的GDB插件打下基础。记住,不断探索和实践是成为熟练掌握Gef布局显示的关键...

    将GEF应用到Web上,PPT

    视图可以有多个,每个显示模型的不同方面。 3. **编辑器(Editor)**:编辑器是视图和模型之间的桥梁,处理用户交互,如拖拽、选择、修改等,并更新模型。 4. **控制器(Controller)**:处理用户的输入事件,确保...

    RCP 视图显示GEF图

    用视图显示在GEF编辑器编辑好的图形 在视图里加入GraphicalViewer viewer = new ScrollingGraphicalViewer(); viewer.createControl(parent);

    GEF入门学习例子

    在GEF中,适配器通常用于将模型对象转换为视图对象。 7. **手势(Gesture)**: 手势是用户与图形元素交互的方式,如鼠标点击、拖拽等。GEF通过`CommandStack`和`DirectEditManager`来处理这些手势。 **例子中的关键...

    GEF的动态变化二

    3. **模型-视图-控制器(MVC)模式**:理解GEF如何遵循MVC设计模式,模型如何驱动视图的变化。 4. **定时器或事件驱动**:如何使用Java的定时器或事件监听器来控制动画的时间序列。 5. **图形变换**:如何应用矩阵...

    GEF入门必读 GEF入门系列 GEF-whole-upload

    9. **导出和导入**:讨论如何将图形数据序列化和反序列化,以便保存和加载编辑状态。 10. **调试与测试**:提供调试GEF应用程序的方法和技巧,以及如何进行单元测试和集成测试。 通过深入学习这些内容,开发者能够...

    GEF简易教程-学习GEF的入门教程

    虽然两者都可以用来显示GEF图形,但**Editor**与**View**存在本质区别: - **Editor**提供文件保存功能,适用于需要持久化数据的场景。 - **View**主要用于展示数据,不涉及数据保存,适用于动态数据展示或监控界面...

    eclipse3.4的可视化开发GEF

    3. **GraphicalViewer**:作为图形视图的容器,负责显示模型数据。 4. **Figure**:表示图形元素,如矩形、圆形等。 5. **ConnectionFigure**:用于绘制和管理连接线。 6. **EditPolicy**:定义特定编辑行为,如选择...

    Eclipse的GEF学习

    通过将复杂的编辑操作抽象为请求(Request)、角色(Role)、策略(EditPolicy)和命令(Command),GEF提供了一套灵活且强大的机制,让开发者可以专注于业务逻辑,而不必担心图形界面的具体实现细节。 #### 五、GEF在实际...

    GEF教程和demo源码

    在本教程中,我们将深入理解GEF的基本概念,并通过提供的"gef入门.pdf"文档和"test.gef.hello"源码,一步步学习如何构建一个简单的Hello World应用。 首先,让我们来看看"gef入门.pdf"文档中的关键知识点: 1. **...

    java gef开发实例

    在本实例中,我们将探讨如何利用GEF实现一个简单的MVC(Model-View-Controller)架构,这是一种常见的软件设计模式,用于分离应用程序的数据、显示逻辑和用户交互。 1. **GEF框架基础**: - **模型(Model)**:...

    GEF快速入门教程和EMF教程

    本文将详细介绍如何使用Graphical Editing Framework (GEF)实现一个简单的“Hello World”示例,并结合Eclipse Modeling Framework (EMF)进行扩展。通过此教程,读者能够理解GEF的基本架构以及如何在Eclipse RCP应用...

    自己下的GEF资源打包

    GEF,全称为Graph Editor Framework,是Eclipse平台下用于构建图形编辑器的一个开源框架。它提供了一套强大的工具和API,使得开发者能够快速、便捷地创建出复杂的图形用户界面,特别适合于创建数据建模、流程设计、...

    GEF教程及demo源码

    - **EditorPart**: 实现编辑器的入口,加载和保存模型,创建图表视图。 - **Model类**: 定义图形元素的数据结构。 - **EditPolicy**: 为EditPart提供特定的行为策略,如连接线的创建和删除。 - **Command类**: 对应...

    GEF原理的详细介绍+程序实例和程序源码

    2. **视图(View)**:视图是模型在屏幕上的表示,由GEF的图形组件(如Figure和Part)组成,用于显示模型数据。 3. **控制器(Controller)**:处理用户输入,如鼠标点击和键盘事件,协调模型和视图的更新。 4. **...

    GEF中文教程+代码

    - **EditParts**:表示模型的可视化组件,它们负责将模型数据转换为屏幕上的图形。 - **Figure**:基本的绘图单元,可以是简单的形状或复杂的组合。 - **Command**:可撤销/重做的命令系统,用于封装对模型的修改...

    gef 转折线的相关方法实现和 GEF的API chm 格式

    - `org.eclipse.gef.EditPart`:这是GEF的核心组件,它代表了图形模型中的一个元素,并负责将其映射到视图中。 - `org.eclipse.gef.GraphicalEditPart`:是EditPart的一个子类,专门处理图形元素的绘制和交互。 - `...

    gef写的tree例子--模型修改为emf

    标题中的“gef写的tree例子--模型修改为emf”指的是使用GEF(Graphical Editing Framework)框架创建的一个树形视图示例,并且这个示例的模型已经转换为使用EMF(Eclipse Modeling Framework)来管理。这涉及到两个...

    GEF学习资料.zip

    3. **控制器(Controller)**:控制器处理用户交互,如鼠标点击、拖拽等,将用户的操作转化为对模型的修改,同时更新视图。 4. **编辑域(Edit Domain)**:编辑域是GEF环境中最高级别的容器,管理所有的编辑部分和...

    GEF_Tutorial.rar(GEF开发指南)

    **GEF(Graphical Editing Framework)开发指南*...总之,"GEF_Tutorial.rar"是一个宝贵的资源,它将引导你踏入GEF开发的世界,通过实例学习,你将能够熟练地创建出功能丰富的图形编辑器,实现各种复杂的图形用户界面。

Global site tag (gtag.js) - Google Analytics