diff options
Diffstat (limited to 'platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsPanelProviderImpl.java')
-rw-r--r-- | platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsPanelProviderImpl.java | 49 |
1 files changed, 39 insertions, 10 deletions
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsPanelProviderImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsPanelProviderImpl.java index 6dc0a5bc21d9..2e20230198c6 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsPanelProviderImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsPanelProviderImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 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. @@ -16,26 +16,55 @@ package com.intellij.xdebugger.impl.settings; import com.intellij.openapi.options.Configurable; -import com.intellij.openapi.project.Project; +import com.intellij.util.SmartList; +import com.intellij.util.containers.ContainerUtil; import com.intellij.xdebugger.settings.XDebuggerSettings; +import org.jetbrains.annotations.NotNull; -import java.util.ArrayList; import java.util.Collection; +import java.util.List; /** * @author nik */ public class XDebuggerSettingsPanelProviderImpl extends DebuggerSettingsPanelProvider { - public int getPriority() { - return 0; - } - + @NotNull + @Override public Collection<? extends Configurable> getConfigurables() { - ArrayList<Configurable> list = new ArrayList<Configurable>(); - for (XDebuggerSettings settings : XDebuggerSettingsManager.getInstance().getSettingsList()) { - list.add(settings.createConfigurable()); + List<Configurable> list = new SmartList<Configurable>(); + for (XDebuggerSettings settings : XDebuggerSettingsManager.getInstanceImpl().getSettingsList()) { + ContainerUtil.addIfNotNull(list, settings.createConfigurable()); } return list; } + @NotNull + @Override + public Collection<? extends Configurable> getConfigurable(@NotNull XDebuggerSettings.Category category) { + List<Configurable> list; + if (category == XDebuggerSettings.Category.ROOT) { + list = new SmartList<Configurable>(new GeneralConfigurable()); + } + else { + list = null; + } + + for (XDebuggerSettings settings : XDebuggerSettingsManager.getInstanceImpl().getSettingsList()) { + Configurable configurable = settings.createConfigurable(category); + if (configurable != null) { + if (list == null) { + list = new SmartList<Configurable>(); + } + list.add(configurable); + } + } + return ContainerUtil.notNullize(list); + } + + @Override + public void generalApplied(@NotNull XDebuggerSettings.Category category) { + for (XDebuggerSettings settings : XDebuggerSettingsManager.getInstanceImpl().getSettingsList()) { + settings.generalApplied(category); + } + } } |