2

必要な拡張ポイントがあり、Tab クラスが拡張されています。AbstractLaunchConfigurationTab.たとえば、CommonTab. updateLaunchConfigurationDialog()ウィジェット イベントが発生したときに呼び出します。

編集:私のウィジェットのリスナー メソッドが確実に呼び出され、performApplyメソッドが呼び出されています。クラスがラジオボタンの1つで行うことを行ってい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

performApplyILaunchConfigurationWorkingCopy引数としてインスタンスが渡されます。WhenperformApplyはそのILaunchConfigurationWorkingCopyインスタンスを元の変更されていない と比較しますILaunchConfiguration。違いがある場合は、 [適用] ボタンが有効になります。

したがって、Greg がコメントで気づいたように、Apply を有効にするには、引数を変更する必要がperformApplyあります

于 2016-07-13T16:31:44.723 に答える