- 浏览: 2469065 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
FROM:http://www.rcp.org.cn/bbs_topic.do?forumID=8&postID=7
这部分是Eclipse实现的比较复杂费解的一部分,我们知道, Eclipse通过property sheet来显示某个对象的现实的时候通常涉及以下几个类:
IPropertySource: 代表其属性要被显示的类,它会提供一个IPropertyDescripter列表,描述它有哪些属性要被显示。比如我们的“主机”。
IPropertyDescripter: 它描述了IProertySource每个属性的具体信息,例如类型和显示在property sheet上的属性名称,它也肩负着从IProertySource取值的责任。
IPropertySourceProvider:由property sheet调用,提供IProertySource作为其输入。
然而对于EMF的实现,有一套于上述接口类似的另外的接口,功能也类似:
IItemPropertySource 相当于IPropertySource
IItemPropertyDescriptor 相当于IPropertyDescripter
AdapterFactoryContentProvider 相当于IPropertySourceProvider
为什么这样做以及它如何做到的将在以后祥述。
Item Provider实现了IItemPropertySource,并且重写了其父类的方法getPropertyDescriptors():
java 代码
- public List getPropertyDescriptors(Object object) {
- if (itemPropertyDescriptors == null) {
- super.getPropertyDescriptors(object);
- addNamePropertyDescriptor(object);
- addBandPropertyDescriptor(object);
- addYearPropertyDescriptor(object);
- addNetTypePropertyDescriptor(object);
- addPricePropertyDescriptor(object);
- addCommentsPropertyDescriptor(object);
- add功能PropertyDescriptor(object);
- add配件PropertyDescriptor(object);
- }
- return itemPropertyDescriptors;
- }
这个方法调用了其他几个生成的方法来创建ItemPropertyDescritpor,并且把它添加到itemProertyDescritptors列表中。默认情况下,所有的属性和非包含(不作为子节点显示的)的reference都将作为其属性被显示在propery sheet上。
下面是一个具体的方法:
java 代码
- protected void addNamePropertyDescriptor(Object object) {
- itemPropertyDescriptors.add
- (new ItemPropertyDescriptor
- (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
- getResourceLocator(),
- getString("_UI_主机_name_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_主机_name_feature", "_UI_主机_type"),
- MobilesPackage.eINSTANCE.get主机_Name(),
- true,
- ItemPropertyDescriptor.GENERIC_VALUE_IMAGE));
- }
它简单的通过构造器new了一个ItemPropertyDescriptor,它的构造器的参数包括:
· 创建Item provider的adapter factory或者它的root。
· 该属性在显示时的属性名,这也是它的ID。
· 属性的描述,当属性栏被选中时会显示在状态条里。
· 属性的feature。
· 是否允许被编辑。
· 属性的图标。
属性名和描述都是从配置文件中读出来的以支持国际化,比较有趣的是属性的描述的读取:
java 代码
- getString("_UI_PropertyDescriptor_description", "_UI_主机_name_feature", "_UI_主机_type")
可以从plugin.property文件中分别读出这三个key的value:
_UI_PropertyDescriptor_description = The {0} of the {1}
_UI_\u4e3b\u673a_name_feature = Name
_UI_\u4e3b\u673a_type = \u4e3b\u673a
EMF用java.text.MessageFormat来读取_UI_PropertyDescriptor_description,{0}代表着_UI_主机_name_feature的值,{1}代表着_UI_主机_type的值。也就是说最后的结果会是:The Name of the 主机。
默认情况下所有的属性和非包含的reference都是可以编辑的,你可以通过修改ecore里的changeable属性来设置。
属性的图标将决定于它的类型,而非包含的reference的图标将由property descriptor找到reference对象的adapter,由它找到reference的label provider然后调用getImage()方法获得。
除了getPropertyDescriptors(),IItemPropertySource还包含其他两个方法,它们都由父类实现。第一个,getPropertyDescriptor(),它根据参数中传来的feature id返回特定的property descriptor,其实就是遍历getPropertyDescriptors()返回的列表找到第一个id相同的。另一个getEditableValue(),返回被遍记的值,你可以隐藏一部分不想被编辑的值。通常并不需要,所以缺省的实现对值没有做任何改变。
如果你希望添加更多的属性,你可以修改getPropertyDescriptors()方法。通过传给ItemPropertyDescriptor构造器的参数,你可以控制属性的名称,描述,图标,你甚至可以自己继承PropertyDescriptor,修改AdapterFactoryContentProvider来实现自己需要的属性编辑框,比如对于日期属性,将弹出一个calendar共用户选择。具体方法也将在以后的文章中描述。
发表评论
-
Java程序员25个必备的Eclipse插件
2012-01-12 22:36 21924原文:http://www.fromdev.com/2012/ ... -
关于插件更新安装的错误
2007-12-21 20:12 2208在更新插件的时候出现这样的错误: Unable to comp ... -
最近做eclipse branding, features的一些经验
2007-12-16 01:24 4526知道eclipse的splash怎么做 ... -
GEF学习笔记
2007-12-07 20:20 4150GEF以前学习过, 而且还 ... -
SWT布局深入学习
2007-11-30 23:00 7938以下内容是学习"The Definitive Gui ... -
Eclipse Action 深入学习笔记(3)
2007-11-25 17:59 4078filter元素是用来指定当 ... -
Eclipse Action 深入学习笔记(2)
2007-11-25 17:14 5200Object Action 这种Action是跟弹出的上下文菜 ... -
Eclipse Action 深入学习笔记(1)
2007-11-25 17:07 7662以前做插件用到的ActionSet都只是依葫芦画瓢,没有真正理 ... -
JFace Text Editor完全掌握之终极指南(4)
2007-11-24 17:08 5669错误标识(Error Marking) Error Marki ... -
JFace Text Editor完全掌握之终极指南(3)
2007-11-24 16:56 5498内容大纲 之所以要给编 ... -
JFace Text Editor完全掌握之终极指南(2)
2007-11-24 16:53 6722最后一步就是实现各种功能 语法高亮 首先我们要实现的是语法高亮 ... -
JFace Text Editor完全掌握之终极指南(1)
2007-11-24 16:17 9984JFace Text Editor是JFace里面一个功能强大 ... -
最近的Eclipse plugin开发总结
2007-11-24 11:30 4935List控件没有提供addDblClickListener方法 ... -
eclipse3.3关于JavaFileEditorInput兼容性问题的解决
2007-11-24 11:22 4667在eclipse3.3中,JavaFileEditor ... -
Eclipse WTP Projects Facets实战指南(2)
2007-11-21 21:13 5247修饰工作 给facet在选择列表中添加图标 格式如下: xml ... -
Eclipse WTP Projects Facets实战指南(1)
2007-11-21 20:21 9582这个文章基本是"Building Project F ... -
也说关于WizardPage的动态生成
2007-11-05 14:26 5152在Eclipse中一个Wizard=Wiza ... -
关于多页编辑器中不同Editor之间的Redo&Undo冲突的解决
2007-09-03 15:17 4055在我们的插件工具的开 ... -
TextEditor原理分析笔记
2007-08-23 15:48 3375Editor的语法着色原理:Eclipse使用damage , ... -
最近的Eclipse开发总结
2007-08-23 15:46 2103java.lang.IllegalAccessError: t ...
相关推荐
斑马打印机ZT411和ZT421是工业级条码和标签打印机,广泛应用于制造业、物流、零售业等对打印质量和效率有高要求的领域。这两款打印机以其出色的性能、耐用性和易用性赢得了用户的信赖。这份中文手册详细地介绍了ZT...
《ZT213/ZT213LEEA:低功耗RS232多通道USB收发器/驱动器芯片详解》 ZT213/ZT213LEEA是一款专为低功耗应用设计的RS232多通道USB收发器和驱动器芯片,广泛应用于数据通信、工业控制、物联网设备等领域。本文将深入...
- ZT230系列打印机支持多种条码格式,包括一维条码(如Code 128、UPC-A、EAN-13等)和二维条码(如QR Code、DataMatrix等),适用于物流、库存管理、零售业等多种场景。 5. **高级功能** - 打印机支持自定义图形...
ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机
ZT7548是一款第五代电容式触控屏幕控制器,支持30x18或18x30的通道配置,可以同时检测最多10个触点。该控制器能够与最多8个键与TSP(触控屏面板)或FPC(柔性印刷电路板)模式一起工作,在多点触控时无扫描率下降的...
斑马(Zebra)ZT410是一款先进的桌面级条码打印机,被广泛应用于物流、零售、医疗、制造业等多个行业。这款打印机以其高效、耐用和易于操作的特点深受用户喜爱。"斑马zt410中文库"指的是为ZT410打印机特别设计的中文...
"斑马打印机ZT210用户指南" 本用户指南旨在为Zebra ZT210/ZT220/ZT230打印机的用户提供操作和维护指南,该设备是一种工业级的条码打印机,具有高速打印、高速处理和高质量打印输出等特点。 版权信息 本手册的版权...
斑马ZT510打印机驱动文件
证通ZT598是一款专门用于金融、安防等领域,具备高安全性和可靠性的金属键盘设备。这款设备的开发资料包含在"证通ZT598金属键盘开发资料.rar"压缩包中,主要适用于那些进行嵌入式系统开发的工程师。在深入探讨其开发...
斑马打印机ZT210是一款专业的工业级条形码和标签打印机,广泛应用于物流、零售、医疗等行业的标签制作。以下是对如何设置和使用斑马ZT210打印机的详细步骤: 首先,我们需要安装电脑驱动。双击下载好的驱动程序文件...
RS485通信芯片ZT13085E是一种常用的工业级串行通信接口芯片,主要用于构建远程、多节点的通信网络。在工业自动化、楼宇自动化、物联网设备等领域有广泛应用。ZT13085E的设计目标是提供一种高效、可靠的数据传输方式...
赠送jar包:zt-exec-1.9.jar; 赠送原API文档:zt-exec-1.9-javadoc.jar; 赠送源代码:zt-exec-1.9-sources.jar; 赠送Maven依赖信息文件:zt-exec-1.9.pom; 包含翻译后的API文档:zt-exec-1.9-javadoc-API文档-...
斑马zt210是一款专为中国市场设计的工业条码打印机,非常适合不需要频繁更换标签的条码标签应用。这里给大家提供斑马zt210驱动下载,推荐有需要的用户下载安装。斑马zt210打印机优势:◆ 节省空间* 小巧紧凑和流线型...
《ZT210 230加载介质和碳带》 在条形码和标签打印领域,Zebra公司的ZT210和ZT230打印机是广泛应用的设备,以其可靠性和效率赢得了广大用户的青睐。这两个型号的打印机都属于入门级工业级条码打印机,适用于各种商业...
赠送jar包:zt-exec-1.9.jar; 赠送原API文档:zt-exec-1.9-javadoc.jar; 赠送源代码:zt-exec-1.9-sources.jar; 赠送Maven依赖信息文件:zt-exec-1.9.pom; 包含翻译后的API文档:zt-exec-1.9-javadoc-API文档-...
### zebra ZT400系列打印机技术手册 #### 知识点概述: 1. **版权及法律声明**:Zebra ZT400系列打印机技术手册的版权及相关软件固件的所有权归属ZIH Corp.及其许可证持有者,未经授权复制会受到法律制裁。 2. **...
斑马Zebra ZT510 驱动下载安装 使用中有任何问题可以关注并私信,如果资源对您有帮助记得关注收藏好评哟!
斑马zt410驱动是由斑马官方推出的打印机驱动程序,如果你的打印机与电脑的连接出现了异常而导致打印机无法正常的使用,下载此驱动能帮你很好的解决这个问题,欢迎购买了此型号打印机的朋友下载使用!斑马zt410打印机...
### 斑马打印机ZT210/ZT220/ZT230用户指南关键知识点 #### 一、版权及商标信息 - **版权声明**:该用户指南及相关软件、固件版权归属ZIH Corp.及其许可证发放者。未经授权复制会受到法律制裁,包括最长一年的监禁...