Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重写void org.eclipse.jface.viewers.StructuredViewer.setInput(对象输入)_Java_Eclipse Plugin - Fatal编程技术网

Java 重写void org.eclipse.jface.viewers.StructuredViewer.setInput(对象输入)

Java 重写void org.eclipse.jface.viewers.StructuredViewer.setInput(对象输入),java,eclipse-plugin,Java,Eclipse Plugin,我有一个扩展org.eclipse.jface.dialogs.Dialog的类 我正在使用org.eclipse.jface.viewers.TableViewer类,如下所示 private TableViewer tableViewer = new TableViewer(newCntr, SWT.SINGLE|SWT.FULL_SELECTION|SWT.BORDER); tableViewer.setInput(setOfObjects); 我将允许用户从UI中执行删除操作。我不想

我有一个扩展org.eclipse.jface.dialogs.Dialog的类

我正在使用org.eclipse.jface.viewers.TableViewer类,如下所示

private TableViewer tableViewer = new TableViewer(newCntr, SWT.SINGLE|SWT.FULL_SELECTION|SWT.BORDER);

tableViewer.setInput(setOfObjects);
我将允许用户从UI中执行删除操作。我不想从集合中删除,只想用属性标记该对象,而不是在TableViewer中列出它。但是,TableViewer将列出集合中的所有内容。我是否应该覆盖该方法?我在下面提供了它。。。谢谢

public final void setInput(Object input) {
    Control control = getControl();
    if (control == null || control.isDisposed()) {
        throw new IllegalStateException(
                "Need an underlying widget to be able to set the input." + //$NON-NLS-1$
                        "(Has the widget been disposed?)"); //$NON-NLS-1$
    }
    try {
        //      fInChange= true;

        unmapAllElements();

        super.setInput(input);

    } finally {
        //      fInChange= false;
    }
}

不要试图覆盖
setInput

而是使用
TableViewer.addFilter
将筛选器添加到表中

过滤器是从
ViewerFilter
派生的类,它可以选择显示表中的哪些元素。这是一个抽象类,您提供了以下实现:

public boolean select(Viewer viewer, Object parentElement, Object element)
对于表,
parentElement
(过滤器也可以与
TreeViewer
一起使用)

如果筛选条件更改,请使用
TableViewer.refresh()
,以更新表查看器