`

eclipse中扩展点的添加和删除

 
阅读更多
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); 
} 
 
分享到:
评论

相关推荐

    Eclipse权威开发指南2.pdf

    9.2 扩展和扩展点入门...... 217 9.3 实现插件的基本步骤...... 220 9.3.1 声明自己的插件清单..... 222 9.3.2 定义自己的插件类..... 225 9.3.3 安装自己的插件..... 226 9.4 使用插件开发环境...... 227 9.4.1...

    Eclipse权威开发指南3.pdf

    9.2 扩展和扩展点入门...... 217 9.3 实现插件的基本步骤...... 220 9.3.1 声明自己的插件清单..... 222 9.3.2 定义自己的插件类..... 225 9.3.3 安装自己的插件..... 226 9.4 使用插件开发环境.........

    Eclipse权威开发指南1.pdf

    9.2 扩展和扩展点入门...... 217 9.3 实现插件的基本步骤...... 220 9.3.1 声明自己的插件清单..... 222 9.3.2 定义自己的插件类..... 225 9.3.3 安装自己的插件..... 226 9.4 使用插件开发环境.........

    代码统计插件 eclipse plugin java

    选择一个统计的目录,点del键时可删除这个统计 结点 6、单击统计结果表格的表头时,会按正反序进行排序,文件名按字母顺序排序;其他统计 数字按数字大小进行排序! 关于扩展的使用方法: 扩展就是通过继承base...

    Eclipse_Swt_Jface_核心应用_部分19

    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 ...

    Eclipse开发分布式商城系统+完整视频代码及文档

    删除购物车商品.avi │ 09.购物车作业.avi │ 10.创建订单服务工程.avi │ 11.创建订单服务-分析.avi │ 12.创建订单服务-Service.avi │ 13.创建订单服务-完成.avi │ 14.展示订单确认页面.avi │ 15.生成订单处理....

    办公自动化OA系统源码

    有BBS管理权可以添加桌面公告和版块公告,版主可以自由添加版块和版块公告。BBS的功能同常见的,但无须登录; 客户管理(客户接触点的管理) 我的客户:显示由我负责的客户信息,并添加接触纪录(电话、拜访等) ...

    Java通讯录管理系统课程设计报告.docx

    其他信息模块 包括添加其他人信息、修改其他人信息、删除其他人信息和查询其他人信息4个功能,其功能结构如图6所示。 根据上述功能规划,可以对各功能模块设计功能结构图。 图6 其他信息管理模块功能结构图 系统结构...

    本科毕业设计开题报告(食得客快餐店订餐系统的设计与实现)

    是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,...

    Java通讯录管理系统课程设计报告(1).docx

    其他信息模块 包括添加其他人信息、修改其他人信息、删除其他人信息和查询其他人信息4个功能,其功能结构如图6所示。 根据上述功能规划,可以对各功能模块设计功能结构图。 图6 其他信息管理模块功能结构图 系统结构...

    《Java-web程序设计》教案.doc

    基本上可以在所有平台上的任意环境中开发,在任意环境中进行 系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。 强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器 进行...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics