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(Eclipse Modeling Framework)是Eclipse项目中的一个子项目,它提供了一套用于构建模型驱动的开发工具和应用程序的框架。EMF的主要目标是简化元数据驱动应用的开发过程,通过将模型与代码生成、编辑器、验证器...
本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...
- EMF(Eclipse Modeling Framework)是Eclipse项目的一个组成部分,用于生成模型驱动的代码。EMF提供了一系列工具和服务,可以帮助开发者快速构建基于模型的应用程序。 **1.6 GEF技术** - GEF(Graphical Editing ...
4. 多视图编辑:在同一个模型下,如何支持多个不同的视图展示。 5. 与其他Eclipse组件集成:如与PDE(Plug-in Development Environment)或EMF(Eclipse Modeling Framework)的协同工作。 此外,附带的“《Eclipse...
【Eclipse插件开发学习笔记】是一本详细探讨Eclipse插件开发的教程,由张鹏等人编写。这本书深入浅出地介绍了如何利用Eclipse平台进行插件开发,旨在帮助开发者提升在Eclipse环境中定制和扩展功能的能力。通过阅读...
这份"eclipsePluginStudyNoteSourceCode"压缩包提供了从第1章到第24章的Eclipse插件开发学习笔记源代码,涵盖了从基础到进阶的全方面知识。 在Eclipse插件开发中,你需要了解以下核心概念: 1. **插件体系结构**:...
本学习笔记主要涵盖了Eclipse插件开发的第18章和第19章,即“备忘单(CheatSheet)”和“插件开发高级内容”。 第18章“备忘单(CheatSheet)”是Eclipse中一种非常实用的功能,它为用户提供了一步一步的操作指南,...
本系列学习笔记主要涵盖了Eclipse插件开发的第22至24章,旨在帮助开发者深入理解并掌握如何利用Eclipse平台构建自定义工具和功能。 首先,第22章“GEF介绍与实现”着重讲解了图形编辑框架(Graphical Editor ...
它不仅是一个代码编辑器,还包括了许多辅助开发的工具,例如内置的JUnit测试框架支持,以及用于模型驱动开发(MDD)的工具,比如GMF(Graphical Modeling Framework)和EMF( Eclipse Modeling Framework)。 - EMF...
第10章 开发 第一个插件项目 第11章 操作(Actions) 第12章 视图(Views) 第13章 编辑器(Editors) 第14章 透视图(Perspectives) 第15章 对话框和向导(DialogsWizards) 第16章 首选项(Preferences) 第17章 帮助内容...
5. "eclipse插件开发快速入门图文教程.pdf" 和 "Eclipse插件开发学习笔记.pdf" 可能是针对Eclipse插件开发的一般性教程,对于理解GEF和Draw2D的上下文非常有帮助。 6. "jgraphx-1_10_0_6.zip.rar" 是JGraphX的压缩包...
文中提到的是 `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` 为例。安装过程中请...
- 为了全面了解三相无刷直流电机,推荐阅读应用笔记“Brushless DC Motor Control Made Easy”(DS00857)。该文档详细介绍了如何使用传感器反馈来驱动无刷直流电机,并提供了先进的比较模式和软件技术,展示了一种...
总之,这个“无刷电机控制源程序”是一个宝贵的教育资源,对于想要深入学习无刷电机控制技术和STC51单片机应用的工程师来说,是一个绝佳的实战案例。通过深入学习和实践,不仅可以提升硬件设计和软件编程能力,还能...
标题“AN901_v500 - dsPIC30F3010_Sensorless_an901_dspic30f3010_BLDC_enj”指的是一个技术文档或项目,专注于使用dsPIC30F3010微控制器实现无传感器BLDC(无刷直流电机)控制的应用。这个项目名为AN901,可能是...
标题 "microchip的AN2520的focPLL估算算法" 涉及到的是Microchip公司的一份应用笔记AN2520,该笔记主要讨论了无传感器(Sensorless)磁场定向控制(Field-Oriented Control, FOC)中的锁相环(Phase-Locked Loop, ...
文件名"AN10899 complete package 20100113"表明这可能是一个2010年1月13日发布的完整软件包,包含了所有必要的源代码、编译器设置、配置文件以及相关的技术文档。开发者可以下载这个包,按照文档的指导,在LPC2900...
如果你是初学者,可以参考博主的“java学习笔记”中的汉化教程,以便更轻松地理解和使用Eclipse。需要注意的是,安装汉化包时需确保已安装了与之匹配的Eclipse Luna 4.4版本,并按照正确的顺序进行安装,以避免可能...
- **软件开发工具**:Code Composer Studio™ 集成开发环境 (IDE) 是一个强大的开发平台,支持 TI 的各种微控制器和处理器,提供了代码编辑、编译、调试等功能。 #### 七、硬件配置(HVDMCR1.1 套件) HVDMCR1.1 ...
总结来说,这个项目涵盖了硬件设计、嵌入式编程、实时系统等多个领域,是一个很好的学习和实践单片机技能的平台。如果你对电子制作、单片机编程感兴趣,这个基于DS1302的万年历项目无疑是一个值得尝试的挑战。通过...