GEF基础入门-如何实现属性视图

本文介绍了两种在GEF开发中实现属性视图的方法:一是让Model实现IPropertySource接口;二是通过Adapter模式返回IPropertySource实例。同时讨论了属性验证及多选时属性视图的控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知,对于RCP开发来说,属性视图是想到重要的一个东西。那么对于GEF开发来说说如何实现属性视图呢。本文将介绍两种方式来实现属性视图。

首先介绍第一种,也是最常用的一种方式。

(1). 大家都知道对于GEF开发来说,GEF的MVC架构,model层是非常重要的,属性视图也是可以在model层实现的,首先让自己定义的model实现IPropertySource接口,实现IPropertySource的getPropertyDescriptors()、getPropertyValue(Object id)和setPropertyValue(Object id, Object value)。其中getPropertyDescriptors()是你要定义的那些属性,getPropertyValue(Object id)是初始化的时候要加载的你定义的属性的值,setPropertyValue(Object id, Object value)是你改变这些之后,在这个方法里取对应地改变model中的值。这是第一种方法。也是最常用的方法。

(2).第二种方法是在你的要展示属性视图的model的控制器中的

public Object getAdapter(Class key) {
if (key == IPropertySource.class){
//返回一个继承自IPropertySource的对象
}
return super.getAdapter(key);
}

这种方式的最大的一个好处就是如果你的这个模型是可扩展的,那么可以通过这种方式,很方便的实现。


还有就是几个比较常见的属性类,TextPropertyDescriptor 文本属性描述器,每种描述器都可以给它设置校验器,来决定你的属性修改是否是正确的。其中描述器要实现ICellEditorValidator接口,如((TextPropertyDescriptor) descriptors[1]).setValidator(new PropertyNumberValidator())其中PropertyNumberValidator就实了 ICellEditorValidator接口,当然在我们自己实现接口的类中,我们也可以自己定一些属性,如下拉选择,下拉列表等。setCategory()是用来对属性进行分类的。


可能还有一种需求就是,某些不同的模型有一些相同的属性,我们要手动控制,有哪些模型是我们多选时属性视图里可以展示出来,ICellEditorValidator的setAlwaysIncompatible(true)表示多选模型时要展示出来的属性。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值