单击扩展平台首选项的 Eclipse 插件内的按钮时,我试图打开 DateTime 外壳。
这是按钮选择适配器的代码
@Override
public void widgetSelected(SelectionEvent e) {
super.widgetSelected(e);
Display display = Display.getCurrent();
Shell ns = new Shell(display);
ns.setLayout (new RowLayout ());
final DateTime calendar = new DateTime (ns, SWT.CALENDAR);
ns.pack();
ns.open();
ns.forceActive();
ns.setEnabled(true);
while (!ns.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
正如您在下图中看到的那样,描述了 shell,但似乎未启用。确实不可能选择任何日期或关闭/调整它的大小。如您所见,三个按钮(红色、黄色和绿色)显示为灰色。我究竟做错了什么?
更新
我试图得到这样的外壳:
Display display = new Display();
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
Shell shell = window.getShell();
但现在我明白了
这实际上与我的意图相去甚远。我的目标是使用 DateTime 小部件显示一个新窗口
更新
我遵循 Gilbert 的建议并定义了我自己的 JFace 对话框。正如 Lars Vogel 在http://www.vogella.com/articles/EclipseDialogs/article.html中所述,我将它创建为 TitleAreaDialog 的扩展。它现在可以工作,但我还有一些需要改进的地方。
我想隐藏标题的大标题并隐藏/删除帮助按钮。有没有办法做到这一点?我在扩展错误的课程吗?