SWT: как создать простую кнопку из действия - PullRequest
3 голосов
/ 11 декабря 2010

Мне нужна Button сборка из IAction. Должен ли я сделать это сам или в JFace уже есть что-то, что я могу использовать повторно? Обратите внимание, мне нужен экземпляр кнопки, потому что я хочу сделать ее кнопкой по умолчанию в диалоговом окне.

С new ActionContributionItem(action).fill(parent); Кажется, я не могу получить экземпляр кнопки.

Ответы [ 2 ]

3 голосов
/ 28 апреля 2011

Я думаю, что это лучший способ использовать метод getWidget() из ActionContributionItem, чтобы получить Button экземпляр, связанный с ActionContributionItem.

    ActionContributionItem aci = new ActionContributionItem(action);
    ai.fill(parent);
    Button widget = (Button) ai.getWidget();
1 голос
/ 21 декабря 2010

После fill(parent) Я думаю, что вы можете вызвать parent.getChildren (). Я ожидаю, что новая кнопка будет последней записью в возвращенном элементе управления []. Поэтому:

Control kids[] = parent.getChildren();

if (kids != null && kids.length != 0) {
  getShell().setDefaultButton( (Button)kids[kids.length - 1] );

}

Если он не застрял в конце, вам нужно будет получить список детей до и после и найти новую запись ... но она почти наверняка будет добавлена ​​в конец.

...