如何调用IWizard类的getContainer()方法

时间:2014-08-13 07:17:55

标签: java swt jface tableviewer

关于我的工作进展的简要说明:

我目前正在研究JFace Wizards。我的一个向导中有一个tableViewer,该表中的一行有一个按钮,用于打开一个对话框单元格编辑器。向导还有一个IRunnableWithProgress指标,它将在IRunnableContext中运行。

我面临的问题:

我的Dialog单元格编辑器类中的构造函数接受两个参数:

public DialogEditor(Composite parent,IRunnableContext context)

从另一个类调用上面的构造函数时,我可以传入一个tableViewer对象作为形式参数Composite parent的实际参数,但是如何调用IRunnableContext?我将什么作为IRunnableContext的参数传入?例如:

TableViewer tableViewer = new TableViewer(table);
DialogEditor dialogEditor = new DialogEditor(tableViewer, ???(What do I add here?))

在我用Google搜索并阅读了几篇Java Docs后,我发现org.eclipse.jface.wizard.IWizard类中有一个方法getContainer(),它返回此向导的容器。但是我不太确定如何使用方法getContainer(),因为它不是静态方法,我无法实例化IWizard类型。

我的问题的更新。

我尝试实现IWizard接口并使用getContainer()方法,但我收到了一个异常:

“java.lang.Error:未解决的编译问题:IWizardContainer无法解析”

这是IWizard界面的Java Doc:

/**
 * Returns the container of this wizard.
 *
 * @return the wizard container, or <code>null</code> if this
 *   wizard has yet to be added to a container
 */
public IWizardContainer getContainer();

这是我的代码:

public abstract class myWizard implements IWizard {
TableViewer tableViewer = new TableViewer(table);
DialogEditor dialogEditor = new DialogEditor(tableViewer, getContainer());
//other code
}

没有编译错误,但是当我点击表格行“java.lang.Error:未解决的编译问题:IWizardContainer无法解析”时,我收到异常。

而且我也不想实现接口IWizard,因为我的其他扩展myWizard.class的类必须实现继承的抽象方法IWizrad.getContainer(),这在其他类中是不必要的,是否有针对此问题的解决方法我'面对?

1 个答案:

答案 0 :(得分:0)

包含您代码的WizardPage有一个getContainer()方法,所以您应该可以这样做:

DialogEditor dialogEditor = new DialogEditor(tableViewer, getContainer());