ExtensionTracker是IExtensionTracker的实现,用于跟踪插件是否为活动状态,由eclipse官方提供的工具类,eclipse的官方UI组件对IExtensionTracker有自己的实现。如下为例子:
public void start(BundleContext context) throws Exception {
IExtensionRegistry reg = Platform.getExtensionRegistry();
IExtensionPoint ep =
reg.getExtensionPoint(MY_EXTENSION_POINT_ID);
tracker = new ExtensionTracker(reg);
IFilter filter =
ExtensionTracker.createExtensionPointFilter(ep);
tracker.registerHandler(this, filter);
IExtension[] extensions = ep.getExtensions();
for (int i = 0; i < extensions.length; ++i)
addExtension(tracker, extensions);
}
public void stop(BundleContext context) throws Exception {
if (tracker != null) {
tracker.close();
tracker = null;
}
}
public void addExtension(IExtensionTracker tracker,
IExtension extension) {
IConfigurationElement[] configs =
extension.getConfigurationElements();
for (int i = 0; i < configs.length; ++i) {
// use configuration properties for something
// ...
MyDelegate delegate = (MyDelegate)
configs.createExecutableExtension(CLASS_ATTR);
// do what you need to do
// ...
delegates.add(delegate);
// register association between object and extension
// with the tracker
tracker.registerObject(extension, delegate,
IExtensionTracker.REF_WEAK);
}
}
public void removeExtension(IExtension extension,
Object[] objects) {
// stop using objects associated with
// the removed extension
for (int i = 0; i < objects.length; ++i)
delegates.remove(objects);
}
分享到:
相关推荐
9.2 扩展和扩展点入门...... 217 9.3 实现插件的基本步骤...... 220 9.3.1 声明自己的插件清单..... 222 9.3.2 定义自己的插件类..... 225 9.3.3 安装自己的插件..... 226 9.4 使用插件开发环境...... 227 9.4.1...
9.2 扩展和扩展点入门...... 217 9.3 实现插件的基本步骤...... 220 9.3.1 声明自己的插件清单..... 222 9.3.2 定义自己的插件类..... 225 9.3.3 安装自己的插件..... 226 9.4 使用插件开发环境.........
9.2 扩展和扩展点入门...... 217 9.3 实现插件的基本步骤...... 220 9.3.1 声明自己的插件清单..... 222 9.3.2 定义自己的插件类..... 225 9.3.3 安装自己的插件..... 226 9.4 使用插件开发环境.........
选择一个统计的目录,点del键时可删除这个统计 结点 6、单击统计结果表格的表头时,会按正反序进行排序,文件名按字母顺序排序;其他统计 数字按数字大小进行排序! 关于扩展的使用方法: 扩展就是通过继承base...
2.1 下载和安装Eclipse 11 2.1.1 Eclipse下载页面介绍 11 2.1.2 下载Eclipse 12 2.1.3 安装Eclipse语言包 14 .2.1.4 在不同的语言中切换 15 2.2 直接获取SWT工具包 16 2.3 下载和安装Visual Editor 17 ...
删除购物车商品.avi │ 09.购物车作业.avi │ 10.创建订单服务工程.avi │ 11.创建订单服务-分析.avi │ 12.创建订单服务-Service.avi │ 13.创建订单服务-完成.avi │ 14.展示订单确认页面.avi │ 15.生成订单处理....
有BBS管理权可以添加桌面公告和版块公告,版主可以自由添加版块和版块公告。BBS的功能同常见的,但无须登录; 客户管理(客户接触点的管理) 我的客户:显示由我负责的客户信息,并添加接触纪录(电话、拜访等) ...
其他信息模块 包括添加其他人信息、修改其他人信息、删除其他人信息和查询其他人信息4个功能,其功能结构如图6所示。 根据上述功能规划,可以对各功能模块设计功能结构图。 图6 其他信息管理模块功能结构图 系统结构...
是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,...
其他信息模块 包括添加其他人信息、修改其他人信息、删除其他人信息和查询其他人信息4个功能,其功能结构如图6所示。 根据上述功能规划,可以对各功能模块设计功能结构图。 图6 其他信息管理模块功能结构图 系统结构...
基本上可以在所有平台上的任意环境中开发,在任意环境中进行 系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。 强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器 进行...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...