При создании 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 был включен, как замечает Грег в своем комментарии.

Другие вопросы по тегам