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

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