mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
project configurables migrated to new 'instance' attribute (to create new instance each time when dialog is opened)
This commit is contained in:
+2
-1
@@ -22,6 +22,7 @@ import com.intellij.openapi.options.OptionalConfigurable;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
@@ -38,7 +39,7 @@ public class ConfigurableExtensionPointUtil {
|
||||
}
|
||||
|
||||
|
||||
public static List<Configurable> buildConfigurablesList(final ConfigurableEP[] extensions, final Configurable[] components, ConfigurableFilter filter) {
|
||||
public static List<Configurable> buildConfigurablesList(final ConfigurableEP[] extensions, final Configurable[] components, @Nullable ConfigurableFilter filter) {
|
||||
List<Configurable> result = new ArrayList<Configurable>();
|
||||
for (ConfigurableEP extension : extensions) {
|
||||
ContainerUtil.addIfNotNull(extension.createConfigurable(), result);
|
||||
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright 2000-2010 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.
|
||||
*/
|
||||
package com.intellij.openapi.options.ex;
|
||||
|
||||
import com.intellij.openapi.components.ComponentManager;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.options.Configurable;
|
||||
import com.intellij.openapi.options.ConfigurableEP;
|
||||
import com.intellij.openapi.options.ConfigurableGroup;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public abstract class ConfigurablesGroupBase implements ConfigurableGroup {
|
||||
private Configurable[] myChildren;
|
||||
private ComponentManager myComponentManager;
|
||||
private final ExtensionPointName<ConfigurableEP> myConfigurablesExtensionPoint;
|
||||
|
||||
protected ConfigurablesGroupBase(ComponentManager componentManager, final ExtensionPointName<ConfigurableEP> configurablesExtensionPoint) {
|
||||
myComponentManager = componentManager;
|
||||
myConfigurablesExtensionPoint = configurablesExtensionPoint;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Configurable[] getConfigurables() {
|
||||
if (myChildren == null) {
|
||||
final ConfigurableEP[] extensions = myComponentManager.getExtensions(myConfigurablesExtensionPoint);
|
||||
Configurable[] components = myComponentManager.getComponents(Configurable.class);
|
||||
|
||||
List<Configurable> result = ConfigurableExtensionPointUtil.buildConfigurablesList(extensions, components, getConfigurableFilter());
|
||||
myChildren = result.toArray(new Configurable[result.size()]);
|
||||
}
|
||||
return myChildren;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected abstract ConfigurableFilter getConfigurableFilter();
|
||||
}
|
||||
+9
-13
@@ -15,11 +15,9 @@
|
||||
*/
|
||||
package com.intellij.openapi.options.ex;
|
||||
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.options.*;
|
||||
|
||||
import java.util.List;
|
||||
import com.intellij.openapi.options.ConfigurableGroup;
|
||||
import com.intellij.openapi.options.OptionsBundle;
|
||||
|
||||
/**
|
||||
* Created by IntelliJ IDEA.
|
||||
@@ -28,7 +26,10 @@ import java.util.List;
|
||||
* Time: 3:35:56 PM
|
||||
* To change this template use Options | File Templates.
|
||||
*/
|
||||
public class IdeConfigurablesGroup implements ConfigurableGroup {
|
||||
public class IdeConfigurablesGroup extends ConfigurablesGroupBase implements ConfigurableGroup {
|
||||
public IdeConfigurablesGroup() {
|
||||
super(ApplicationManager.getApplication(), ConfigurableExtensionPointUtil.APPLICATION_CONFIGURABLES);
|
||||
}
|
||||
|
||||
public String getDisplayName() {
|
||||
return OptionsBundle.message("ide.settings.display.name");
|
||||
@@ -38,14 +39,9 @@ public class IdeConfigurablesGroup implements ConfigurableGroup {
|
||||
return OptionsBundle.message("ide.settings.short.name");
|
||||
}
|
||||
|
||||
public Configurable[] getConfigurables() {
|
||||
final Application app = ApplicationManager.getApplication();
|
||||
final ConfigurableEP[] extensions = app.getExtensions(ConfigurableExtensionPointUtil.APPLICATION_CONFIGURABLES);
|
||||
Configurable[] components = app.getComponents(Configurable.class);
|
||||
|
||||
List<Configurable> result = ConfigurableExtensionPointUtil.buildConfigurablesList(extensions, components, null);
|
||||
|
||||
return result.toArray(new Configurable[result.size()]);
|
||||
@Override
|
||||
protected ConfigurableFilter getConfigurableFilter() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean equals(Object object) {
|
||||
|
||||
+11
-12
@@ -15,18 +15,20 @@
|
||||
*/
|
||||
package com.intellij.openapi.options.ex;
|
||||
|
||||
import com.intellij.openapi.options.*;
|
||||
import com.intellij.openapi.options.Configurable;
|
||||
import com.intellij.openapi.options.ConfigurableGroup;
|
||||
import com.intellij.openapi.options.NonDefaultProjectConfigurable;
|
||||
import com.intellij.openapi.options.OptionsBundle;
|
||||
import com.intellij.openapi.project.Project;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author max
|
||||
*/
|
||||
public class ProjectConfigurablesGroup implements ConfigurableGroup {
|
||||
private Project myProject;
|
||||
public class ProjectConfigurablesGroup extends ConfigurablesGroupBase implements ConfigurableGroup {
|
||||
private final Project myProject;
|
||||
|
||||
public ProjectConfigurablesGroup(Project project) {
|
||||
super(project, ConfigurableExtensionPointUtil.PROJECT_CONFIGURABLES);
|
||||
myProject = project;
|
||||
}
|
||||
|
||||
@@ -44,17 +46,14 @@ public class ProjectConfigurablesGroup implements ConfigurableGroup {
|
||||
return myProject.isDefault();
|
||||
}
|
||||
|
||||
public Configurable[] getConfigurables() {
|
||||
final ConfigurableEP[] extensions = myProject.getExtensions(ConfigurableExtensionPointUtil.PROJECT_CONFIGURABLES);
|
||||
Configurable[] components = myProject.getComponents(Configurable.class);
|
||||
List<Configurable> result = ConfigurableExtensionPointUtil.buildConfigurablesList(extensions, components, new ConfigurableFilter() {
|
||||
@Override
|
||||
protected ConfigurableFilter getConfigurableFilter() {
|
||||
return new ConfigurableFilter() {
|
||||
public boolean isIncluded(final Configurable configurable) {
|
||||
if (isDefault() && configurable instanceof NonDefaultProjectConfigurable) return false;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
return result.toArray(new Configurable[result.size()]);
|
||||
};
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
|
||||
@@ -259,7 +259,7 @@
|
||||
|
||||
|
||||
<!-- Global Code Style -->
|
||||
<projectConfigurable implementation="com.intellij.application.options.CodeStyleSchemesConfigurable" order="after colors"/>
|
||||
<projectConfigurable instance="com.intellij.application.options.CodeStyleSchemesConfigurable" order="after colors"/>
|
||||
|
||||
<!-- File Types -->
|
||||
<applicationConfigurable implementation="com.intellij.openapi.fileTypes.impl.FileTypeConfigurable"/>
|
||||
@@ -543,8 +543,8 @@
|
||||
factoryClass="com.intellij.ide.structureView.impl.StructureViewToolWindowFactory"/>
|
||||
<psi.fileReferenceHelper implementation="com.intellij.psi.impl.source.resolve.reference.impl.providers.PsiFileReferenceHelper"/>
|
||||
<psi.fileReferenceHelper implementation="com.intellij.psi.impl.source.resolve.reference.impl.providers.JarFileReferenceHelper"/>
|
||||
<projectConfigurable implementation="com.intellij.openapi.vfs.encoding.FileEncodingConfigurable"/>
|
||||
<projectConfigurable implementation="com.intellij.ui.tabs.FileColorsConfigurable" id="fileColors"/>
|
||||
<projectConfigurable instance="com.intellij.openapi.vfs.encoding.FileEncodingConfigurable"/>
|
||||
<projectConfigurable instance="com.intellij.ui.tabs.FileColorsConfigurable" id="fileColors"/>
|
||||
|
||||
<uiDebuggerExtension implementation="com.intellij.ui.debugger.extensions.PlaybackDebugger"/>
|
||||
<uiDebuggerExtension implementation="com.intellij.ui.debugger.extensions.DisposerDebugger"/>
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
<ComponentRoamingType component="PropertiesComponent" type="DISABLED"/>
|
||||
|
||||
<progressFunComponentProvider implementation="com.intellij.featureStatistics.ProgressFunProvider"/>
|
||||
<projectConfigurable implementation="com.intellij.javaee.ExternalResourceConfigurable"/>
|
||||
<projectConfigurable instance="com.intellij.javaee.ExternalResourceConfigurable"/>
|
||||
|
||||
<bundledKeymapProvider implementation="com.intellij.openapi.keymap.impl.DefaultBundledKeymaps"/>
|
||||
<!-- <checkinHandlerFactory implementation="com.intellij.openapi.vcs.CheckRemoteStatusCheckinHandlerFactory"/> -->
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
<selectInTarget implementation="com.intellij.openapi.vcs.changes.SelectInChangesViewTarget"/>
|
||||
|
||||
<projectConfigurable implementation="com.intellij.openapi.vcs.configurable.VcsManagerConfigurable" id="vcs"/>
|
||||
<projectConfigurable instance="com.intellij.openapi.vcs.configurable.VcsManagerConfigurable" id="vcs"/>
|
||||
|
||||
<changesViewContent tabName="Repository" className="com.intellij.openapi.vcs.changes.committed.CommittedChangesViewManager"
|
||||
predicateClassName="com.intellij.openapi.vcs.changes.committed.CommittedChangesVisibilityPredicate"/>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
a consistent copyright notice.
|
||||
</description>
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<projectConfigurable implementation="com.maddyhome.idea.copyright.ui.CopyrightProjectConfigurable"/>
|
||||
<projectConfigurable instance="com.maddyhome.idea.copyright.ui.CopyrightProjectConfigurable"/>
|
||||
<errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
|
||||
<checkinHandlerFactory implementation="com.maddyhome.idea.copyright.actions.UpdateCopyrightCheckinHandlerFactory"/>
|
||||
<projectService serviceInterface="com.maddyhome.idea.copyright.actions.UpdateCopyrightCheckinHandlerState"
|
||||
|
||||
@@ -98,8 +98,8 @@
|
||||
<errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
|
||||
<fileTypeFactory implementation="org.jetbrains.plugins.groovy.GroovyFileTypeLoader"/>
|
||||
|
||||
<projectConfigurable implementation="org.jetbrains.plugins.groovy.gant.GantConfigurable"/>
|
||||
<projectConfigurable implementation="org.jetbrains.plugins.groovy.gradle.GradleConfigurable"/>
|
||||
<projectConfigurable instance="org.jetbrains.plugins.groovy.gant.GantConfigurable"/>
|
||||
<projectConfigurable instance="org.jetbrains.plugins.groovy.gradle.GradleConfigurable"/>
|
||||
|
||||
<projectService serviceInterface="org.jetbrains.plugins.groovy.gant.GantSettings" serviceImplementation="org.jetbrains.plugins.groovy.gant.GantSettings"/>
|
||||
<projectService serviceInterface="org.jetbrains.plugins.groovy.gradle.GradleSettings" serviceImplementation="org.jetbrains.plugins.groovy.gradle.GradleSettings"/>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<applicationService serviceImplementation="org.jetbrains.idea.maven.indices.MavenIndicesManager"/>
|
||||
<applicationService serviceImplementation="org.jetbrains.idea.maven.services.MavenServicesManager"/>
|
||||
|
||||
<projectConfigurable implementation="org.jetbrains.idea.maven.utils.MavenSettings" order="last"/>
|
||||
<projectConfigurable instance="org.jetbrains.idea.maven.utils.MavenSettings" order="last"/>
|
||||
|
||||
<stepsBeforeRunProvider implementation="org.jetbrains.idea.maven.tasks.MavenBeforeRunTasksProvider"/>
|
||||
<keymapExtension implementation="org.jetbrains.idea.maven.tasks.MavenKeymapExtension"/>
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<projectService serviceInterface="com.intellij.spellchecker.SpellCheckerManager"
|
||||
serviceImplementation="com.intellij.spellchecker.SpellCheckerManager"/>
|
||||
<editorCustomization implementation="com.intellij.spellchecker.ui.SpellCheckingEditorCustomization"/>
|
||||
<projectConfigurable implementation="com.intellij.spellchecker.settings.SpellCheckerSettingsManager"/>
|
||||
<projectConfigurable instance="com.intellij.spellchecker.settings.SpellCheckerSettingsManager"/>
|
||||
|
||||
|
||||
<inspectionToolProvider
|
||||
|
||||
+2
-3
@@ -17,7 +17,6 @@ package com.intellij.spellchecker.settings;
|
||||
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.options.SearchableConfigurable;
|
||||
import com.intellij.openapi.options.ShowSettingsUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.spellchecker.util.SpellCheckerBundle;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
@@ -31,9 +30,9 @@ public class SpellCheckerSettingsManager implements SearchableConfigurable {
|
||||
private final SpellCheckerSettings settings;
|
||||
private final Project project;
|
||||
|
||||
public SpellCheckerSettingsManager(Project project) {
|
||||
public SpellCheckerSettingsManager(Project project, SpellCheckerSettings settings) {
|
||||
this.project = project;
|
||||
settings = SpellCheckerSettings.getInstance(project);
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
@Nls
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<i18nInspectionTool implementation="com.intellij.uiDesigner.i18n.I18nFormInspection"/>
|
||||
<java15InspectionTool implementation="com.intellij.uiDesigner.inspections.Java15FormInspection"/>
|
||||
|
||||
<projectConfigurable implementation="com.intellij.uiDesigner.GuiDesignerConfigurable"/> <!-- GUI Designer -->
|
||||
<projectConfigurable instance="com.intellij.uiDesigner.GuiDesignerConfigurable"/>
|
||||
|
||||
<favoriteNodeProvider implementation="com.intellij.uiDesigner.projectView.UIDesignerFavoriteNodeProvider"/>
|
||||
<renameHandler implementation="com.intellij.uiDesigner.projectView.FormRenameHandler"/>
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ public class FileAssociationsConfigurable implements SearchableConfigurable, Non
|
||||
private final UIState myState;
|
||||
private AssociationsEditor myEditor;
|
||||
|
||||
FileAssociationsConfigurable(Project project) {
|
||||
public FileAssociationsConfigurable(Project project) {
|
||||
myProject = project;
|
||||
myState = ServiceManager.getService(project, UIState.class);
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
serviceInterface="org.intellij.lang.xpath.xslt.psi.XsltElementFactory"
|
||||
serviceImplementation="org.intellij.lang.xpath.xslt.psi.impl.XsltElementFactoryImpl" />
|
||||
|
||||
<projectConfigurable implementation="org.intellij.lang.xpath.xslt.associations.impl.FileAssociationsConfigurable" />
|
||||
<projectConfigurable instance="org.intellij.lang.xpath.xslt.associations.impl.FileAssociationsConfigurable" />
|
||||
|
||||
<projectService
|
||||
serviceInterface="org.intellij.lang.xpath.xslt.associations.impl.FileAssociationsConfigurable$UIState"
|
||||
|
||||
@@ -634,10 +634,10 @@
|
||||
<projectConfigurable implementation="com.intellij.profile.codeInspection.ui.ProjectInspectionToolsConfigurable"/>
|
||||
|
||||
<!-- Project Structure -->
|
||||
<projectConfigurable implementation="com.intellij.compiler.options.CompilerConfigurable" order="after project"/>
|
||||
<projectConfigurable instance="com.intellij.compiler.options.CompilerConfigurable" order="after project"/>
|
||||
<!-- Compiler -->
|
||||
|
||||
<projectConfigurable implementation="com.intellij.psi.templateLanguages.TemplateDataLanguageConfigurable"/>
|
||||
<projectConfigurable instance="com.intellij.psi.templateLanguages.TemplateDataLanguageConfigurable"/>
|
||||
|
||||
<!-- Scopes -->
|
||||
<!-- This is registered as a top-level configurable in IDEA, and as a service (accessible from certain dialogs) in platform. -->
|
||||
|
||||
+8
-9
@@ -19,6 +19,7 @@ import com.intellij.javaee.ExternalResourceConfigurable;
|
||||
import com.intellij.javaee.ExternalResourceManager;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.options.ShowSettingsUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -34,16 +35,14 @@ public class ManuallySetupExtResourceAction extends BaseExtResourceAction {
|
||||
|
||||
protected void doInvoke(@NotNull final PsiFile file, final int offset, @NotNull final String uri, final Editor editor) throws IncorrectOperationException {
|
||||
ExternalResourceManager.getInstance().addResource(uri,"");
|
||||
final ExternalResourceConfigurable component = ShowSettingsUtil.getInstance().createProjectConfigurable(file.getProject(), ExternalResourceConfigurable.class);
|
||||
ShowSettingsUtil.getInstance().editConfigurable(
|
||||
file.getProject(),
|
||||
component,
|
||||
new Runnable() {
|
||||
public void run() {
|
||||
component.selectResource(uri);
|
||||
}
|
||||
final ShowSettingsUtil util = ShowSettingsUtil.getInstance();
|
||||
final Project project = file.getProject();
|
||||
final ExternalResourceConfigurable component = util.createProjectConfigurable(project, ExternalResourceConfigurable.class);
|
||||
util.editConfigurable(project, component, new Runnable() {
|
||||
public void run() {
|
||||
component.selectResource(uri);
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
public boolean startInWriteAction() {
|
||||
|
||||
Reference in New Issue
Block a user