プラットフォームの設定を拡張するEclipseプラグイン内のボタンをクリックすると、DateTimeシェルを開こうとしています。
これはボタンSelectionAdapterのコードです
@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();
}
}
次の画像でわかるように、シェルが描かれていますが、有効になっていないようです。実際、日付を選択したり、日付を閉じたりサイズを変更したりすることはできません。ご覧のとおり、3つのボタン(赤、黄、緑)は灰色で表示されます。私は何が間違っているのですか?
アップデート
私はこのようなシェルを取得しようとしました:
Display display = new Display();
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
Shell shell = window.getShell();
しかし今私はこれを手に入れます
これは実際には私の意図からかなりかけ離れています。私の目的は、DateTimeウィジェットで新しいウィンドウを表示することです
アップデート
私はGilbertのアドバイスに従い、独自のJFaceDialogを定義しました。Lars Vogelがhttp://www.vogella.com/articles/EclipseDialogs/article.htmlで説明しているように、TitleAreaDialogの拡張として作成しました。今は動作しますが、まだ改善が必要なことがあります。
タイトルの大きなヘッダーを非表示にし、ヘルプボタンを非表示/削除したいと思います。それを行う方法はありますか?間違ったクラスを拡張していますか?