2

我有必要的扩展点,并且我的 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();
        }
    });
4

1 回答 1

1

updateLaunchConfigurationDialog被调用时,框架会触发对选项卡方法的调用performApply

performApply传递一个ILaunchConfigurationWorkingCopy实例作为参数。当performApply返回时,将该ILaunchConfigurationWorkingCopy实例与原始的未修改的 进行比较ILaunchConfiguration。如果有任何差异,则启用应用按钮。

因此,您必须对启用ApplyperformApply的参数进行一些修改 ,正如 Greg 在他们的评论中指出的那样。

于 2016-07-13T16:31:44.723 回答