diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/ProblemsScope.java b/platform/analysis-api/src/com/intellij/psi/search/scope/ProblemsScope.java
index 85b74fbe85a1..1af0caf0bf2d 100644
--- a/platform/analysis-api/src/com/intellij/psi/search/scope/ProblemsScope.java
+++ b/platform/analysis-api/src/com/intellij/psi/search/scope/ProblemsScope.java
@@ -22,7 +22,7 @@ public final class ProblemsScope extends NamedScope {
public static final ProblemsScope INSTANCE = new ProblemsScope();
private ProblemsScope() {
- super(NAME, AllIcons.Toolwindows.Problems, new FilteredPackageSet(NAME) {
+ super(NAME, AllIcons.Scope.Problems, new FilteredPackageSet(NAME) {
@Override
public boolean contains(@NotNull VirtualFile file, @NotNull Project project) {
WolfTheProblemSolver solver = project.isDisposed() ? null : WolfTheProblemSolver.getInstance(project);
diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectFilesScope.java b/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectFilesScope.java
index 55bdfdafb296..4c84c3c39573 100644
--- a/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectFilesScope.java
+++ b/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectFilesScope.java
@@ -1,6 +1,7 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.psi.search.scope;
+import com.intellij.icons.AllIcons;
import com.intellij.ide.IdeBundle;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectFileIndex;
@@ -20,7 +21,7 @@ public final class ProjectFilesScope extends NamedScope {
public static final ProjectFilesScope INSTANCE = new ProjectFilesScope();
public ProjectFilesScope() {
- super(NAME, new FilteredPackageSet(NAME) {
+ super(NAME, AllIcons.Nodes.Folder, new FilteredPackageSet(NAME) {
@Override
public boolean contains(@NotNull VirtualFile file, @NotNull Project project) {
ProjectFileIndex fileIndex = getFileIndex(project);
diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java b/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java
index 018c5926396c..a3f167b0659f 100644
--- a/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java
+++ b/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java
@@ -1,6 +1,7 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.psi.search.scope;
+import com.intellij.icons.AllIcons;
import com.intellij.ide.IdeBundle;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectFileIndex;
@@ -8,6 +9,7 @@ import com.intellij.openapi.roots.TestSourcesFilter;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.scope.packageSet.FilteredPackageSet;
import com.intellij.psi.search.scope.packageSet.NamedScope;
+import com.intellij.ui.OffsetIcon;
import org.jetbrains.annotations.NotNull;
/**
@@ -19,7 +21,7 @@ public final class ProjectProductionScope extends NamedScope {
public static final ProjectProductionScope INSTANCE = new ProjectProductionScope();
private ProjectProductionScope() {
- super(NAME, new FilteredPackageSet(NAME) {
+ super(NAME, new OffsetIcon(AllIcons.Scope.Production), new FilteredPackageSet(NAME) {
@Override
public boolean contains(@NotNull VirtualFile file, @NotNull Project project) {
ProjectFileIndex index = ProjectFilesScope.getFileIndex(project);
diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/TestsScope.java b/platform/analysis-api/src/com/intellij/psi/search/scope/TestsScope.java
index 5c9f9d7f95b7..957a2b91a09f 100644
--- a/platform/analysis-api/src/com/intellij/psi/search/scope/TestsScope.java
+++ b/platform/analysis-api/src/com/intellij/psi/search/scope/TestsScope.java
@@ -1,6 +1,7 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.psi.search.scope;
+import com.intellij.icons.AllIcons;
import com.intellij.ide.IdeBundle;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.TestSourcesFilter;
@@ -8,6 +9,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.scope.packageSet.FilteredPackageSet;
import com.intellij.psi.search.scope.packageSet.NamedScope;
import com.intellij.ui.Colored;
+import com.intellij.ui.OffsetIcon;
import org.jetbrains.annotations.NotNull;
/**
@@ -20,7 +22,7 @@ public final class TestsScope extends NamedScope {
public static final TestsScope INSTANCE = new TestsScope();
private TestsScope() {
- super(NAME, new FilteredPackageSet(NAME) {
+ super(NAME, new OffsetIcon(AllIcons.Scope.Tests), new FilteredPackageSet(NAME) {
@Override
public boolean contains(@NotNull VirtualFile file, @NotNull Project project) {
return TestSourcesFilter.isTestSources(file, project);
diff --git a/platform/icons/src/general/projectTab.svg b/platform/icons/src/general/projectTab.svg
new file mode 100644
index 000000000000..42dda7398d47
--- /dev/null
+++ b/platform/icons/src/general/projectTab.svg
@@ -0,0 +1,6 @@
+
diff --git a/platform/icons/src/ide/localScope.svg b/platform/icons/src/ide/localScope.svg
new file mode 100644
index 000000000000..dff1063415d4
--- /dev/null
+++ b/platform/icons/src/ide/localScope.svg
@@ -0,0 +1,6 @@
+
diff --git a/platform/icons/src/scope/changedFiles.svg b/platform/icons/src/scope/changedFiles.svg
new file mode 100644
index 000000000000..c5f8eb8d11c6
--- /dev/null
+++ b/platform/icons/src/scope/changedFiles.svg
@@ -0,0 +1,8 @@
+
diff --git a/platform/icons/src/scope/changedFilesAll.svg b/platform/icons/src/scope/changedFilesAll.svg
new file mode 100644
index 000000000000..35a5aa6d87c5
--- /dev/null
+++ b/platform/icons/src/scope/changedFilesAll.svg
@@ -0,0 +1,11 @@
+
diff --git a/platform/icons/src/scope/problems.svg b/platform/icons/src/scope/problems.svg
new file mode 100644
index 000000000000..b63de47a5b42
--- /dev/null
+++ b/platform/icons/src/scope/problems.svg
@@ -0,0 +1,3 @@
+
diff --git a/platform/icons/src/scope/production.svg b/platform/icons/src/scope/production.svg
new file mode 100644
index 000000000000..0a128a75b143
--- /dev/null
+++ b/platform/icons/src/scope/production.svg
@@ -0,0 +1,6 @@
+
diff --git a/platform/icons/src/scope/scratches.svg b/platform/icons/src/scope/scratches.svg
new file mode 100644
index 000000000000..e18256a520e8
--- /dev/null
+++ b/platform/icons/src/scope/scratches.svg
@@ -0,0 +1,6 @@
+
diff --git a/platform/icons/src/scope/tests.svg b/platform/icons/src/scope/tests.svg
new file mode 100644
index 000000000000..1240df7d543c
--- /dev/null
+++ b/platform/icons/src/scope/tests.svg
@@ -0,0 +1,6 @@
+
diff --git a/platform/lang-impl/src/com/intellij/ide/scratch/ScratchProjectViewPane.java b/platform/lang-impl/src/com/intellij/ide/scratch/ScratchProjectViewPane.java
index d5127bdcf3b1..e8749545a830 100644
--- a/platform/lang-impl/src/com/intellij/ide/scratch/ScratchProjectViewPane.java
+++ b/platform/lang-impl/src/com/intellij/ide/scratch/ScratchProjectViewPane.java
@@ -1,18 +1,4 @@
-/*
- * Copyright 2000-2015 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.
- */
+// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.ide.scratch;
import com.intellij.icons.AllIcons;
@@ -80,6 +66,11 @@ public class ScratchProjectViewPane extends ProjectViewPane {
return ID;
}
+ @Override
+ public Icon getIcon() {
+ return AllIcons.Scope.Scratches;
+ }
+
@Override
protected ProjectAbstractTreeStructureBase createStructure() {
return new MyTreeStructure(myProject);
@@ -217,7 +208,7 @@ public class ScratchProjectViewPane extends ProjectViewPane {
@Override
protected void update(PresentationData presentation) {
presentation.setPresentableText(getValue());
- presentation.setIcon(AllIcons.General.ProjectTab);
+ presentation.setIcon(AllIcons.Scope.Scratches);
}
@Override
diff --git a/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListScope.java b/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListScope.java
index 41cfd8bbc80c..184a4246db48 100644
--- a/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListScope.java
+++ b/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListScope.java
@@ -5,21 +5,21 @@ import com.intellij.icons.AllIcons;
import com.intellij.ide.IdeBundle;
import com.intellij.openapi.vcs.changes.ChangeListManager;
import com.intellij.psi.search.scope.packageSet.FilteredNamedScope;
+import com.intellij.ui.OffsetIcon;
import org.jetbrains.annotations.NotNull;
+import javax.swing.Icon;
+
public final class ChangeListScope extends FilteredNamedScope {
public static final String NAME = IdeBundle.message("scope.modified.files");
- private final boolean all; // TODO: use different icons instead
+ private static final Icon ICON = new OffsetIcon(AllIcons.Scope.ChangedFiles);
public ChangeListScope(@NotNull ChangeListManager manager) {
- super(NAME, AllIcons.Toolwindows.ToolWindowChanges, 0, manager::isFileAffected);
- all = true;
+ super(NAME, AllIcons.Scope.ChangedFilesAll, 0, manager::isFileAffected);
}
public ChangeListScope(@NotNull ChangeListManager manager, @NotNull String name) {
- super(name, AllIcons.Toolwindows.ToolWindowChanges, 0,
- file -> manager.getChangeLists(file).stream().anyMatch(list -> list.getName().equals(name)));
- all = false;
+ super(name, ICON, 0, file -> manager.getChangeLists(file).stream().anyMatch(list -> list.getName().equals(name)));
}
@Override
@@ -32,7 +32,7 @@ public final class ChangeListScope extends FilteredNamedScope {
if (object == this) return true;
if (object instanceof ChangeListScope) {
ChangeListScope scope = (ChangeListScope)object;
- return scope.all == all && scope.getName().equals(getName());
+ return scope.getIcon() == getIcon() && scope.getName().equals(getName());
}
return false;
}
@@ -40,7 +40,7 @@ public final class ChangeListScope extends FilteredNamedScope {
@Override
public String toString() {
String string = super.toString();
- if (all) string += "; ALL";
+ if (AllIcons.Scope.ChangedFilesAll == getIcon()) string += "; ALL";
return string;
}
}
diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/BaseLabel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/BaseLabel.java
index ef67dc6e274a..3e66ad6d4afa 100644
--- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/BaseLabel.java
+++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/BaseLabel.java
@@ -5,6 +5,7 @@ import com.intellij.ide.ui.AntialiasingType;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.ui.EngravedTextGraphics;
import com.intellij.ui.JBColor;
+import com.intellij.ui.OffsetIcon;
import com.intellij.ui.content.Content;
import com.intellij.util.ui.GraphicsUtil;
import com.intellij.util.ui.JBUI;
@@ -121,11 +122,15 @@ public class BaseLabel extends JLabel {
if(componentOrientation != null) {
setComponentOrientation(componentOrientation);
}
+ Icon icon = content.getIcon();
+ if (icon instanceof OffsetIcon) {
+ icon = ((OffsetIcon)icon).getIcon();
+ }
if (isSelected) {
- setIcon(content.getIcon());
+ setIcon(icon);
}
else {
- setIcon(content.getIcon() != null ? new WatermarkIcon(content.getIcon(), .5f) : null);
+ setIcon(icon != null ? new WatermarkIcon(icon, .5f) : null);
}
}
else {
diff --git a/platform/util/src/com/intellij/icons/AllIcons.java b/platform/util/src/com/intellij/icons/AllIcons.java
index 3745807a6bc6..0e3a4ac63d7a 100644
--- a/platform/util/src/com/intellij/icons/AllIcons.java
+++ b/platform/util/src/com/intellij/icons/AllIcons.java
@@ -1284,7 +1284,17 @@ public class AllIcons {
public static final Icon WithCoverageLayer = IconLoader.getIcon("/runConfigurations/withCoverageLayer.png"); // 16x16
}
+
+ public static class Scope {
+ public static final Icon ChangedFiles = IconLoader.getIcon("/scope/changedFiles.svg"); // 16x16
+ public static final Icon ChangedFilesAll = IconLoader.getIcon("/scope/changedFilesAll.svg"); // 16x16
+ public static final Icon Problems = IconLoader.getIcon("/scope/problems.svg"); // 16x16
+ public static final Icon Production = IconLoader.getIcon("/scope/production.svg"); // 16x16
+ public static final Icon Scratches = IconLoader.getIcon("/scope/scratches.svg"); // 16x16
+ public static final Icon Tests = IconLoader.getIcon("/scope/tests.svg"); // 16x16
+ }
+
public static class Toolbar {
public static final Icon Filterdups = IconLoader.getIcon("/toolbar/filterdups.png"); // 16x16
public static final Icon Folders = IconLoader.getIcon("/toolbar/folders.png"); // 16x16