构建基于 CDT 的编辑器,第 1 部分: C/C++ 开发工具模型
2009-12-19 00:00:00 来源:WEB开发网CDT 模型元素及 IAdapter
正如组成 Eclipse 工作台的资源那样,CDT 模块元素(ICModel、ICProject、ITranslationUnit 等)全都是 IAdaptable 接口的后代。此接口允许 CDT 将其特定功能添加到现有的类中,而不必对这些类进行子类化。从编码的角度看,IAdaptable 类能通过使用其 getAdapter(类适配器)方法将此类转换成另一个类。
对每一个元素来说,CDT 提供了一个定义了完整方法的实现类(CModel、CProject、TranslationUnit 等)。然而,通过使用 IAdaptable 接口,可以在不失去 ICElement 现有功能的情况下创建您自己的 C/C++ 元素。那也就是说,新元素能够像 CDT 元素适应 Eclipse 工作空间中的资源一样适应 CDT 元素。
第 1 步:创建 CDT 模型
当工作台初始化了 CDT 插件,该核心插件就会创建一个单独的 CoreModel(不是 CModel)。此过程会依次创建两个重要的类: PathEntryManager 和 CModelManager。PathEntryManager 跟踪构建过程所需的目录,如包含目录或宏目录。在 CDT 模块中,每个目录的路径都保存在一个 SourceEntry 对象中。
但 CModelManager 类对于此次探讨来说至关重要。它在 CDT 中完成了诸多重要任务:
创建作为元素层次结构中顶层元素的 CModel
随着其资源被创建或删除,添加和移除新的模型元素
跟踪模型元素及其信息对象
持有一份有关 TranslationUnit 和作为其子元素的 WorkingCopy 的映射表。
存储一份新近打开元素的缓存
对资源内容类型的改变作出响应
对资源描述符的改变作出响应
最重要的功能是前两个。CModelManager 作为 CDT 的模型工厂,通过创建 CModel 对象开始运转。随后,它监听工作空间中资源的改变并在 CDT 元素受到影响时更新该模型。
- ››基于IP地址的vsftp服务器
- ››构建Windows 8风格应用23-App Bar概述及使用规范
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››构建域名服务器(DNS)
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››构建Android平台Google Map应用
- ››基于Windows Azure的云计算应用设计
- ››构建WinForm 通用速选(全选、反选、清空)组件
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
更多精彩
赞助商链接