Eclipse Common Navigator Framework详解

"Common Navigator Framework (CNF) 是一个用于构建Eclipse中内容导航视图的框架,它允许开发者快速地将特定资源和模型集成到Eclipse环境中,并以树形结构展示。CNF起源于Rational Application Developer (RAD) v6.0项目,并在Eclipse 3.2版本中被采用。"
**1. Common Navigator Framework (CNF)**
CNF是一个设计用于创建和管理Eclipse工作台中导航视图的框架。它的主要目标是简化内容的呈现和交互,使得用户能以统一的方式浏览和操作各种类型的项目和文件。
**1.1 概述**
CNF提供了一套API和扩展点,使开发者能够自定义视图,显示和操作数据模型。它支持动态更新,这意味着当底层模型发生变化时,视图会自动反映这些变化。此外,CNF还支持拖放、链接编辑器、过滤器和向导等高级功能。
**1.2 Eclipse CNF**
- **文件处理结构**:CNF处理Eclipse工作台中的文件和项目结构,允许用户以树状视图查看和操作。
- **Project Explorer分解**:CNF可以被用来实现类似于Project Explorer的功能,提供对项目、文件和资源的层次化表示。
**2. Navigator**
- **概述**:Navigator是CNF的一个关键组件,它负责展示工作台中的资源。
- **扩展点**:CNF通过扩展点允许开发者定制内容提供者(Content Provider)、标签提供者(Label Provider)、触发点(Trigger Points)等。
- **Eclipse Navigator实现**:包括CommonViewer、NavigatorActionService、INavigatorContentService和LinkHelperService等组件,它们协同工作以提供完整的导航体验。
**3. Navigator Content Extensions**
- **概述**:这部分讨论如何扩展Navigator的内容,如定义内容提供者、标签提供者以及控制何时触发视图更新。
- **扩展点详解**:包括contentProvider、labelProvider、triggerPoints和possibleChildren等属性。
**4. Common Filters**
- **概述**:CNF支持过滤器,允许根据条件隐藏或显示某些项目。
- **Eclipse实现**:开发者可以创建自定义过滤器来适应特定需求。
**5. Common Wizards**
- **概述**:CNF提供了一个平台来集成向导,方便用户进行资源的创建和编辑。
- **Eclipse实现**:向导可以通过扩展点与CNF视图关联。
**6. Action Providers**
- **概述**:CNF允许定义自定义操作,增强视图的功能。
- **Eclipse实现**:开发者可以指定action类和ID,将这些操作绑定到视图的元素上。
**7. Drag and Drop Support**
- **概述**:CNF支持拖放操作,允许用户在视图之间移动资源。
- **Eclipse实现**:包括Drag和Drop的扩展点,使得视图可以响应用户的拖放行为。
**8. Link with Editor Support**
- **概述**:CNF提供了与编辑器联动的功能,当用户在视图中选择一个项目时,相应的编辑器会自动打开。
- **Eclipse实现**:扩展点允许开发者配置这一功能,确保视图和编辑器之间的同步。
CNF是Eclipse开发中的一个重要工具,它提供了丰富的功能和灵活性,使得开发者能够构建出功能强大且用户友好的资源导航视图。通过理解和利用CNF的各个组件和扩展点,开发者可以高效地定制Eclipse环境,满足特定项目的需求。
2024-11-25 上传
2024-11-25 上传
2024-11-25 上传
3818 浏览量
287 浏览量
798 浏览量

harryzhou6
- 粉丝: 0
最新资源
- VS2010环境Qt链接MySQL数据库测试程序
- daycula-vim主题:黑暗风格的Vim色彩方案
- HTTPComponents最新版本发布,客户端与核心组件升级
- Android WebView与JS互调的实践示例
- 教务管理系统功能全面,操作简便,适用于winxp及以上版本
- 使用堆栈实现四则运算的编程实践
- 开源Lisp实现的联合生成算法及多面体计算
- 细胞图像处理与模式识别检测技术
- 深入解析psimedia:音频视频RTP抽象库
- 传名广告联盟商业正式版 v5.3 功能全面升级
- JSON序列化与反序列化实例教程
- 手机美食餐饮微官网HTML源码开源项目
- 基于联合相关变换的图像识别程序与土豆形貌图片库
- C#毕业设计:超市进销存管理系统实现
- 高效下载地址转换器:迅雷与快车互转
- 探索inoutPrimaryrepo项目:JavaScript的核心应用