【发布时间】:2012-12-07 10:16:24
【问题描述】:
我有一个小问题,我正在寻求帮助。
我的 Master 部分中有一个 TableViewer,并且有很多条目会很快更新它。
我的详细信息页面显示所选项目信息。
我想让这个详细信息页面持久化,并且只在选择发生变化时收到通知。
我面临的问题是,当向 tableviewer 添加新项目时,选择会自动更改。
编辑:我有一个更新 TableViewer 的处理程序,在列表的开头添加一个新项目,这是我的 TableViewer 的输入。
当TableViewer 为SWT.VIRTUAL 时,选择在索引上,当添加项目时,所选行相同,但项目已移动。
当TableViewer 不是SWT.VIRTUAL 时,选择发生在对象上,但性能非常低!
有什么建议吗? 谢谢
public void update(Object obj_p) {
if (obj_p instanceof IMessageEvent) {
IMessageEvent event = (IMessageEvent) obj_p;
synchronized (_currentListEvents) {
_currentListEvents.addFirst(event);
if (_currentListEvents.size() > _maxEvents) {
_currentListEvents.removeLast();
}
}
}
if (null == obj_p) {
synchronized (_currentListEvents) {
_currentListEvents.clear();
}
}
}
【问题讨论】:
-
向 tableviewer 添加新项目时,选择更改事件不会自动发生。你如何添加这个新项目?
-
我将它添加到 update() 方法中。事实是,当我的 TableViewer 不是 SWT.VIRTUAL 时,选择不会改变。
-
你能在这里发布一些代码吗?尤其是向 TableViewer 添加新项目时的部分。
-
现在我明白了,这真的很有趣。我会调查的。
标签: java block jface master-detail tableviewer