`
yiliner
  • 浏览: 214867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个emf新手的学习笔记 --EMF 生成的代码阅读笔记(二)

    博客分类:
  • EMF
阅读更多

一个emf新手的学习笔记 --EMF 生成的代码阅读笔记(二)

EMF不光为我们生成了模型类的代码。还为我们提供了一个默认的模型编辑器。要看到这个模型编辑器我们只需要运行一下就可以看到了(用Eclipse Application的方式)。

共有三个部:

1.       编辑器的主体。包括六种呈现方式。

a)       Selection.

b)     Parent.

c)     List.

d)     Tree

e)       Table

f)       Tree With Columns.

2.       Outline部分。

Properties,会根据选择不同的对象而改变显示的内容。关于Jface部分的工作模式我在《Table View 的合作类的模式》一文中有提到,不过需要说明的是,在Jface中的Viewer他们的ContentProvider可能不一样的。

要完成这部分的功能emf的产生代码中分别放到了两个插件里实现了他们分别是edit和editor。

Edit提供了Item 的Provider,他存在的意义就在于把逻辑对象和UI分割开。而Editor通过使用edit提供的Provider实现了一个编辑器的UI和Command部分,他是正真的用户界面部分。

下面我们就先来看看edit中的类。

好了,首先edit中使用的是adapt模型。所以edit中的插件对象会实现所有的viewer,Properties所需要的接口。

Emf为我们实现通用的接口。所以这绝对是一个学习的好机会。

废话不多说了,来看代码把。

首先看声明:

public class FamilyItemProvider
  extends ItemProviderAdapter
  implements  
    IEditingDomainItemProvider,  
    IStructuredItemContentProvider,  
    ITreeItemContentProvider,  
    IItemLabelProvider,  
    IItemPropertySource {
他的继承关系可以用下图来表示:


他们之间的职能以及实现的接口可用下图来描述:

AdapterImpl是为了实现Adapter模式而设定。
ItemProviderAdapter完成一些基本功能。下面就分别从不同的接口来说明
1.    ResourceLocator:该接口是用来进行资源定位的。
2.    IDisposable 是emf框架提供的一种析构接口。
3.    IChangeNotifier 为"Notification and Adapters"模式提供必需的方法。
4.    CreateChildCommand.Helper

最下面的EMF根据我们的模型产生的Provider的了。他实现了5个接口。
1.    IEditingDomainItemProvider
这部分我还清楚,怀疑和command有关。
2.    IStructuredItemContentProvider
该接口为TableViewer,ListViewer,TreeViewer提供服务。
This is the interface needed to populate the top level items in a TreeViewer, the items of a ListViewer, or the rows of a TableViewer.
3.    ITreeItemContentProvider
This is the interface needed to populate subtrees in a TreeViewer
4.    IItemLabelProvider
This is the interface implemented to provide a label text and even a label icon for an item;
it receives delegated calls from ILabelProvider.
5.    IItemPropertySource
分享到:
评论

相关推荐

    EMF 自学笔记5

    EMF(Eclipse Modeling Framework)是Eclipse项目中的一个子项目,它提供了一套用于构建模型驱动的开发工具和应用程序的框架。EMF的主要目标是简化元数据驱动应用的开发过程,通过将模型与代码生成、编辑器、验证器...

    Eclipse插件开发学习笔记全篇+源码.rar

    本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...

    eclipse插件开发学习笔记

    - EMF(Eclipse Modeling Framework)是Eclipse项目的一个组成部分,用于生成模型驱动的代码。EMF提供了一系列工具和服务,可以帮助开发者快速构建基于模型的应用程序。 **1.6 GEF技术** - GEF(Graphical Editing ...

    Eclipse插件开发学习笔记22-24章.rar

    4. 多视图编辑:在同一个模型下,如何支持多个不同的视图展示。 5. 与其他Eclipse组件集成:如与PDE(Plug-in Development Environment)或EMF(Eclipse Modeling Framework)的协同工作。 此外,附带的“《Eclipse...

    [Eclipse插件开发学习笔记].张鹏等.扫描版-1

    【Eclipse插件开发学习笔记】是一本详细探讨Eclipse插件开发的教程,由张鹏等人编写。这本书深入浅出地介绍了如何利用Eclipse平台进行插件开发,旨在帮助开发者提升在Eclipse环境中定制和扩展功能的能力。通过阅读...

    eclipsePluginStudyNoteSourceCode:Eclipse插件开发学习笔记-源代码1至24章

    这份"eclipsePluginStudyNoteSourceCode"压缩包提供了从第1章到第24章的Eclipse插件开发学习笔记源代码,涵盖了从基础到进阶的全方面知识。 在Eclipse插件开发中,你需要了解以下核心概念: 1. **插件体系结构**:...

    Eclipse插件开发学习笔记(ch18-19)

    本学习笔记主要涵盖了Eclipse插件开发的第18章和第19章,即“备忘单(CheatSheet)”和“插件开发高级内容”。 第18章“备忘单(CheatSheet)”是Eclipse中一种非常实用的功能,它为用户提供了一步一步的操作指南,...

    Eclipse插件开发学习笔记(ch22-24)

    本系列学习笔记主要涵盖了Eclipse插件开发的第22至24章,旨在帮助开发者深入理解并掌握如何利用Eclipse平台构建自定义工具和功能。 首先,第22章“GEF介绍与实现”着重讲解了图形编辑框架(Graphical Editor ...

    eclipse总结

    它不仅是一个代码编辑器,还包括了许多辅助开发的工具,例如内置的JUnit测试框架支持,以及用于模型驱动开发(MDD)的工具,比如GMF(Graphical Modeling Framework)和EMF( Eclipse Modeling Framework)。 - EMF...

    Eclipse插件开发笔记—PDF—带目录

    第10章 开发 第一个插件项目 第11章 操作(Actions) 第12章 视图(Views) 第13章 编辑器(Editors) 第14章 透视图(Perspectives) 第15章 对话框和向导(DialogsWizards) 第16章 首选项(Preferences) 第17章 帮助内容...

    GEF-ALL-3.7+GEF-ALL-3.8+GEF_Draw2d学习资料

    5. "eclipse插件开发快速入门图文教程.pdf" 和 "Eclipse插件开发学习笔记.pdf" 可能是针对Eclipse插件开发的一般性教程,对于理解GEF和Draw2D的上下文非常有帮助。 6. "jgraphx-1_10_0_6.zip.rar" 是JGraphX的压缩包...

    java开发环境配置大全

    文中提到的是 `jdk-1_5_0_04-windows-i586-p.exe`,这是一个适用于Windows i586架构的Java Development Kit (JDK) 1.5.0版本。 **1.2 安装JDK** 选择合适的路径进行安装,这里以 `D:\jdk1.5.0` 为例。安装过程中请...

    AN--PIC16F690--BLDC.pdf

    - 为了全面了解三相无刷直流电机,推荐阅读应用笔记“Brushless DC Motor Control Made Easy”(DS00857)。该文档详细介绍了如何使用传感器反馈来驱动无刷直流电机,并提供了先进的比较模式和软件技术,展示了一种...

    无刷电机控制源程序

    总之,这个“无刷电机控制源程序”是一个宝贵的教育资源,对于想要深入学习无刷电机控制技术和STC51单片机应用的工程师来说,是一个绝佳的实战案例。通过深入学习和实践,不仅可以提升硬件设计和软件编程能力,还能...

    AN901_v500 - dsPIC30F3010_Sensorless_an901_dspic30f3010_BLDC_enj

    标题“AN901_v500 - dsPIC30F3010_Sensorless_an901_dspic30f3010_BLDC_enj”指的是一个技术文档或项目,专注于使用dsPIC30F3010微控制器实现无传感器BLDC(无刷直流电机)控制的应用。这个项目名为AN901,可能是...

    microchip的AN2520的focPLL估算算法

    标题 "microchip的AN2520的focPLL估算算法" 涉及到的是Microchip公司的一份应用笔记AN2520,该笔记主要讨论了无传感器(Sensorless)磁场定向控制(Field-Oriented Control, FOC)中的锁相环(Phase-Locked Loop, ...

    Sensorless single-shunt FOC on LPC2900

    文件名"AN10899 complete package 20100113"表明这可能是一个2010年1月13日发布的完整软件包,包含了所有必要的源代码、编译器设置、配置文件以及相关的技术文档。开发者可以下载这个包,按照文档的指导,在LPC2900...

    eclipse_language.zip

    如果你是初学者,可以参考博主的“java学习笔记”中的汉化教程,以便更轻松地理解和使用Eclipse。需要注意的是,安装汉化包时需确保已安装了与之匹配的Eclipse Luna 4.4版本,并按照正确的顺序进行安装,以避免可能...

    无刷直流 (BLDC) 电机的无传感器梯形控制

    - **软件开发工具**:Code Composer Studio™ 集成开发环境 (IDE) 是一个强大的开发平台,支持 TI 的各种微控制器和处理器,提供了代码编辑、编译、调试等功能。 #### 七、硬件配置(HVDMCR1.1 套件) HVDMCR1.1 ...

    基于DS1302的万年历

    总结来说,这个项目涵盖了硬件设计、嵌入式编程、实时系统等多个领域,是一个很好的学习和实践单片机技能的平台。如果你对电子制作、单片机编程感兴趣,这个基于DS1302的万年历项目无疑是一个值得尝试的挑战。通过...

Global site tag (gtag.js) - Google Analytics