WEB开发网
开发学院软件开发Java 构建基于 CDT 的编辑器,第 1 部分: C/C++ 开发工具... 阅读

构建基于 CDT 的编辑器,第 1 部分: C/C++ 开发工具模型

 2009-12-19 00:00:00 来源:WEB开发网   
核心提示: CDT 模型元素及 IAdapter正如组成 Eclipse 工作台的资源那样,CDT 模块元素(ICModel、ICProject、ITranslationUnit 等)全都是 IAdaptable 接口的后代,构建基于 CDT 的编辑器,第 1 部分: C/C++ 开发工具模型(4),此接

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 元素受到影响时更新该模型。

上一页  1 2 3 4 5 6 7  下一页

Tags:构建 基于 CDT

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接