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)
。您可能还需要为按钮栏组合调整 GridLayout
的 numColumns
字段。
您可以在向导页面的 setVisible
方法中执行此操作。
我知道我可以在调用对话框时使用 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)
。您可能还需要为按钮栏组合调整 GridLayout
的 numColumns
字段。
您可以在向导页面的 setVisible
方法中执行此操作。