IDEA-128774 ConsoleDependentFilterProvider added

This commit is contained in:
Vojtech Krasa
2014-09-02 19:48:14 +02:00
parent ffff2ffd0c
commit 0abd400a06
2 changed files with 42 additions and 3 deletions
@@ -0,0 +1,32 @@
/*
* 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.
* 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.execution.filters;
import com.intellij.execution.ui.ConsoleView;
import com.intellij.openapi.project.Project;
import com.intellij.psi.search.GlobalSearchScope;
import org.jetbrains.annotations.NotNull;
public abstract class ConsoleDependentFilterProvider implements ConsoleFilterProvider {
@NotNull
public abstract Filter[] getDefaultFilters(@NotNull ConsoleView consoleView, @NotNull Project project, @NotNull GlobalSearchScope scope);
@NotNull
@Override
public Filter[] getDefaultFilters(@NotNull Project project) {
return Filter.EMPTY_ARRAY;
}
}
@@ -290,9 +290,16 @@ public class ConsoleViewImpl extends JPanel implements ConsoleView, ObservableCo
myFilters = new CompositeFilter(project);
if (usePredefinedMessageFilter) {
for (ConsoleFilterProvider eachProvider : Extensions.getExtensions(ConsoleFilterProvider.FILTER_PROVIDERS)) {
Filter[] filters = eachProvider instanceof ConsoleFilterProviderEx
? ((ConsoleFilterProviderEx)eachProvider).getDefaultFilters(project, searchScope)
: eachProvider.getDefaultFilters(project);
Filter[] filters;
if (eachProvider instanceof ConsoleDependentFilterProvider) {
filters = ((ConsoleDependentFilterProvider)eachProvider).getDefaultFilters(this, project, searchScope);
}
else if (eachProvider instanceof ConsoleFilterProviderEx) {
filters = ((ConsoleFilterProviderEx)eachProvider).getDefaultFilters(project, searchScope);
}
else {
filters = eachProvider.getDefaultFilters(project);
}
for (Filter filter : filters) {
myFilters.addFilter(filter);
}