Как правильно отобразить сложный диалог в плагине Eclipse? - PullRequest
3 голосов
/ 24 февраля 2011

Я хочу, чтобы сложное диалоговое окно отображалось, когда пользователь нажимает какую-то кнопку, которую добавляет мой плагин, но я не смог найти ни одного существующего типа диалога, поддерживающего добавление произвольных элементов управления.

Вместо этого я думал о создании мастера только с одной страницей - это, вероятно, выглядело бы достаточно хорошо, но это не правильно. Есть ли лучший способ создать диалог со сложными элементами управления?

1 Ответ

4 голосов
/ 24 февраля 2011

Вы хотите создать подкласс org.eclipse.jface.dialogs.TrayDialog.Это даст вам диалоговое окно с панелью кнопок и выдвижным лотком, который появится при нажатии кнопки справки.Согласно Javadoc TrayDialog:

Рекомендуется подкласс этого класса вместо Dialog во всех случаях, кроме случаев, когда в диалоге никогда не должен отображаться лоток

. Выпоместите ваш сложный код в метод createDialogArea(Composite parent).Если вы хотите, чтобы все выглядело правильно, убедитесь, что вы используете композит, возвращаемый при вызове super, вместо использования parent.Это позволит убедиться, что поля установлены по умолчанию.Например:

protected Control createDialogArea(Composite parent) {
  Composite parentWithMargins = (Composite) super.createDialogArea(parent);

  /*
   * Add your code here parenting off of parentWithMargins
   */

  return parentWithMargins;
}
...