`

两个GMF常用方法

    博客分类:
  • GMF
阅读更多
        1.根据领域模型element,在模型所在的编辑器上选中图元
    public static void selectDiagramEditPart(DiagramEditPart diagramPart,
    EObject element) {
    if (diagramPart == null || element == null)
    return;
    EditPartViewer partViewer = diagramPart.getViewer();
    Map<?,?> map = partViewer.getEditPartRegistry();
    for (Entry<?, ?> entry : map.entrySet()) {
    Object key = entry.getKey();
    if (!(key instanceof View)) {
    continue;
    }
    View view = (View) key;
    EObject tempElement = view.getElement();
                        //过滤非领域模型
    if (!(element instanceof **Node || tempElement instanceof **Link)) {
    return ;
    }
    if (element.equals(tempElement)) {
    Object value = entry.getValue();
    if (!(value instanceof EditPart)) {
    continue;
    }
    EditPart tempEditPart = (EditPart) value;
    EditPart parent = tempEditPart.getParent();
    if (parent instanceof **DiagramEditor) {
    partViewer.select(tempEditPart);
    partViewer.reveal(tempEditPart);
    }
    }
    }
    }
   
        2.根据领域模型找到模型所在编辑器的EditPart
    public static EditPart getEditPart(DiagramEditPart diagramPart,EObject element){
            if (diagramPart == null || element == null)
                return null;
            EditPartViewer partViewer = diagramPart.getViewer();
            Map<?,?> map = partViewer.getEditPartRegistry();
            for (Entry<?, ?> entry : map.entrySet()) {
                Object key = entry.getKey();
                if (!(key instanceof View)) {
                    continue;
                }
                View view = (View) key;
                EObject tempElement = view.getElement();
                //过滤非领域模型
                if (!(tempElement instanceof **Node || tempElement instanceof **Link) {
                    continue;
                }
                if (element.equals(tempElement)) {
                    Object value = entry.getValue();
                    //过滤EditPart
                    if (value instanceof **EditPart) {
                        return (EditPart) value;
                    }
                }
            }
            return null;
    }
0
1
分享到:
评论

相关推荐

    gmf 1.7 最新版的gmf

    Eclipse GMF插件是Eclipse IDE的一个扩展,它允许开发者通过模型驱动的方法来开发图形编辑器。这个插件的核心功能包括: 1. **模型定义**:GMF支持使用EMF(Eclipse Modeling Framework)来定义数据模型,这些模型...

    GMF实例解析.pdf

    然而,将这两者整合起来需要对两个框架有深入的理解,学习曲线较陡峭。 GMF的出现解决了这个问题,它为开发者提供了一个图形化的开发环境,使得创建基于EMF和GEF的图形化编辑器变得更加直观和快速。同时,GMF保持了...

    GMF EMF

    GMF(Generic Modeling ...通过深入研究GMF ѧϰ和GMF 学习这两个文件,你将能够掌握GMF的基本概念,理解其工作原理,并具备使用GMF创建自己的图形编辑器的能力。在实践中不断探索和学习,你将逐渐成为GMF的专家。

    GMF数据表建模例子

    9. **源码分析**:深入研究这个例子的源码,不仅可以学习GMF的使用方法,还可以了解如何将EMF和GEF结合,以及如何处理图形交互事件,这对于开发自己的图形化工具非常有帮助。 10. **社区支持**:由于GMF是开源项目...

    GMF教程.doc

    【GMF教程】GMF(Graphics Modeling Framework)是Eclipse平台下的一个图形建模框架,用于构建基于模型的图形编辑工具。本教程是基于英文教程的实践与翻译,旨在帮助读者理解并掌握如何使用GMF创建一个Mindmap编辑器...

    一个简单的GMF实例

    GMF允许开发人员通过模型驱动的方法来设计和实现复杂的图形编辑工具,它提供了丰富的功能,包括自动代码生成、图形布局和交互逻辑等。 【描述】: 虽然描述部分为空,我们可以推测这篇博文可能详细介绍了作者创建...

    15 分钟学会 Eclipse GMF

    本教程将带你快速掌握Eclipse GMF的核心概念和使用方法,让你在15分钟内对GMF有初步的认识。 一、Eclipse GMF简介 Eclipse GMF是一个强大的框架,它允许开发者创建具有用户友好的图形界面的模型编辑器。GMF通过自动...

    GMF Tutorial中文版

    GMF是Eclipse建模项目的一个子项目,它的主要目标是为Eclipse Modeling Framework (EMF)和Graphical Editing Framework (GEF)提供一个统一的平台,使得开发者能够更方便地创建图形化建模应用。 在本教程中,读者将...

    org.eclipse.gmf.rar

    在软件开发领域,Eclipse是一个广泛使用的集成开发环境(IDE),而GMF(Graphical Modeling Framework)则是Eclipse社区提供的一款强大的图形建模框架。本文将深入探讨GMF中的RAR(Runtime Architecture Resource)...

    GMF相关资料

    GMF,全称为Generic Mapping Tools,是一个开源的地理信息系统,用于创建、编辑和展示地理数据。这个工具在地学、环境科学以及地球物理学等领域广泛应用,因其强大的地图制作和数据分析功能而受到专业人士的喜爱。本...

    Eclipse插件 GMF

    Eclipse插件GMF,全称为Graphical Modeling Framework,是Eclipse平台上的一个重要组成部分,主要用于构建可视化的建模工具。这个框架提供了一种强大的方式,让开发者能够创建出具有图形界面的模型编辑器,用于设计...

    eclipse gef ve gmf

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

    图形建模框架GMF综述

    在深入了解GMF之前,有必要先了解EMF和GEF这两个Eclipse插件项目的基本概念: - **Eclipse建模框架(EMF)**:EMF是一个强大的开源框架,用于支持模型驱动的软件开发。EMF的核心概念是Ecore元模型,这是一种定义数据...

    GMF开发FSM的完整的例子

    本文档将通过一个详细的案例来介绍如何使用GMF来开发一个FSM(Finite State Machine,有限状态机)图形编辑器,从而教会读者如何为自己定制化的建模工具开发图形界面。 #### 了解 GMF 的机制与流程 在深入学习如何...

    GMF 开发文档

    - **启动GMF项目:** 在Eclipse中设置一个新的GMF项目是整个开发流程的第一步。 - **GMF Dashboard:** 创建新项目后,会显示GMF Dashboard(图1),它将指导用户完成整个开发过程,并成为主要的交互界面。 ##### ...

    gmf补丁

    【标签】:“源码”和“工具”这两个标签揭示了补丁与编程和开发环境的紧密关系。"源码"表明涉及到的是原始代码级别的修改,意味着补丁可能是通过对软件的源代码进行直接编辑来创建的。"工具"可能是指gmf补丁作为一...

Global site tag (gtag.js) - Google Analytics