`
jackini
  • 浏览: 34064 次
社区版块
存档分类
最新评论

监听workspace的变化

阅读更多

Workspace中发生的大部分变化会被通知给监听Resource变化的Listener,包括:文件、文件夹或工程所发生的创建、删除和修改。Listener还能够注册一些特殊的事件,比如:删除或关闭工程之前、以及workspace自动创建之后等。要注册一个监听resource变化的Listener,操作很简单:

  1. IWorkspace workspace = ResourcesPlugin.getWorkspace();   
  2.    IResourceChangeListener rcl = new IResourceChangeListener() {   
  3.       public void resourceChanged(IResourceChangeEvent event) {   
  4.       }   
  5.    };   
  6.    workspace.addResourceChangeListener(rcl);   

记得在不需要这些Listener之后,要删除它们:

  

  1. workspace.removeResourceChangeListener(rcl);   

从IWorkspace.addResourceChangeListener的javadoc可以获得更多关于各种resource变化事件的信息,以及在使用它们时的限制。

需要注意的是,在编写监听resource变化的Listener时,保持程序的性能非常重要。每个使workspace发生变化的操作都会通知监听器,所以加裁的每个监听器都会造成性能的下降。当监听器需要执行耗费大量资源的处理时,可以考虑把其部分工作剥离出来,放到其它的线程中。

java 代码

java 代码
分享到:
评论
2 楼 illhan 2007-03-21  
比如删除一个项目的话,何时注册listener呢!另外如何知道是项目被删除了,还是删除项目中的其他资源?
1 楼 Jamsa 2007-03-01  
那这个资源修改事件是在什么情况下会发生呢?

相关推荐

    拆解Launcher中的WorkSpace实现左右滑动效果

    为了实现滑动效果,`Workspace`需要监听用户的触摸事件,并根据滑动方向来切换屏幕。 1. **触摸事件处理**:在`Workspace`类中,你需要重写`onTouchEvent`方法来处理触摸事件。当用户滑动时,需要计算滑动距离并...

    android 仿workspace

    在Android平台上,"仿workspace"通常指的是模仿桌面工作区的行为,比如在iOS设备上的主屏幕那样,用户可以通过拖动图标来重新排列应用快捷方式,甚至实现类似3D效果的滚动和循环滑动。这个项目可能涉及到以下几个...

    workspace_record_video.zip

    SurfaceHolder接口允许我们监听Surface的变化,以便在准备就绪时开始录制。 3. **手势检测与事件处理**:为了让用户能够长按录制,我们需要监听触摸事件。在Activity或Fragment中,可以通过重写onTouchEvent()方法...

    workspace_xlh_java_fairlyzju_贪吃蛇_clothesu42_

    3. **事件处理**:蛇的移动、食物的生成、碰撞检测等都需要监听用户的输入和游戏状态变化。 4. **多线程**:为了实现游戏的实时性,可能需要一个线程负责更新游戏状态,另一个线程负责渲染界面。 5. **数据结构**:...

    watsonwork-webshot-bot:适用于IBM Watson WorkSpace的Webshot机器人

    此外,这可能还包含了自动化报告生成、监控特定网页变化等功能,提高工作效率。 【标签解析】 "JavaScript"是这个项目的主要编程语言。JavaScript是一种广泛使用的、轻量级的解释型编程语言,尤其在网络开发中扮演...

    4.0 launcher源码

    它通过`ContentResolver`监听数据变化,并调用`onDataSetChanged()`来通知UI更新。 2. `Workspace`: `Workspace`类实现了滑动屏幕的效果,通过`onTouchEvent()`处理触摸事件,`addScreen()`和`removeScreen()`管理...

    android Launcher源码

    它启动后,初始化各种组件,如DragLayer、Workspace和AppGrid,并监听系统广播,以便在系统变化时更新界面。 在Android 4.0的Launcher源码中,我们可以看到以下关键技术点: 1. **IntentFilters**:Launcher使用...

    3.2调整工作区1

    接下来,编写一个事件监听器来响应窗口的大小变化,当窗口大小改变时,更新`blocklyDiv`的位置和大小以匹配`blocklyArea`: ```javascript var blocklyArea = document.getElementById('blocklyArea'); var ...

    OpenDDS-latest.pdf

    监听器则是一系列回调函数的集合,用于处理各种事件,如主题状态变化、读写器状态变化等。 **OpenDDS的架构** OpenDDS采用了一种模块化的架构,允许开发者根据需求启用或禁用某些特性,比如内置主题支持和符合性...

    Qt5.10检测系统休眠

    在上面的代码中,我们创建了一个`WorkspaceObserver`类,它监听`sleeping`键值的变化。当系统进入休眠状态时,`systemDidEnterSleep`信号会被发射;当系统从休眠状态唤醒时,`systemDidWakeUp`信号会被发射。 在Qt...

    Android GPS的小案例

    通过这个小案例,开发者可以学习到如何在Android应用中设置和使用GPS,如何监听位置变化,以及如何解析和使用`Location`对象中的信息。同时,这也提供了一个基础模板,可以根据需求进行扩展,比如添加地图显示、路径...

    AJAX例子(全套例子,由浅入深)

    3. **监听状态变化**: 使用XMLHttpRequest对象的onreadystatechange事件监听请求状态。当readyState属性值变为4(表示请求已完成)且status为200(表示成功)时,说明数据已获取。 4. **处理返回数据**: 数据...

    嵌入式实验报告

    - 按键控制图片大小变化。 - 长按图片全屏展示。 ##### 5.2 原理分析及方案设计 - **软件方案设计**: - 在主Layout文件中添加Gallery组件。 - 创建BaseAdapter类,定义ImageAdapter。 - 在主类中关联...

    android2.3 launcher分析

    - 监听外部数据的变化,当数据发生变化时,更新数据模型并同步到数据库。 - 提供一系列回调函数,在数据发生变动时被调用,用于通知视图进行更新。 `LauncherModel`还使用了一种特殊的加载机制,即通过消息机制开启...

    WebSphere Application Server V6

    - 启动快速部署会话以监听EAR或模块文件的变化。 4. **管理自动安装项目**: - 放置应用程序文件或模块文件到自动安装项目中。 #### 五、总结 WebSphere Application Server V6的自动安装功能极大地简化了应用...

    jackrabbit内容仓库的实例(两个工程)

    - 事件机制:Jackrabbit支持事件监听,允许应用程序对仓库中的变化作出反应。 - 版本管理:JCR支持版本控制,允许回滚到之前的版本。 通过上述步骤,你可以逐步掌握Jackrabbit的内容仓库管理和开发,为更深入的...

    Jackrabbit API

    -事件监听:Jackrabbit 提供事件监听机制,允许程序订阅并响应内容仓库中的变化,如节点的添加、删除或修改。 - 导入导出:API 提供了导入和导出功能,方便将内容在不同的JCR实例之间迁移。 - 安全性:Jackrabbit...

    android launcher2源码

    同时,源码中还包括对各种服务和广播接收器的注册,用于监听系统状态变化和用户行为。 2. **UI布局**: Android桌面由一系列可以滑动的工作区页面构成,每个页面上分布着应用快捷方式和文件夹。在`_workspace.xml`...

    ESB应用Hello_World_File_Action

    在Hello World File Action示例中,它监视指定的目录(如`F:\Workspace\Eclipse-JEE\helloworldfile\file\input`)以检测具有特定扩展名(如`.txt`)的新文件或修改文件。 2. **消息队列**:当监测到文件变化后,...

    前端框架vue.js,自己写的初入门

    6. **计算属性与侦听器**:用于创建基于其他数据动态计算的值,以及监听数据变化并执行相应操作。 7. **生命周期钩子**:提供了多个生命周期钩子函数,如beforeCreate、created、beforeMount、mounted等,允许开发者...

Global site tag (gtag.js) - Google Analytics