`
lggege
  • 浏览: 375486 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Eclipse内部属性事务机制

    博客分类:
  • RCP
阅读更多
org.eclipse.core.commands.common.EventManager
public abstract class EventManager {
	private transient ListenerList listenerList = null;
    ...
}

在EventManager里面存储了所有的监听对象.

 
   protected void firePropertyChange(final int propertyId) {
        Object[] array = getListeners();
        for (int nX = 0; nX < array.length; nX++) {
            final IPropertyListener l = (IPropertyListener) array[nX];
            try {
                l.propertyChanged(WorkbenchPart.this, propertyId);
            } catch (RuntimeException e) {
                WorkbenchPlugin.log(e);
            }
        }
    }


在属性发生改变的时候,需要调用firePropertyChange()方法,该方法会遍历所有的监听,并调用监听的处理事件propertyChanged()方法.

public interface IPropertyListener {
    public void propertyChanged(Object source, int propId);
}

IPropertyListener就只有一个方法,表示,需要处理由特定属性propId的改变去做的响应.


在JavaBean中也有这个概念:
java.beans.PropertyChangeSupport {
addPropertyChangeListener();
firePropertyChange();
}



其实,这本来就是JavaBean的概念. JavaBean的传统应用领域就是UI领域.
而,目前,由于过多的Web UI的开发,使用的都是不带属性的组件.

具体的应用列子可以见:
不用线程实现更改ViewPart的TitleImage
http://lggege.iteye.com/blog/173840

JavaBean组件,的属性分4类:
  •    简单类型, getter & setter & is
  •    索引类型, 指对一个数组的索引取值方法, 如 getValueFromArray(int index) {return this.valueArray[index]; }
  •    绑定类型, 就是PropertyChangeListener了, 就是UI领域应用最广.
  •    约束类型, 就是说 属性改变了,需要对这个属性改变监听的 认可,该属性才可以改变.
  •     与绑定类型区别,就是,绑定是改变后通知,而, 这个是改变前通知,并可否决改变.



分享到:
评论

相关推荐

    [反射机制]简单实现ORM

    【反射机制】是Java编程语言中的一个重要特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在本案例中,"简单实现ORM"是指通过反射机制来实现对象关系映射(Object-Relational Mapping)...

    spring-tx.rar

    《Spring-TX模块详解》 在Java开发领域,Spring框架无疑是最重要的工具之一,它提供了丰富的功能,极大地简化...通过在Eclipse中直接导入spring-tx源文件,开发者可以深入学习其内部实现,进一步提升自己的技术能力。

    hibernate3.6.1源码

    在本文中,我们将深入探讨Hibernate 3.6.1版本的源码,了解其内部工作原理以及关键组件的功能。 源码分析: 1. **对象关系映射(ORM)**:Hibernate的核心功能是实现ORM,它将Java类映射到数据库表,对象的属性...

    Android-一个精简的AndroidORM框架

    2. 属性映射:自动将Java对象的属性与数据库表的列对应起来,进行数据的保存和查询。 3. 查询接口:提供简单易用的API,允许开发者通过对象和方法调用来执行复杂的数据库查询,如CRUD(创建、读取、更新、删除)操作...

    JavaBean课件.rar

    3. **封装**:JavaBean的属性通过getter和setter方法进行封装,以保护内部状态。 4. **序列化**:JavaBean通常实现Serializable接口,允许对象的状态被序列化和反序列化。 5. **事件处理**:JavaBean可能支持事件...

    WEBX学习手册

    WEBX是阿里巴巴内部广泛使用的开源Web开发框架,它的设计目标是简化企业级应用的开发,提供了一套高效的MVC(模型-视图-控制器)架构。WEBX结合了Java的强类型特性和Web开发的灵活性,为开发者提供了便捷的开发体验...

    Hibernate源代码项目

    本项目旨在通过对Hibernate源代码的深入剖析,揭示其内部机制,帮助开发者更高效地使用和定制Hibernate。 1. **源码解析**: Hibernate的源代码组织结构清晰,包含核心API、持久化层、查询语言(HQL)等多个模块。...

    三大框架的注解演示案例

    【标题】:“三大框架的注解演示案例” 在IT领域,三大框架通常指的是Spring、Struts和Hibernate,它们是Java Web...同时,结合源码分析和相关工具,将进一步加深对框架内部机制的理解,为日常开发带来显著的便利。

    Hibernate 工作原理图Hibernate 工作原理图

    本文将深入探讨 Hibernate 的工作原理,帮助读者更好地理解其内部机制。 #### 二、Hibernate 架构解析 ##### 2.1 核心组件 Hibernate 的核心组件包括 Session、SessionFactory、Configuration 等,这些组件在 ...

    xwork-2.1.2-all-src.zip

    "xwork-2.1.2-all-src.zip"这个压缩包提供了xwork-2.1.2的完整源代码,对于开发者来说,这是一个宝贵的资源,可以深入理解其内部机制并进行定制开发。 首先,我们来看“xwork-2.1.2-sources.jar”文件。这是一个...

    Hibernate官方网站源代码调试

    本文将带你一起探索Hibernate的源码世界,通过实际的调试过程,提升对框架内部机制的认识。 首先,我们需要准备环境,这包括安装Java开发工具(JDK)、集成开发环境(IDE,如Eclipse或IntelliJ IDEA)、源码版本的...

    hibernate_____实现ssh2用的hibernate

    源码分析有助于理解框架内部的工作机制。 “工具”可能是指开发者用来辅助开发和调试的工具,如IDE(集成开发环境,如Eclipse或IntelliJ IDEA)、版本控制系统(如Git)、调试器和日志工具(如Log4j)。这些工具...

    spring+hibernate+webwork相关配置

    - 通过阅读框架源码,可以更深入理解其内部机制,有助于问题排查和性能优化。 综上所述,这个配置文件的整合涉及到多个层面,包括框架的独立配置、相互间的协作配置,以及整个Java Web应用的构建和运行环境。理解...

    java学习路线.docx

    - **封装:** 封装是隐藏对象的属性和实现细节,仅对外提供公共的访问方法。学习如何通过访问修饰符(public、protected、private)来实现封装。 - **继承:** 继承是指一个类继承另一个类的特性和行为。学习如何...

    我的hibernate

    《我的Hibernate:深入理解与...通过对源码的挖掘,我们可以更深入地了解其内部机制;借助工具,我们可以更高效地进行开发。理解并掌握Hibernate,无疑将使我们在Java开发中如虎添翼,提升项目的可维护性和开发效率。

    hibernate3.2之helloword

    源码分析有助于开发者深入理解Hibernate内部机制,而工具部分则可能涵盖如何使用Eclipse、IntelliJ IDEA等IDE进行高效开发。 【文件名称列表】中的"Hibernate1"可能代表一系列教程文件的首部分,可能包含如下内容:...

    菜鸟快速运行第一个hibernate

    这些类通常包含属性,每个属性对应数据库表的一列。使用注解(@Entity、@Table、@Id等)来指定它们与数据库的关系。 4. **SessionFactory和Session**:SessionFactory是Hibernate的核心对象,它是线程安全的,负责...

    struts-xwork-core源码

    在这个压缩包中,包含了该核心库的源代码,对于学习和理解Struts2的工作原理及其内部机制极具价值。 在深入探讨Struts-xwork-core源码之前,我们需要了解一些基本概念。Struts2是一个基于MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics