关于我的工作进展的简要说明:
我目前正在研究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(),这在其他类中是不必要的,是否有针对此问题的解决方法我'面对?
答案 0 :(得分:0)
包含您代码的WizardPage
有一个getContainer()
方法,所以您应该可以这样做:
DialogEditor dialogEditor = new DialogEditor(tableViewer, getContainer());