如何在 nattable 和 Jface 视图之间交叉更新视图
How to cross update of view between nattable and Jface view
Eclipse RCP 视图通信,其中一个视图包含 nattable,另一个视图包含 jface 控件,如按钮、下拉列表。
目前例如有3个view/Editor如下图
View1 - 包含员工详细信息,它是一个 Nattable 和
它的单元格包含字符串、长整型、布尔值、日期值等数据。
每行代表一个数据,其他视图是对应的数据
所选行
View2 - 显示与视图 1 中选定行对应的地址,
用户可以修改view2的数据。
View3 - 显示employee的部门详情,也可以修改
所以所有 3 个视图都显示了一个模型的数据,比如员工
Employee
|_Name
|_EmpId
|_Married
|_DOJ
|_Address
|_Type
|_City Name
|_State
|_PinCode
|_Department Details
|_Department
|_Project
|_Manager
问题:
我想知道视图 1 和其他视图之间的最佳通信方式是什么
在 view1 中选择行,然后其他两个视图应相应更新;
如果 view2/view3 中的任何数据发生变化,那么视图 1 应该收到其他视图中数据变化的通知
当条件 2 发生时,我想在视图 1 中显示脏行。
与您描述的场景相关的 E4 应用程序中视图间通信的典型方法是使用 ESelectionService
触发处理选择以打开另一个视图,并通过 Eclipse 4 事件进行通信系统.
对于场景一,根据 NatTable 中的选择打开视图,您可以使用 NatTable Eclipse 4 扩展功能 中的E4SelectionListener
。 ILayerListener
将选择转发给 ESelectionService
。可以在 NatTable examples.
中找到示例
为了通知视图 1 关于另一个视图的更改,我建议使用 IEventBroker
从 view2/view3 发送事件并在视图 1 中对事件做出反应。这样,视图就会尽可能地解耦。 Eclipse 4 event system 是了解事件系统的良好起点。
Eclipse RCP 视图通信,其中一个视图包含 nattable,另一个视图包含 jface 控件,如按钮、下拉列表。
目前例如有3个view/Editor如下图
View1 - 包含员工详细信息,它是一个 Nattable 和 它的单元格包含字符串、长整型、布尔值、日期值等数据。 每行代表一个数据,其他视图是对应的数据 所选行
View2 - 显示与视图 1 中选定行对应的地址, 用户可以修改view2的数据。
View3 - 显示employee的部门详情,也可以修改
所以所有 3 个视图都显示了一个模型的数据,比如员工
Employee
|_Name
|_EmpId
|_Married
|_DOJ
|_Address
|_Type
|_City Name
|_State
|_PinCode
|_Department Details
|_Department
|_Project
|_Manager
问题:
我想知道视图 1 和其他视图之间的最佳通信方式是什么
在 view1 中选择行,然后其他两个视图应相应更新;
如果 view2/view3 中的任何数据发生变化,那么视图 1 应该收到其他视图中数据变化的通知
当条件 2 发生时,我想在视图 1 中显示脏行。
与您描述的场景相关的 E4 应用程序中视图间通信的典型方法是使用 ESelectionService
触发处理选择以打开另一个视图,并通过 Eclipse 4 事件进行通信系统.
对于场景一,根据 NatTable 中的选择打开视图,您可以使用 NatTable Eclipse 4 扩展功能 中的E4SelectionListener
。 ILayerListener
将选择转发给 ESelectionService
。可以在 NatTable examples.
为了通知视图 1 关于另一个视图的更改,我建议使用 IEventBroker
从 view2/view3 发送事件并在视图 1 中对事件做出反应。这样,视图就会尽可能地解耦。 Eclipse 4 event system 是了解事件系统的良好起点。