mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
move configurationFactoriesWithoutUnknown to API
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2016 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.
|
||||
@@ -51,9 +51,7 @@ class RunConfigurationByRecordProvider implements ConfigurationByRecordProvider
|
||||
|
||||
private void initRunConfigurationsMap() {
|
||||
RunManagerEx manager = RunManagerEx.getInstanceEx(myProject);
|
||||
ConfigurationType[] types = manager.getConfigurationFactories();
|
||||
|
||||
for (ConfigurationType type : types) {
|
||||
for (ConfigurationType type : manager.getConfigurationFactories()) {
|
||||
Map<String, List<RunnerAndConfigurationSettings>> structure = manager.getStructure(type);
|
||||
for (Map.Entry<String, List<RunnerAndConfigurationSettings>> e : structure.entrySet()) {
|
||||
for (RunnerAndConfigurationSettings settings : e.getValue()) {
|
||||
@@ -62,7 +60,6 @@ class RunConfigurationByRecordProvider implements ConfigurationByRecordProvider
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -58,6 +58,8 @@ abstract class RunManager {
|
||||
*/
|
||||
abstract val configurationFactories: Array<ConfigurationType>
|
||||
|
||||
abstract val configurationFactoriesWithoutUnknown: List<ConfigurationType>
|
||||
|
||||
/**
|
||||
* Returns the list of all configurations of a specified type.
|
||||
* @param type a run configuration type.
|
||||
|
||||
+25
-28
@@ -18,7 +18,6 @@ package com.intellij.execution.actions;
|
||||
|
||||
import com.intellij.execution.*;
|
||||
import com.intellij.execution.configurations.ConfigurationType;
|
||||
import com.intellij.execution.configurations.UnknownConfigurationType;
|
||||
import com.intellij.execution.impl.EditConfigurationsDialog;
|
||||
import com.intellij.execution.impl.RunDialog;
|
||||
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl;
|
||||
@@ -981,36 +980,34 @@ public class ChooseRunConfigurationPopup implements ExecutorProvider {
|
||||
}
|
||||
|
||||
Map<RunnerAndConfigurationSettings, ItemWrapper> wrappedExisting = new LinkedHashMap<>();
|
||||
for (ConfigurationType type : manager.getConfigurationFactories()) {
|
||||
if (!(type instanceof UnknownConfigurationType)) {
|
||||
Map<String, List<RunnerAndConfigurationSettings>> structure = manager.getStructure(type);
|
||||
for (Map.Entry<String, List<RunnerAndConfigurationSettings>> entry : structure.entrySet()) {
|
||||
if (entry.getValue().isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
for (ConfigurationType type : manager.getConfigurationFactoriesWithoutUnknown()) {
|
||||
Map<String, List<RunnerAndConfigurationSettings>> structure = manager.getStructure(type);
|
||||
for (Map.Entry<String, List<RunnerAndConfigurationSettings>> entry : structure.entrySet()) {
|
||||
if (entry.getValue().isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
final String key = entry.getKey();
|
||||
if (key != null) {
|
||||
boolean isSelected = entry.getValue().contains(selectedConfiguration);
|
||||
if (isSelected) {
|
||||
assert selectedConfiguration != null;
|
||||
}
|
||||
FolderWrapper folderWrapper = new FolderWrapper(project, executorProvider,
|
||||
key + (isSelected ? " (mnemonic is to \"" + selectedConfiguration.getName() + "\")" : ""),
|
||||
entry.getValue());
|
||||
if (isSelected) {
|
||||
folderWrapper.setMnemonic(1);
|
||||
}
|
||||
result.add(folderWrapper);
|
||||
final String key = entry.getKey();
|
||||
if (key != null) {
|
||||
boolean isSelected = entry.getValue().contains(selectedConfiguration);
|
||||
if (isSelected) {
|
||||
assert selectedConfiguration != null;
|
||||
}
|
||||
else {
|
||||
for (RunnerAndConfigurationSettings configuration : entry.getValue()) {
|
||||
final ItemWrapper wrapped = ItemWrapper.wrap(project, configuration);
|
||||
if (configuration == selectedConfiguration) {
|
||||
wrapped.setMnemonic(1);
|
||||
}
|
||||
wrappedExisting.put(configuration, wrapped);
|
||||
FolderWrapper folderWrapper = new FolderWrapper(project, executorProvider,
|
||||
key + (isSelected ? " (mnemonic is to \"" + selectedConfiguration.getName() + "\")" : ""),
|
||||
entry.getValue());
|
||||
if (isSelected) {
|
||||
folderWrapper.setMnemonic(1);
|
||||
}
|
||||
result.add(folderWrapper);
|
||||
}
|
||||
else {
|
||||
for (RunnerAndConfigurationSettings configuration : entry.getValue()) {
|
||||
final ItemWrapper wrapped = ItemWrapper.wrap(project, configuration);
|
||||
if (configuration == selectedConfiguration) {
|
||||
wrapped.setMnemonic(1);
|
||||
}
|
||||
wrappedExisting.put(configuration, wrapped);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-6
@@ -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.
|
||||
@@ -30,8 +30,6 @@ import com.intellij.openapi.project.DumbAwareAction;
|
||||
import com.intellij.openapi.project.IndexNotReadyException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.wm.ex.WindowManagerEx;
|
||||
import com.intellij.openapi.wm.impl.IdeFrameImpl;
|
||||
import com.intellij.ui.IdeBorderFactory;
|
||||
import com.intellij.ui.SizedIcon;
|
||||
import com.intellij.ui.components.panels.NonOpaquePanel;
|
||||
@@ -156,8 +154,7 @@ public class RunConfigurationsComboBoxAction extends ComboBoxAction implements D
|
||||
allActionsGroup.addSeparator();
|
||||
}
|
||||
|
||||
final ConfigurationType[] types = runManager.getConfigurationFactories();
|
||||
for (ConfigurationType type : types) {
|
||||
for (ConfigurationType type : runManager.getConfigurationFactories()) {
|
||||
final DefaultActionGroup actionGroup = new DefaultActionGroup();
|
||||
Map<String,List<RunnerAndConfigurationSettings>> structure = runManager.getStructure(type);
|
||||
for (Map.Entry<String, List<RunnerAndConfigurationSettings>> entry : structure.entrySet()) {
|
||||
@@ -273,7 +270,7 @@ public class RunConfigurationsComboBoxAction extends ComboBoxAction implements D
|
||||
myConfiguration = configuration;
|
||||
myProject = project;
|
||||
String name = configuration.getName();
|
||||
if (name == null || name.length() == 0) {
|
||||
if (name.isEmpty()) {
|
||||
name = " ";
|
||||
}
|
||||
final Presentation presentation = getTemplatePresentation();
|
||||
|
||||
+3
-7
@@ -19,7 +19,6 @@ import com.intellij.execution.BeforeRunTask;
|
||||
import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import com.intellij.execution.configurations.ConfigurationType;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.configurations.UnknownConfigurationType;
|
||||
import com.intellij.execution.impl.RunConfigurationBeforeRunProvider;
|
||||
import com.intellij.execution.impl.RunConfigurationSelector;
|
||||
import com.intellij.execution.impl.RunManagerImpl;
|
||||
@@ -119,13 +118,10 @@ public class CompoundRunConfigurationSettingsEditor extends SettingsEditor<Compo
|
||||
return decorator.disableUpDownActions().setAddAction(new AnActionButtonRunnable() {
|
||||
@Override
|
||||
public void run(AnActionButton button) {
|
||||
|
||||
final List<RunConfiguration> all = new ArrayList<>();
|
||||
for (ConfigurationType type : myRunManager.getConfigurationFactories()) {
|
||||
if (!(type instanceof UnknownConfigurationType)) {
|
||||
for (RunnerAndConfigurationSettings settings : myRunManager.getConfigurationSettingsList(type)) {
|
||||
all.add(settings.getConfiguration());
|
||||
}
|
||||
for (ConfigurationType type : myRunManager.getConfigurationFactoriesWithoutUnknown()) {
|
||||
for (RunnerAndConfigurationSettings settings : myRunManager.getConfigurationSettingsList(type)) {
|
||||
all.add(settings.getConfiguration());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -146,9 +146,7 @@ public abstract class BaseExecuteBeforeRunDialog<T extends BeforeRunTask> extend
|
||||
private DefaultMutableTreeNode buildNodes() {
|
||||
DefaultMutableTreeNode root = new DefaultMutableTreeNode(new Descriptor());
|
||||
RunManager runManager = RunManager.getInstance(myProject);
|
||||
final ConfigurationType[] configTypes = runManager.getConfigurationFactories();
|
||||
|
||||
for (final ConfigurationType type : configTypes) {
|
||||
for (final ConfigurationType type : runManager.getConfigurationFactories()) {
|
||||
final Icon icon = type.getIcon();
|
||||
DefaultMutableTreeNode typeNode = new DefaultMutableTreeNode(new ConfigurationTypeDescriptor(type, icon, isConfigurationAssigned(type)));
|
||||
root.add(typeNode);
|
||||
|
||||
@@ -204,8 +204,7 @@ class RunConfigurable extends BaseConfigurable {
|
||||
}
|
||||
});
|
||||
final RunManagerEx manager = getRunManager();
|
||||
final ConfigurationType[] factories = manager.getConfigurationFactories();
|
||||
for (ConfigurationType type : factories) {
|
||||
for (ConfigurationType type : manager.getConfigurationFactories()) {
|
||||
final List<RunnerAndConfigurationSettings> configurations = manager.getConfigurationSettingsList(type);
|
||||
if (!configurations.isEmpty()) {
|
||||
final DefaultMutableTreeNode typeNode = new DefaultMutableTreeNode(type);
|
||||
@@ -232,16 +231,13 @@ class RunConfigurable extends BaseConfigurable {
|
||||
|
||||
// add defaults
|
||||
final DefaultMutableTreeNode defaults = new DefaultMutableTreeNode(DEFAULTS);
|
||||
final ConfigurationType[] configurationTypes = RunManagerImpl.getInstanceImpl(myProject).getConfigurationFactories();
|
||||
for (final ConfigurationType type : configurationTypes) {
|
||||
if (!(type instanceof UnknownConfigurationType)) {
|
||||
ConfigurationFactory[] configurationFactories = type.getConfigurationFactories();
|
||||
DefaultMutableTreeNode typeNode = new DefaultMutableTreeNode(type);
|
||||
defaults.add(typeNode);
|
||||
if (configurationFactories.length != 1) {
|
||||
for (ConfigurationFactory factory : configurationFactories) {
|
||||
typeNode.add(new DefaultMutableTreeNode(factory));
|
||||
}
|
||||
for (final ConfigurationType type : RunManagerImpl.getInstanceImpl(myProject).getConfigurationFactoriesWithoutUnknown()) {
|
||||
ConfigurationFactory[] configurationFactories = type.getConfigurationFactories();
|
||||
DefaultMutableTreeNode typeNode = new DefaultMutableTreeNode(type);
|
||||
defaults.add(typeNode);
|
||||
if (configurationFactories.length != 1) {
|
||||
for (ConfigurationFactory factory : configurationFactories) {
|
||||
typeNode.add(new DefaultMutableTreeNode(factory));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -668,7 +664,6 @@ class RunConfigurable extends BaseConfigurable {
|
||||
updateActiveConfigurationFromSelected();
|
||||
|
||||
final RunManagerImpl manager = getRunManager();
|
||||
final ConfigurationType[] types = manager.getConfigurationFactories();
|
||||
List<ConfigurationType> configurationTypes = new ArrayList<>();
|
||||
for (int i = 0; i < myRoot.getChildCount(); i++) {
|
||||
final DefaultMutableTreeNode node = (DefaultMutableTreeNode)myRoot.getChildAt(i);
|
||||
@@ -677,7 +672,7 @@ class RunConfigurable extends BaseConfigurable {
|
||||
configurationTypes.add((ConfigurationType)userObject);
|
||||
}
|
||||
}
|
||||
for (ConfigurationType type : types) {
|
||||
for (ConfigurationType type : manager.getConfigurationFactories()) {
|
||||
if (!configurationTypes.contains(type))
|
||||
configurationTypes.add(type);
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
|
||||
override val configurationFactories by lazy { idToType.values.toTypedArray() }
|
||||
|
||||
val configurationFactoriesWithoutUnknown: List<ConfigurationType>
|
||||
override val configurationFactoriesWithoutUnknown: List<ConfigurationType>
|
||||
get() = idToType.values.filterSmart { it !is UnknownConfigurationType }
|
||||
|
||||
/**
|
||||
@@ -232,7 +232,7 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
|
||||
fun getSettings(configuration: RunConfiguration) = sortedConfigurations.firstOrNull { it.configuration === configuration } as? RunnerAndConfigurationSettingsImpl
|
||||
|
||||
override fun getConfigurationSettingsList(type: ConfigurationType) = sortedConfigurations.filterSmart { it.type?.id == type.id }
|
||||
override fun getConfigurationSettingsList(type: ConfigurationType) = lock.read { sortedConfigurations.filterSmart { it.type?.id == type.id } }
|
||||
|
||||
fun getConfigurationSettings() = idToSettings.values.toTypedArray()
|
||||
|
||||
|
||||
+2
-6
@@ -20,7 +20,6 @@ import com.intellij.execution.actions.ChooseRunConfigurationPopup;
|
||||
import com.intellij.execution.actions.ExecutorProvider;
|
||||
import com.intellij.execution.configurations.ConfigurationFactory;
|
||||
import com.intellij.execution.configurations.ConfigurationType;
|
||||
import com.intellij.execution.configurations.UnknownConfigurationType;
|
||||
import com.intellij.execution.executors.DefaultRunExecutor;
|
||||
import com.intellij.execution.impl.EditConfigurationsDialog;
|
||||
import com.intellij.execution.impl.NewRunConfigurationPopup;
|
||||
@@ -220,20 +219,17 @@ public class ProjectStartupConfigurable implements SearchableConfigurable, Confi
|
||||
@Override
|
||||
public void perform(@NotNull final Project project, @NotNull final Executor executor, @NotNull DataContext context) {
|
||||
final RunManagerImpl runManager = RunManagerImpl.getInstanceImpl(project);
|
||||
final ConfigurationType[] factories = runManager.getConfigurationFactories();
|
||||
final Condition<ConfigurationType> filter = new Condition<ConfigurationType>() {
|
||||
private final RunnerRegistry myRegistry = RunnerRegistry.getInstance();
|
||||
|
||||
@Override
|
||||
public boolean value(ConfigurationType configurationType) {
|
||||
ConfigurationFactory factory;
|
||||
return !UnknownConfigurationType.INSTANCE.equals(configurationType) &&
|
||||
((factory = runManager.getFactory(configurationType.getId(), null)) != null) &&
|
||||
return ((factory = runManager.getFactory(configurationType.getId(), null)) != null) &&
|
||||
myRegistry.getRunner(executor.getId(), runManager.getConfigurationTemplate(factory).getConfiguration()) != null;
|
||||
}
|
||||
};
|
||||
final List<ConfigurationType> factoriesList = ContainerUtil.filter(Arrays.asList(factories), filter);
|
||||
final ListPopup popup = NewRunConfigurationPopup.createAddPopup(factoriesList, "",
|
||||
final ListPopup popup = NewRunConfigurationPopup.createAddPopup(ContainerUtil.filter(runManager.getConfigurationFactoriesWithoutUnknown(), filter), "",
|
||||
factory -> ApplicationManager.getApplication().invokeLater(() -> {
|
||||
final EditConfigurationsDialog dialog = new EditConfigurationsDialog(project, factory);
|
||||
if (dialog.showAndGet()) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2016 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.
|
||||
@@ -36,9 +36,7 @@ public class DumpConfigurationTypesAction extends AnAction implements DumbAware
|
||||
@Override
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
final Project project = e.getProject();
|
||||
final ConfigurationType[] factories =
|
||||
RunManager.getInstance(project).getConfigurationFactories();
|
||||
for (ConfigurationType factory : factories) {
|
||||
for (ConfigurationType factory : RunManager.getInstance(project).getConfigurationFactories()) {
|
||||
System.out.println(factory.getDisplayName() + " : " + factory.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,9 @@ class MockRunManager : RunManagerEx() {
|
||||
override val configurationFactories: Array<ConfigurationType>
|
||||
get() = emptyArray()
|
||||
|
||||
override val configurationFactoriesWithoutUnknown: List<ConfigurationType>
|
||||
get() = emptyList()
|
||||
|
||||
override val allConfigurationsList: List<RunConfiguration>
|
||||
get() = emptyList()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user