org.eclipse.jface.wizard.WizardDialog 的更新按钮

Update buttons of org.eclipse.jface.wizard.WizardDialog

我知道我可以在调用对话框时使用 createButtonsForButtonBar() 到 add/remove WizardDialog 的新按钮。但是,我希望对话框的按钮可以根据当前显示的内容进行更改 WizardPage.

例如,对于 page1,我有一个名为 "edit" 的新按钮。对于第 2 页,我有一个名为 "move" 的新按钮。显示 page2 时不应显示 "edit",显示 page1 时不应显示 "move"。 关于如何实现这一目标的任何提示? 谢谢。

createButtonsForButtonBar 使用 GridLayout 布局按钮,并为每个按钮设置 GridData。所以应该能够使用 GridData.exclude 标志来排除布局的按钮。

要停止显示按钮,请使用类似的东西:

Button button = getButton(button id);
GridData data = (GridData)button.getLayoutData();
data.exclude = true;
button.setVisible(false);

然后您必须在按钮栏组合上调用 layout(true)。您可能还需要为按钮栏组合调整 GridLayoutnumColumns 字段。

您可以在向导页面的 setVisible 方法中执行此操作。