From 5dc17cc55f976815b78eeab2280f758f43ccb42b Mon Sep 17 00:00:00 2001 From: Konstantin Kolosovsky Date: Mon, 15 May 2017 15:55:07 +0300 Subject: [PATCH] Simplify "VcsManagerConfigurable" --- .../configurable/VcsManagerConfigurable.java | 36 +++++++------------ .../VcsManagerConfigurableProvider.java | 6 ++-- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsManagerConfigurable.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsManagerConfigurable.java index 33a5826ccdae..9535825df05a 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsManagerConfigurable.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsManagerConfigurable.java @@ -28,21 +28,23 @@ import com.intellij.openapi.vcs.changes.conflicts.ChangelistConflictConfigurable import com.intellij.openapi.vcs.changes.ui.IgnoredSettingsPanel; import com.intellij.openapi.vcs.impl.VcsDescriptor; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.ArrayList; import java.util.List; import java.util.Set; import static com.intellij.openapi.options.ex.ConfigurableWrapper.wrapConfigurable; -import static com.intellij.util.containers.ContainerUtil.map2Set; +import static com.intellij.util.ArrayUtil.toObjectArray; +import static com.intellij.util.ObjectUtils.notNull; +import static com.intellij.util.containers.ContainerUtil.*; public class VcsManagerConfigurable extends SearchableConfigurable.Parent.Abstract implements Configurable.NoScroll { - private final Project myProject; + @NotNull private final Project myProject; private VcsDirectoryConfigurationPanel myMappings; private VcsGeneralConfigurationConfigurable myGeneralPanel; - public VcsManagerConfigurable(Project project) { + public VcsManagerConfigurable(@NotNull Project project) { myProject = project; } @@ -92,6 +94,7 @@ public class VcsManagerConfigurable extends SearchableConfigurable.Parent.Abstra } @Override + @NotNull public String getHelpTopic() { return "project.propVCSSupport.Mappings"; } @@ -99,42 +102,28 @@ public class VcsManagerConfigurable extends SearchableConfigurable.Parent.Abstra @Override @NotNull public String getId() { - return getDefaultConfigurableIdValue(this); - } - - @NotNull - private static String getDefaultConfigurableIdValue(final Configurable configurable) { - final String helpTopic = configurable.getHelpTopic(); - return helpTopic == null ? configurable.getClass().getName() : helpTopic; + return getHelpTopic(); } @Override protected Configurable[] buildConfigurables() { myGeneralPanel = new VcsGeneralConfigurationConfigurable(myProject, this); - List result = new ArrayList<>(); + List result = newArrayList(); result.add(myGeneralPanel); result.add(new VcsBackgroundOperationsConfigurable(myProject)); - if (!myProject.isDefault()) { result.add(new IgnoredSettingsPanel(myProject)); } - /*if (!myProject.isDefault()) { - result.add(new CacheSettingsPanel(myProject)); - }*/ result.add(new IssueNavigationConfigurationPanel(myProject)); if (!myProject.isDefault()) { result.add(new ChangelistConflictConfigurable(ChangeListManagerImpl.getInstanceImpl(myProject))); } - result.add(new CommitDialogConfigurable(myProject)); result.add(new ShelfProjectConfigurable(myProject)); for (VcsConfigurableProvider provider : VcsConfigurableProvider.EP_NAME.getExtensions()) { - final Configurable configurable = provider.getConfigurable(myProject); - if (configurable != null) { - result.add(configurable); - } + addIfNotNull(result, provider.getConfigurable(myProject)); } Set projectConfigurableIds = map2Set(myProject.getExtensions(Configurable.PROJECT_CONFIGURABLE), ep -> ep.id); @@ -144,9 +133,10 @@ public class VcsManagerConfigurable extends SearchableConfigurable.Parent.Abstra } } - return result.toArray(new Configurable[result.size()]); + return toObjectArray(result, Configurable.class); } + @Nullable public VcsDirectoryConfigurationPanel getMappings() { return myMappings; } @@ -176,7 +166,7 @@ public class VcsManagerConfigurable extends SearchableConfigurable.Parent.Abstra return new ObjectProducer() { @Override protected Object createElement() { - return ProjectLevelVcsManager.getInstance(getProject()).findVcsByName(myDescriptor.getName()).getConfigurable(); + return notNull(ProjectLevelVcsManager.getInstance(getProject()).findVcsByName(myDescriptor.getName())).getConfigurable(); } @Override diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsManagerConfigurableProvider.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsManagerConfigurableProvider.java index 0ff9ef6c96d6..daa5dffe208b 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsManagerConfigurableProvider.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsManagerConfigurableProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * 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. @@ -22,9 +22,9 @@ import com.intellij.openapi.vcs.ProjectLevelVcsManager; import org.jetbrains.annotations.NotNull; public final class VcsManagerConfigurableProvider extends ConfigurableProvider { - private final Project myProject; + @NotNull private final Project myProject; - public VcsManagerConfigurableProvider(Project project) { + public VcsManagerConfigurableProvider(@NotNull Project project) { myProject = project; }