`

Eclipse资源管理(四)

 
阅读更多

eclipse资源监听

 

1.资源监听必须实现IResourceChangeListener接口

 

IWorkspace workspace = ResourcesPlugin.getWorkspace();
   IResourceChangeListener listener = new IResourceChangeListener() {
      public void resourceChanged(IResourceChangeEvent event) {
         System.out.println("Something changed!");
      }
   };
   workspace.addResourceChangeListener(listener);

   //... some time later one ...
   workspace.removeResourceChangeListener(listener);

 

 

添加资源监听:IWorkspace.addResourceChangeListener(Listener)

删除资源监听:IWorkspace.removeResourceChangeListener(Listener)

 

 

2.创建资源的样本

 

IWorkspace workspace = ResourcesPlugin.getWorkspace();
   final IProject project = workspace.getRoot().getProject("My Project");
   IWorkspaceRunnable operation = new IWorkspaceRunnable() {
      public void run(IProgressMonitor monitor) throws CoreException {
         int fileCount = 10;
         project.create(null);
         project.open(null);
         for (int i = 0; i < fileCount; i++) {
            IFile file = project.getFile("File" + i);
            file.create(null, IResource.NONE, null);
         }
      }
   };
   workspace.run(operation, null);
 

 

 

3.一个简单的完整的资源监听实现类

 

public class DocIndexUpdater implements IResourceChangeListener {
      private TableViewer table; //assume this gets initialized somewhere
      private static final IPath DOC_PATH = new Path("MyProject/doc");
      public void resourceChanged(IResourceChangeEvent event) {
         //we are only interested in POST_CHANGE events
         if (event.getType() != IResourceChangeEvent.POST_CHANGE)
            return;
         IResourceDelta rootDelta = event.getDelta();
         //get the delta, if any, for the documentation directory
         IResourceDelta docDelta = rootDelta.findMember(DOC_PATH);
         if (docDelta == null)
            return;
         final ArrayList changed = new ArrayList();
         IResourceDeltaVisitor visitor = new IResourceDeltaVisitor() {
            public boolean visit(IResourceDelta delta) {
               //only interested in changed resources (not added or removed)
               if (delta.getKind() != IResourceDelta.CHANGED)
                  return true;
               //only interested in content changes
               if ((delta.getFlags() & IResourceDelta.CONTENT) == 0)
                  return true;
               IResource resource = delta.getResource();
               //only interested in files with the "txt" extension
               if (resource.getType() == IResource.FILE && 
				"txt".equalsIgnoreCase(resource.getFileExtension())) {
                  changed.add(resource);
               }
               return true;
            }
         };
         try {
            docDelta.accept(visitor);
         } catch (CoreException e) {
            //open error dialog with syncExec or print to plugin log file
         }
         //nothing more to do if there were no changed text files
         if (changed.size() == 0)
            return;
         //post this update to the table
         Display display = table.getControl().getDisplay();
         if (!display.isDisposed()) {
            display.asyncExec(new Runnable() {
               public void run() {
                  //make sure the table still exists
                  if (table.getControl().isDisposed())
                     return;
                  table.update(changed.toArray(), null);
               }
            });
         }
      }
   }
 

 

分享到:
评论

相关推荐

    OpenExplorer(eclipse资源管理器插件)

    eclipse的一个插件,可以在eclipse中快速的打开选中的某个文件在电脑中的位置,直接定位到具体的文件夹,压缩文件包含了4.4以上版本和4.4一下版本的JAR包

    基于MySQL和Eclipse的人力资源管理系统毕业设计实现

    本毕业设计主要研究人力资源管理系统的设计与实现。系统采用MySQL数据库存储人力资源数据,利用Eclipse开发平台和JSP、Servlet等技术开发。系统主要包括人员信息管理、招聘管理、离职管理、薪资管理、培训管理、绩效...

    Eclipse插件开发培训_资源管理(入门).ppt

    Eclipse插件开发培训_资源管理(入门).ppt

    人力资源管理系统

    (毕业设计项目)人力资源管理系统,包括档案录入、用户管理、薪酬管理、培训管理、招聘管理等模块。代码、数据库表代码齐全,导入进去修改下连接的数据库即可使正常用

    Eclipse 浏览目录插件

    Eclipse 4 插件,用于在资源管理器中打开活动窗口文档所在的文件夹,或打开命令行。安装:直接放置于 Eclipse 的 dropins 目录下,重启后工具栏及左键菜单均有Smart Explore条目。

    基于JavaWeb的企业人力资源管理系统【项目源码+数据库脚本】(毕设)

    本项目是一套基于JavaWeb的企业人力资源管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 ...

    eclipse jetty插件安装(离线版)

    使用方法:解压缩,直接复制到eclipse安装目录的dropins文件夹下面,重启就可以了。 初次使用时在一个web项目上右键run as——run configuration

    jetty 9.2.24

    jetty服务器,9.2版本适合java7+开发环境。 Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器。 尽管网页服务器通常用来为人们呈现文档,但是... Jetty作为Eclipse基金会的一部分,是一个自由和开源项目。

    Eclipse插件开发培训_资源管理(进阶).ppt

    Eclipse插件开发培训_资源管理(进阶).ppt

    Java学生信息管理系统(eclipse+MySQL)

    本资源为Java学生信息管理系统,实现功能如下: 1、系统的登录和注册 2、系统分为管理员,学生,教师三个身份,管理员和教师有权对学生信息进行增删改查操作,学生只能进行查询操作 3、学生成绩信息的增删改查操作 ...

    网络,服务,eclipse

    NULL 博文链接:https://jarip.iteye.com/blog/1841219

    韩顺平 学生管理系统 Eclipse+sqlServel源码

    这不是PDF版本的。...是Eclipse项目源码和sqlServer项目源码。并附有图文教程,对新手学习有帮助。 另外,我原先上传的资源本来说不要分数的,结果不小心设置了是1分,然后怎么也改不了,也不能再次上传,特别抱歉

    图书馆管理系统Eclipse-专业指导文档类资源

    很好的Eclipse做的图书管理系统噢~ 很好的Eclipse做的图书管理系统噢~ 很好的Eclipse做的图书管理系统噢~ 很好的Eclipse做的图书管理系统噢~

    基于Eclipse+Java+Swing+Mysql图书信息管理系统

    系统介绍 该系统实现了查看图书列表、新增图书信息、删除图书...运行环境:eclipse、idea、jdk1.8 详见:https://blog.csdn.net/qq_33037637/article/details/125583597 系统经多次测试,运行无误,请大家放心下载。

    eclipse RCP 模仿win7资源管理器地址栏功能

    NULL 博文链接:https://c-zhiwu.iteye.com/blog/1852077

    eclipse easyExplorer+OpenExplorer插件

    1.eclipse easyExplorer插件方便打开项目所在的资源管理器中的位置。Eclipse4.4以上版本不能使用easyExplorer,采用OpenExplorer。 2.如果想在Ecipse里打开目录,一直用easyExplorer,可是现在版本升级了...

    人力资源管理系统SSH+MySQL技术

    通过人力资源管理系统可使管理者快速高效地完成企业日常事务中的人事工作,降低人力资源管理的成本,使管理者能集中精力实现企业战略目标。人力资源管理系统的具体目标如下: 对企业人力资源管理的基本信息进行管理...

    Eclipse开发工具使用指南

    Eclipse 是替代IBM Visual Age for Java(以下简称IVJ)的下一代IDE开发环境,但它未来的目标不仅仅是成为专门开发Java程序的...可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse的潜力所在。

    HRMS.rar_HRMS SSH_SSH 管理系统JS_ssh eclipse_ssh sqlserver_人力资源管理

    HRMS人力资源管理系统,编译环境Eclipse,jdk,tomcat,sqlserver,所需技术ssh,css,jsp,java,js,可以实现大致的人力资源管理的全部功能!

Global site tag (gtag.js) - Google Analytics