From cd00fbfe9d93ee23d90415130c250388dbefc3ed Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Fri, 13 Apr 2018 15:57:37 +0200 Subject: [PATCH] =?UTF-8?q?ensure=20that=20Apply=20button=20is=20not=20act?= =?UTF-8?q?ive=20on=20open=20run=20configuration=20dialog=20=E2=80=94?= =?UTF-8?q?=C2=A0problem=20is=20that=20we=20had=202=20instance=20of=20Unkn?= =?UTF-8?q?ownConfigurationType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../intellij/debugger/DebuggerTestCase.java | 2 +- .../UnknownConfigurationType.java | 31 ++++++++++--------- .../impl/RunConfigurationSchemeManager.kt | 2 +- .../RunnerAndConfigurationSettingsImpl.kt | 4 +-- .../GradleSettingsImportingTest.java | 19 ++---------- 5 files changed, 23 insertions(+), 35 deletions(-) diff --git a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java index 012979495d83..79b173884596 100644 --- a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java +++ b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java @@ -504,7 +504,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas @Override public ConfigurationFactory getFactory() { - return UnknownConfigurationType.FACTORY; + return UnknownConfigurationType.getFactory(); } @Override diff --git a/platform/lang-api/src/com/intellij/execution/configurations/UnknownConfigurationType.java b/platform/lang-api/src/com/intellij/execution/configurations/UnknownConfigurationType.java index db1f18abfaea..a3291f37fe17 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/UnknownConfigurationType.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/UnknownConfigurationType.java @@ -19,22 +19,25 @@ public class UnknownConfigurationType extends ConfigurationTypeBase { protected UnknownConfigurationType(@NotNull Icon icon) { super(NAME, NAME, ExecutionBundle.message("run.configuration.unknown.description"), icon); - addFactory(FACTORY); + addFactory(new ConfigurationFactory(this) { + @NotNull + @Override + public RunConfiguration createTemplateConfiguration(@NotNull Project project) { + return new UnknownRunConfiguration(this, project); + } + + @Contract(pure = true) + @Override + public boolean canConfigurationBeSingleton() { + return false; + } + }); } public static final String NAME = "Unknown"; - public static final ConfigurationFactory FACTORY = new ConfigurationFactory(new UnknownConfigurationType()) { - @NotNull - @Override - public RunConfiguration createTemplateConfiguration(@NotNull Project project) { - return new UnknownRunConfiguration(this, project); - } - - @Contract(pure = true) - @Override - public boolean canConfigurationBeSingleton() { - return false; - } - }; + @NotNull + public static ConfigurationFactory getFactory() { + return INSTANCE.getConfigurationFactories()[0]; + } } diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationSchemeManager.kt b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationSchemeManager.kt index 93b5ab9d3803..1975399220b8 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationSchemeManager.kt +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationSchemeManager.kt @@ -111,7 +111,7 @@ internal class RunConfigurationSchemeManager(private val manager: RunManagerImpl } else if (scheme.isTemplate) { val factory = scheme.factory - if (factory != UnknownConfigurationType.FACTORY) { + if (factory != UnknownConfigurationType.getFactory()) { val templateSettings = manager.createTemplateSettings(factory) if (JDOMUtil.areElementsEqual(result, templateSettings.writeScheme())) { return null diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.kt b/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.kt index 79f7bd768b81..5fcd229846b5 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.kt +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.kt @@ -79,7 +79,7 @@ class RunnerAndConfigurationSettingsImpl @JvmOverloads constructor(private val m private var uniqueId: String? = null - override fun getFactory(): ConfigurationFactory = _configuration?.factory ?: UnknownConfigurationType.FACTORY + override fun getFactory(): ConfigurationFactory = _configuration?.factory ?: UnknownConfigurationType.getFactory() override fun isTemplate() = isTemplate @@ -100,7 +100,7 @@ class RunnerAndConfigurationSettingsImpl @JvmOverloads constructor(private val m } } - override fun getConfiguration() = _configuration ?: UnknownConfigurationType.FACTORY.createTemplateConfiguration(manager.project) + override fun getConfiguration() = _configuration ?: UnknownConfigurationType.getFactory().createTemplateConfiguration(manager.project) override fun createFactory() = Factory { val configuration = configuration diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleSettingsImportingTest.java b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleSettingsImportingTest.java index 1483740ecead..292da76e5be7 100644 --- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleSettingsImportingTest.java +++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleSettingsImportingTest.java @@ -1,18 +1,4 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.plugins.gradle.importing; import com.intellij.codeInspection.ex.InspectionProfileImpl; @@ -371,7 +357,7 @@ class TestRunConfigurationImporter implements RunConfigurationImporter { @NotNull @Override public ConfigurationFactory getConfigurationFactory() { - return UnknownConfigurationType.FACTORY; + return UnknownConfigurationType.getFactory(); } public Map> getConfigs() { @@ -379,7 +365,6 @@ class TestRunConfigurationImporter implements RunConfigurationImporter { } } - class TestFacetConfigurationImporter implements FacetConfigurationImporter { private final String myTypeName;