`
梦在古稀
  • 浏览: 10324 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

gmf中刷新界面元素

    博客分类:
  • java
 
阅读更多
在gmf中如何刷新当前界面中的元素呢,看部主要分代码:

IEditorReference[] editorReferences = PlatformUI.getWorkbench()
                .getActiveWorkbenchWindow().getActivePage()
                .getEditorReferences();
        IEditorPart editorPart = null;
        IEditorInput editorInput = null;
        for (IEditorReference editorReference : editorReferences)
        {
            if (editorReference.getId().equals(
                    "Jonas.diagram.part.JonasDiagramEditorID"))
            {
               
                editorPart = editorReference.getEditor(false);
               
                editorInput = editorPart.getEditorInput();
                String projectPath = EditorUtils
                        .getProjectPathFromURIEditorInput((URIEditorInput) editorInput);
                if (!projectPath.equals(project.getLocation().toString()))
                {
                    continue;
                }
                JonasDiagramEditor editor = (JonasDiagramEditor) editorPart;
                ViewEditPart view = (ViewEditPart) editor.getDiagramEditPart();
                for (Object childEditPart : view.getChildren())
                {
                    refreshControl((BaseEditPart) childEditPart);
                }
            }
        }


private void refreshControl(BaseEditPart editPart)
    {
        EObject obj = editPart.resolveSemanticElement();
        if (obj instanceof Widgetcommon)
        {
            Widgetcommon control = (Widgetcommon) obj;
            //重新为控件设置,刷新界面对象
            BaseFigure figure = (BaseFigure) editPart.getPrimaryFigure();
           
            if (control.getNormalskin() != null)
            {
                Image image = EditorUtils.getSKinGrighce(control.getWidth(),
                        control.getHeight(),
                        ((Widgetcommon) obj).getNormalskin(),true);
                if (image != null)
                {
                    figure.setBackImg(image);
                }
            }
           
            if (control instanceof Text && ((Text) control).getText() != null)
            {
                Font font = EditorUtils.getFontStyle(editPart);
                if (font != null)
                {
                    figure.setFont(font);
                }
                String text = EditorUtils.getTextValue(editPart,
                        ((Text) obj).getText());
                figure.setText(text);
                editPart.setFgColor();
            }
            figure.repaint();
        }
        if (obj instanceof Container || obj instanceof ItemContainer)
        {
            //刷新子控件
            for (Object childEditPart : editPart.getChildren())
            {
                refreshControl((BaseEditPart) childEditPart);
            }
        }
    }
分享到:
评论

相关推荐

    gmf 1.7 最新版的gmf

    3. **图元工厂**:GMF提供图元工厂,用于创建和管理图形元素,包括形状、连接线等,这些元素在编辑器中显示。 4. **编辑操作**:GMF能够自动处理常见的编辑操作,如拖放、剪切、复制、粘贴、撤销和重做等。 5. **...

    GMF Tutorial中文版

    GMF区分了"toolsmith"(使用GMF构建插件的开发者)和"user"(使用这些插件的开发者),并强调在透视图中,GMF应尽可能隐藏内部模型的复杂性。 教程还涉及了GMF的核心组成部分——概念模型和工具定义模型。概念模型...

    org.eclipse.gmf.rar

    本文将深入探讨GMF中的RAR(Runtime Architecture Resource)组件,以及其在模型驱动开发中的关键作用。 首先,我们需要理解RAR的含义。"org.eclipse.gmf.rar"是Eclipse GMF运行时架构资源的标识符,它是GMF的核心...

    GMF EMF

    GMF旨在简化图形用户界面(GUI)的开发,特别是那些涉及图表编辑和可视化任务的界面。在这个“GMF学习资料”中,我们可以通过Mindmap和其他教程来深入理解GMF的关键概念和技术。 1. **GMF概述**: - GMF是EMF的...

    15 分钟学会 Eclipse GMF

    Eclipse GMF是一个强大的框架,它允许开发者创建具有用户友好的图形界面的模型编辑器。GMF通过自动生成代码和图形组件,简化了开发过程,使得开发人员可以专注于业务逻辑,而非底层图形渲染和事件处理。 二、GMF的...

    GMF数据表建模例子

    5. **图形化界面**:GMF允许创建直观的图形用户界面,用户可以通过拖拽和调整图形元素来创建和修改数据模型。这比传统的文本方式更易于理解和操作,尤其适合初学者和非专业程序员。 6. **文件结构**:提供的压缩包...

    GMF教程.doc

    - 在Eclipse中,通过`File` > `New` > `Project`,选择`New GMF Project`,创建名为`org.eclipse.gmf.examples.mindmap`的项目。 - 在创建项目时,可以选择显示Dashboard视图,便于后续操作。 2. **导入模型文件*...

    GMF 开发文档

    - **元素展示:** 图形定义模型决定了图中的元素如何展示。 - **配置细节:** 用户需要指定哪些元素作为节点,哪些作为链接,以及它们的属性。 ##### 3.4 工具定义与配置 - **工具配置:** 工具定义模型定义了图...

    图形建模框架GMF综述

    开发者可以定义模型中的元素类型、关系以及其他特性,然后基于这个模型自动生产出相应的代码。这种方式极大地减少了手动编码的工作量,同时也提高了开发效率和代码质量。 - **丰富的扩展性**:除了基本的建模功能...

    GMF实例解析(PDF版)

    通过重构Taipan应用程序或插件,开发者不仅可以掌握GMF的基本操作,还能探索其高级特性,如动态模型更新、定制编辑行为和扩展图形元素。 #### 结论:GMF——图形化编辑器的未来 GMF的出现极大地推动了图形化编辑器...

    Eclipse插件 GMF

    在Eclipse插件GMF中,你还可以利用EMF(Eclipse Modeling Framework)的强大功能,如数据持久化、版本控制和互操作性,进一步提升模型的灵活性和可扩展性。 总结来说,Eclipse插件GMF是一个强大的建模框架,它允许...

    GMF实例解析.pdf

    GMF,全称是Graphical Modeling Framework,是Eclipse建模项目中的一个重要组成部分,它建立在GEF(Graphical Editor Framework)和EMF(Eclipse Modeling Framework)之上,为开发基于图形界面的编辑器提供了一种更...

    GMF Tourial中文版(一)

    - **GMF**作为一个强大的框架,提供了创建高度定制化的图形化用户界面的能力,特别适用于开发复杂的数据可视化应用或建模工具。 - **EMF**是一个用于构建模型驱动的应用程序的基础框架,支持模型的定义、实例化以及...

    eclipse GMF 制作简单工作流流程设计器(3)

    在GMF中,图表元素定义了模型在屏幕上的显示方式。 在这个教程的第三部分,我们可以期待以下内容: - 如何定义和实现工作流模型的元数据,这通常涉及EMF(Eclipse Modeling Framework)的使用,用于创建和管理数据...

    eclipse gef ve gmf

    在Eclipse中,GEF(Graphical Editing Framework)、VE(Visual Editor)和GMF(Graphical Modeling Framework)是三个重要的插件或框架,主要用于图形化界面设计和建模。 1. GEF(Graphical Editing Framework) ...

    一个简单的GMF实例

    - `com.lgylym.reservation.diagram`:这部分可能是关于图形图表的定义,具体到GMF中,这可能涉及到元模型的图形表示,以及如何在屏幕上绘制这些图形。 - `com.lgylym.reservation`:这个顶级包可能包含了整个 ...

    GMF相关资料

    在学习GMF的过程中,首先要掌握的是基本操作,如安装和配置环境。这通常涉及到下载源代码、编译、设置环境变量等步骤。初学者需要了解如何在不同的操作系统(如Windows、Linux或Mac OS)上完成这些操作。 接着,...

Global site tag (gtag.js) - Google Analytics