Eclipse华丽转身之控件表格工厂
Eclipse华丽转身之控件表格工厂Eclipse插件开发书归正传,接演前文~(Eclipse插件开发之简单控件封装——那些年冗长的裹脚布)上回我们介绍了对象编辑器的封装,对象编辑
Eclipse插件开发
书归正传,接演前文~(Eclipse插件开发之简单控件封装——那些年冗长的裹脚布)上回我们介绍了对象编辑器的封装,对象编辑器之外就是控件工厂的封装,而在众多类型的控件工厂中,想必大家最关心的,莫过于对槽点满满的原生Tree/Table的封装。这回我们便好好来说道说道~
在此之前,我们还是要简单介绍一下控件工厂。
控件工厂
根据不同的UI需求,我们框架封装了许多控件工厂来完成灵活的应用需求。
IControlFactory控件工厂,因为有一些控件是运行时才会被创建的,而且要创建的控件也有可能不确定,所以提供一个这样的工厂用来创建控件,下图为它的类结构图。
AbstractControlFactory是IControlFactory的基类。这个基类在实现IValueContaier的同时还实现了IValueChangeListener和IValidateListener这样主要是通过Proxy的模式,只在内部的控件中添加自己作为Listener。
表格工厂
我们知道,无论是SWT的Table还是JFace的TableViewer/TreeViewer,都不能满。我们广泛需求,比如修改数据。而在我们开发过程中,表格往往是个非常普遍多次使用的控件,所以这里就要引入我们的表格工厂的封装了。那么,我们先简述以下表格工厂相关的几个概念(构建器、数据转换器、备忘录)。
表格构建器Builder分为KTableBuilder和KTreeBuilder,其实他们是使用了第三方表格组件KTable来进行构造表格。
先来说一下KTable表格工厂的构建器KTableBuilder,下图为Builder的关系类图;
当需要使用一个KTableBuilder的时候我们一般直接new一个对象出来,可以看下它三种构造函数中带参数的一种;public KTableBuilder(KTable r_KTable, IKTableColumn[] r_Columns, ITableDataProvider r_TableDataProvider, IAdaptable r_Adaptable) { this.setTableColumns(r_Columns); this.setDataProvider(r_TableDataProvider); this.build(r_KTable,r_Adaptable); }其中的ITableDataProvider就是数据提供者接口,为表格提供数据和排序。然后表格构建器通过doBuild方法来绘制表格。数据转换器Translator数据转换器,可以将数据转换成复杂控件使用的数据,如表格使用的列表数据;举一个例子来理解什么是Translator,例如Stuido的逻辑流文件(*.bizx文件),用文本编辑器开打后可以看到图形化编辑器中的图元的信息都是使用XML规范来描述的,比如一个运算逻辑图元属性如下图;
3 首页 下一页 上一页 尾页-
粘合剂喷射金属3D打印技术工厂化规模应用,汽车制造业或迎来变革!2020-08-23
-
「全自动化」的智能工厂应该什么样?2020-08-23
-
我国化纤行业首座5G智慧工厂投产2020-08-23
-
中环将开建智慧化标杆工厂2020-08-23
-
东风公司十堰基地再添年产12亿新工厂2020-08-23
-
安大略工厂为汽车零部件公司启动新一轮融资2020-08-23
-
撤华?松下官宣2.2亿加码中国建新工厂2020-08-23
-
法国总理坚持让雷诺保留法国工厂 尽力控制其裁员的幅度2020-05-22
-
特斯拉在弗里蒙特工厂配置新的生产辅助机器人 计划今年末产能提升2020-05-22
-
联通将推进6G与车联网深度融合;戴姆勒再次关闭奔驰工厂2020-05-21
-
传统行业搭上“新基建”快车 “云工厂”模式或成趋势2020-05-21
-
仙知案例|基于SRC的激光SLAM自动叉车在工厂智能搬运中的应用2020-05-18
-
工信部:有色金属行业智能加工工厂建设指南(试行)2020-05-13
-
丰田今年北美汽车产量将减少三分之一 工厂关停将持续至今年10月末2020-05-12
-
特斯拉美国工厂将仿照上海超级工厂模式复工2020-05-11