【发布时间】:2016-09-23 14:36:51
【问题描述】:
我是第一次使用 NatTable。我已经创建了一个带有排序、过滤功能的漂亮表……但是现在我正在寻找一种方法来实现一个更改侦听器,每次更改表中的数据时都会调用该侦听器。该事件还需要将更改后的模型还给我。
有什么方法可以创建这种行为?
【问题讨论】:
我是第一次使用 NatTable。我已经创建了一个带有排序、过滤功能的漂亮表……但是现在我正在寻找一种方法来实现一个更改侦听器,每次更改表中的数据时都会调用该侦听器。该事件还需要将更改后的模型还给我。
有什么方法可以创建这种行为?
【问题讨论】:
由于 NatTable 基本上是数据模型的“唯一”查看器,我通常建议在模型对象上引入某种 PropertyChangeListener。原因是可以通过 NatTable 或通过后台任务在数据模型本身中更改数据。最终答案将取决于您的用例。
如果您只想以特殊方式跟踪 NatTable 中的更改,您可以实现并注册一个自定义 UpdateDataCommandHandler,该UpdateDataCommandHandler 会触发包含您需要的信息的事件。在 NatTable 本身中,我们目前不触发此类事件。在数据更新的情况下,我们只会触发CellVisualChangeEvent 来触发重绘。
关于如何交换数据更新行为的基本解释可以在本页底部找到:https://www.eclipse.org/nattable/documentation.php?page=editing
最后,您需要检查UpdateDataCommandHandler 的实现,基本上执行相同的操作来更新数据模型并另外触发符合您期望的事件。
【讨论】: