E4 RCP 属性改变监听器模式

开场白:

几次想写关系E4项目的文章,但是几次都因为语言组织不顺畅,愤怒之下,直接把网页给关。导致一直没写成。这次坚持吧。文笔有点烂,哈哈。

E4的介绍我这里就不做多余的介绍了,网上面一大堆,想了解的可以去看看。推荐一个网站:http://www.vogella.de/eclipse.html 许多可以借鉴的地方。

E4的安装方法在http://www.vogella.de/eclipse.html中也是有的,我就不重复造轮子啦。

其实RCP 属性改变监听器模式网上一大堆,但是这个东西确实起到了很大的作用,也算是自己E4 RCP文章的一个开始吧。

正题:

属性改变监听器模式,从字面意思上的理解可以理解为当一方属性改变后,另一方做出反应。

首先创建属性改变监听器模式的一个插件,提供注册、删除、以及传播。代码如下:

// A public method that allows listener registration
	public void addPropertyChangeListener(IPropertyChangeListener listener) {
		if (!myListeners.contains(listener))
			myListeners.add(listener);
	}

	// A public method that allows listener registration
	public void removePropertyChangeListener(IPropertyChangeListener listener) {
		myListeners.remove(listener);
	}
	
	public void initAndInvoke(String property, Object obj) {
		// Post Invocation, inform listeners
		for (Iterator<IPropertyChangeListener> iter = myListeners.iterator(); iter.hasNext();) {
			IPropertyChangeListener element = (IPropertyChangeListener) iter.next();
			element.propertyChange(new PropertyChangeEvent(this,property, null, obj));

		}
	}

其实说白了,就是将需要进行交互的界面保存在一个集合中,并且实现IPropertyChangeListener接口,在传播时,遍历这个集合,调用它们所实现的接口方法。

传播消息时,需要一个标识,例如标识为:'张三可以吃饭了',通知所有人,但是只有张三可以吃饭。

   又例如标识为:'大家可以吃饭了',通知所有人,那么所有人都可以吃饭了。

并且在传播时,可以另带参数:就上面的例子,张三可以吃饭了,并且给他加个鸡腿。initAndInvoke('张三可以吃饭了','鸡腿');

1.创建插件。提供注册,删除,传播方法。

2.需要传播的视图实现IPropertyChangeListener接口,注册视图本身。

3.传播消息。


并不是所有视图都需要实现IPropertyChangeListener接口,这样说吧:传播接收方需要注册自己才能接收到消息,传播方就没必要注册自己了。


本来想写一个本来的小教训的,但是突然发现我这个教训有点低级,就不写了,呵呵。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值