JFace tableviewer项目删除无法刷新
JFace tableviewer item delete cannot refresh
我是 SWT 和 JFace 的新手,最近,我在我的项目中使用了 JFace tableviewer。我需要通过删除按钮删除项目。但是,如果我在删除 table 查看器后刷新它,它就不起作用了。我想知道下面显示的 reason.My 代码:
btnDeleteConstraint.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
ISelection selection = tableViewer.getSelection();
logger.debug("datatype selected");
if (selection != null || selection instanceof
IStructuredSelection) {
IStructuredSelection sel = (IStructuredSelection) selection;
Iterator iterator = sel.iterator();
while(iterator.hasNext()) {
Object obj = iterator.next();
tableViewer.remove(obj);
}
tableViewer.refresh();
}
}
});
然后我使用另一种称为 update() 的方法来设置输入并在最后刷新 table:
public void update()
{
tableViewer.setInput(DataTypeFactory.
getInstance().getCastList(wizard.getSourceInfo().getDBType()));
tableViewer.refresh();
}
当您调用 refresh
时,table 会从您的 'content provider' 更新 - 所以当您删除内容时,您 必须 更新数据您的内容提供商 returns 在其 getElements
方法中。
我是 SWT 和 JFace 的新手,最近,我在我的项目中使用了 JFace tableviewer。我需要通过删除按钮删除项目。但是,如果我在删除 table 查看器后刷新它,它就不起作用了。我想知道下面显示的 reason.My 代码:
btnDeleteConstraint.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
ISelection selection = tableViewer.getSelection();
logger.debug("datatype selected");
if (selection != null || selection instanceof
IStructuredSelection) {
IStructuredSelection sel = (IStructuredSelection) selection;
Iterator iterator = sel.iterator();
while(iterator.hasNext()) {
Object obj = iterator.next();
tableViewer.remove(obj);
}
tableViewer.refresh();
}
}
});
然后我使用另一种称为 update() 的方法来设置输入并在最后刷新 table:
public void update()
{
tableViewer.setInput(DataTypeFactory.
getInstance().getCastList(wizard.getSourceInfo().getDBType()));
tableViewer.refresh();
}
当您调用 refresh
时,table 会从您的 'content provider' 更新 - 所以当您删除内容时,您 必须 更新数据您的内容提供商 returns 在其 getElements
方法中。