我希望当用户点击我的插件添加的某个按钮时会出现一个复杂的对话框,但我找不到任何支持添加任意控件的现有对话框类型。
相反,我正在考虑创建一个只有一个页面的向导 - 这可能看起来不错,但感觉不对。有没有更好的方法来创建具有复杂控件的对话框?
答案 0 :(得分:4)
您想要继承org.eclipse.jface.dialogs.TrayDialog。这将为您提供一个对话框,其中包含按钮栏和单击帮助按钮时显示的滑出托盘。根据TrayDialog的Javadoc:
除非对话框永远不显示托盘,否则建议在所有情况下继承此类而不是
Dialog
您将复杂的代码放在createDialogArea(Composite parent)
方法中。如果您希望所有内容都正确,请确保使用从调用super返回的复合而不是使用父级。这将确保边距设置为默认值。例如:
protected Control createDialogArea(Composite parent) {
Composite parentWithMargins = (Composite) super.createDialogArea(parent);
/*
* Add your code here parenting off of parentWithMargins
*/
return parentWithMargins;
}