void () { if (myCompound == null) { myCompound = new SettingsEditorGroup<>(); Disposer.register(this, myCompound); if (myConfigurationEditor instanceof SettingsEditorGroup<RunConfiguration> group) { List<Pair<@TabTitle String, SettingsEditor<RunConfiguration>>> editors = group.getEditors(); for (Pair<@TabTitle String, SettingsEditor<RunConfiguration>> pair : editors) { myCompound.addEditor(pair.getFirst(), new ConfigToSettingsWrapper(pair.getSecond())); } } else { myCompound.addEditor(ExecutionBundle.message("run.configuration.configuration.tab.title"), new ConfigToSettingsWrapper(myConfigurationEditor)); } myRunnersComponent = new RunnersEditorComponent(); for (Executor executor : Executor.EXECUTOR_EXTENSION_NAME.getExtensionList()) { ProgramRunner<RunnerSettings> runner = getRunner(executor, myConfiguration); if (runner != null) { JComponent perRunnerSettings = createCompositePerRunnerSettings(executor, runner); if (perRunnerSettings != null) { myRunnersComponent.addExecutorComponent(executor, perRunnerSettings); } } } if (myRunnerEditors.size() > 0) { myCompound.addEditor(getRunnersTabName(), new CompositeSettingsEditor<>(getFactory()) { @Override public @NotNull CompositeSettingsBuilder<RunnerAndConfigurationSettings> getBuilder() { return new CompositeSettingsBuilder<>() { @Override public @NotNull Collection<SettingsEditor<RunnerAndConfigurationSettings>> getEditors() { return myRunnerEditors; } @Override public @NotNull JComponent createCompoundEditor() { return myRunnersComponent.getComponent(); } }; } }); } } }