При создании LaunchConfigurationTab, как получить кнопку "Применить", чтобы выделить?
У меня есть необходимые точки расширения, и мой класс Tab расширяется AbstractLaunchConfigurationTab.
Я не делаю ничего, кроме примеров, таких как, CommonTab
, Я звоню updateLaunchConfigurationDialog()
когда происходит событие виджета.
РЕДАКТИРОВАТЬ: определенно вызывается метод слушателя для моих виджетов и performApply
метод вызывается. Я делаю то, что CommonTab
класс делает с одной из своих радиокнопок, например:
fSharedRadioButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
handleSharedRadioButtonSelected();
}
});
/**
* handles the shared radio button being selected
*/
private void handleSharedRadioButtonSelected() {
setSharedEnabled(isShared());
updateLaunchConfigurationDialog();
}
Разница лишь в том, что мой виджет - это спиннер:
executionsSpinner.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
updateLaunchConfigurationDialog();
}
});
1 ответ
Когда updateLaunchConfigurationDialog
называется каркас запускает вызов вашей вкладки performApply
метод.
performApply
передан ILaunchConfigurationWorkingCopy
экземпляр в качестве аргумента. когда performApply
возвращает это ILaunchConfigurationWorkingCopy
экземпляр сравнивается с исходным, немодифицированным ILaunchConfiguration
, Если есть какие-либо различия, то кнопка Применить активна.
Следовательно, вы должны внести некоторые изменения в аргумент performApply
чтобы Apply был включен, как замечает Грег в своем комментарии.