use TypePresentationService instead of VirtualFile.getIcon()

This commit is contained in:
Dmitry Jemerov
2011-08-16 15:47:44 +02:00
parent 6f1d45612b
commit 44764bd6d7
17 changed files with 55 additions and 36 deletions
@@ -15,6 +15,7 @@
*/
package com.intellij.packaging.impl.ui;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.ide.projectView.PresentationData;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
@@ -62,7 +63,7 @@ public class FileCopyPresentation extends PackagingElementPresentation {
public void render(@NotNull PresentationData presentationData, SimpleTextAttributes mainAttributes, SimpleTextAttributes commentAttributes) {
if (myFile != null && !myFile.isDirectory()) {
presentationData.setIcons(myFile.getIcon());
presentationData.setIcons(VirtualFilePresentation.getIcon(myFile));
presentationData.addText(myOutputFileName, mainAttributes);
presentationData.addText(" (" + mySourcePath + ")", commentAttributes);
}
@@ -15,6 +15,7 @@
*/
package com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.ide.projectView.PresentationData;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.roots.impl.libraries.LibraryEx;
@@ -121,7 +122,7 @@ public class LibrarySourceItem extends PackagingSourceItem {
final VirtualFile[] files = myLibrary.getFiles(OrderRootType.CLASSES);
if (files.length > 0) {
final VirtualFile file = files[0];
presentationData.setIcons(file.getIcon());
presentationData.setIcons(VirtualFilePresentation.getIcon(file));
presentationData.addText(file.getName(), mainAttributes);
}
else {
@@ -15,6 +15,7 @@
*/
package com.intellij.openapi.roots.ui.configuration.dependencyAnalysis;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.roots.*;
import com.intellij.openapi.roots.ui.util.CellAppearance;
@@ -464,7 +465,7 @@ public class ModuleDependenciesAnalyzer {
@Nullable
public Icon getIcon() {
VirtualFile file = getLocalFile();
return file == null ? MISSING_ICON : file.getIcon();
return file == null ? MISSING_ICON : VirtualFilePresentation.getIcon(file);
}
/**
@@ -15,6 +15,7 @@
*/
package com.intellij.ui;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.navigation.ItemPresentation;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.vfs.VirtualFile;
@@ -73,7 +74,7 @@ public class ComputableIcon {
return new ComputableIcon(new Computable<Icon>() {
@Override
public Icon compute() {
return file.getIcon();
return VirtualFilePresentation.getIcon(file);
}
});
}
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.completion.CompletionContributor;
import com.intellij.codeInsight.completion.CompletionParameters;
import com.intellij.codeInsight.completion.CompletionResultSet;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.vcs.changes.Change;
@@ -49,7 +50,7 @@ public class CommitCompletionContributor extends CompletionContributor {
VirtualFile virtualFile = change.getVirtualFile();
if (virtualFile != null) {
insensitive.addElement(LookupElementBuilder.create(virtualFile.getName()).
setIcon(virtualFile.getIcon()));
setIcon(VirtualFilePresentation.getIcon(virtualFile)));
}
}
}
@@ -0,0 +1,23 @@
package com.intellij.ide.presentation;
import com.intellij.ide.TypePresentationService;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.PlatformIcons;
import javax.swing.*;
/**
* @author yole
*/
public class VirtualFilePresentation {
public static Icon getIcon(VirtualFile vFile) {
Icon icon = TypePresentationService.getService().getIcon(vFile);
if (icon != null) {
return icon;
}
if (vFile.isDirectory() && vFile.isInLocalFileSystem()) {
return PlatformIcons.FOLDER_ICON;
}
return vFile.getFileType().getIcon();
}
}
@@ -15,6 +15,7 @@
*/
package com.intellij.openapi.roots.ui.util;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.util.IconLoader;
@@ -65,10 +66,10 @@ public class CellAppearanceUtils {
public static Icon iconForFile(VirtualFile file) {
if (file.getFileSystem().getProtocol().equals(JarFileSystem.PROTOCOL) && file.getParent() == null) {
return file.getIcon();
return VirtualFilePresentation.getIcon(file);
}
if (file.isDirectory()) return PlatformIcons.FOLDER_ICON;
return file.getIcon();
return VirtualFilePresentation.getIcon(file);
}
public static Icon excludeIcon(Icon icon) {
@@ -26,12 +26,10 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.encoding.EncodingManager;
import com.intellij.openapi.vfs.newvfs.BulkFileListener;
import com.intellij.openapi.vfs.newvfs.events.VFilePropertyChangeEvent;
import com.intellij.util.PlatformIcons;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -263,13 +261,6 @@ public abstract class VirtualFile extends UserDataHolderBase implements Modifica
return createChildData(requestor, name);
}
public Icon getIcon() {
if (isDirectory() && isInLocalFileSystem()) {
return PlatformIcons.FOLDER_ICON;
}
return getFileType().getIcon();
}
/**
* @return the {@link FileType} of this file.
* When IDEA has no idea what the file type is (i.e. file type is not registered via {@link FileTypeManager}),
@@ -17,6 +17,7 @@ package com.intellij.util;
import com.intellij.ide.FileIconPatcher;
import com.intellij.ide.FileIconProvider;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
@@ -109,7 +110,7 @@ public class IconUtil {
Icon lastIcon = Iconable.LastComputedIcon.get(file, flags);
return IconDeferrer.getInstance()
.defer(lastIcon != null ? lastIcon : file.getIcon(), new FileIconKey(file, project, flags), new Function<FileIconKey, Icon>() {
.defer(lastIcon != null ? lastIcon : VirtualFilePresentation.getIcon(file), new FileIconKey(file, project, flags), new Function<FileIconKey, Icon>() {
public Icon fun(final FileIconKey key) {
VirtualFile file = key.getFile();
int flags = key.getFlags();
@@ -118,7 +119,7 @@ public class IconUtil {
if (!file.isValid() || project != null && (project.isDisposed() || !wasEverInitialized(project))) return null;
Icon providersIcon = getProvidersIcon(file, flags, project);
Icon icon = providersIcon == null ? file.getIcon() : providersIcon;
Icon icon = providersIcon == null ? VirtualFilePresentation.getIcon(file) : providersIcon;
final boolean dumb = project != null && DumbService.getInstance(project).isDumb();
for (FileIconPatcher patcher : getPatchers()) {
@@ -15,6 +15,7 @@
*/
package com.intellij.ide.diff;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.diff.DiffRequest;
@@ -102,7 +103,7 @@ public class VirtualFileDiffElement extends DiffElement<VirtualFile> {
@Override
public Icon getIcon() {
return isContainer() ? PlatformIcons.FOLDER_ICON : myFile.getIcon();
return isContainer() ? PlatformIcons.FOLDER_ICON : VirtualFilePresentation.getIcon(myFile);
}
@Override
@@ -15,6 +15,7 @@
*/
package com.intellij.openapi.fileChooser.ex;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
@@ -148,7 +149,7 @@ public class LocalFsFinder implements FileLookup.Finder, FileLookup {
@Nullable
public Icon getIcon() {
return myFile != null ? (myFile.isDirectory() ? PlatformIcons.DIRECTORY_CLOSED_ICON : myFile.getIcon()) : null;
return myFile != null ? (myFile.isDirectory() ? PlatformIcons.DIRECTORY_CLOSED_ICON : VirtualFilePresentation.getIcon(myFile)) : null;
}
public boolean equals(final Object o) {
@@ -15,6 +15,7 @@
*/
package com.intellij.openapi.vcs.readOnlyHandler;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.ColoredListCellRenderer;
@@ -28,7 +29,7 @@ public class FileListRenderer extends ColoredListCellRenderer {
mySelected = false;
setBackground(null);
VirtualFile vf = (VirtualFile) value;
setIcon(vf.getIcon());
setIcon(VirtualFilePresentation.getIcon(vf));
append(vf.getName(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
VirtualFile parent = vf.getParent();
if (parent != null) {
@@ -17,6 +17,7 @@
package com.intellij.openapi.vcs.merge;
import com.intellij.CommonBundle;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diff.ActionButtonPresentation;
import com.intellij.openapi.diff.DiffManager;
@@ -346,7 +347,7 @@ public class MultipleFileMergeDialog extends DialogWrapper {
private static class VirtualFileRenderer extends ColoredTableCellRenderer {
protected void customizeCellRenderer(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
VirtualFile vf = (VirtualFile)value;
setIcon(vf.getIcon());
setIcon(VirtualFilePresentation.getIcon(vf));
append(FileUtil.toSystemDependentName(vf.getPresentableUrl()), SimpleTextAttributes.REGULAR_ATTRIBUTES);
}
}
@@ -15,6 +15,7 @@
*/
package com.intellij.xdebugger.impl.breakpoints.ui.grouping;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroup;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
@@ -34,7 +35,7 @@ public class XBreakpointFileGroup extends XBreakpointGroup {
@Nullable
public Icon getIcon(final boolean isOpen) {
return myFile.getIcon();
return VirtualFilePresentation.getIcon(myFile);
}
@NotNull
@@ -15,15 +15,14 @@
*/
package com.intellij.testAssistant;
import com.intellij.ide.presentation.Presentation;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.DeprecatedVirtualFile;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileSystem;
import com.intellij.util.PlatformIcons;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -31,6 +30,7 @@ import java.io.OutputStream;
/**
* @author yole
*/
@Presentation(icon = "/nodes/testSourceFolder.png")
public class TestDataGroupVirtualFile extends DeprecatedVirtualFile {
private final VirtualFile myBeforeFile;
private final VirtualFile myAfterFile;
@@ -58,11 +58,6 @@ public class TestDataGroupVirtualFile extends DeprecatedVirtualFile {
return myAfterFile;
}
@Override
public Icon getIcon() {
return PlatformIcons.TEST_SOURCE_FOLDER;
}
@NotNull
@Override
public VirtualFileSystem getFileSystem() {
@@ -15,6 +15,7 @@
*/
package git4idea.ui;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
@@ -162,7 +163,7 @@ public class GitConvertFilesDialog extends DialogWrapper {
if (leaf) {
VirtualFile parent = (VirtualFile)((CheckedTreeNode)node.getParent()).getUserObject();
// the real file
Icon i = file.getIcon();
Icon i = VirtualFilePresentation.getIcon(file);
if (i != null) {
r.setIcon(i);
}
@@ -19,6 +19,7 @@
*/
package com.intellij.lang.properties.editor;
import com.intellij.ide.presentation.Presentation;
import com.intellij.lang.properties.ResourceBundle;
import com.intellij.openapi.vfs.DeprecatedVirtualFile;
import com.intellij.openapi.vfs.LocalFileSystem;
@@ -26,11 +27,11 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileSystem;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@Presentation(icon = "/nodes/resourceBundleClosed.png")
public class ResourceBundleAsVirtualFile extends DeprecatedVirtualFile {
private final ResourceBundle myResourceBundle;
@@ -42,10 +43,6 @@ public class ResourceBundleAsVirtualFile extends DeprecatedVirtualFile {
return myResourceBundle;
}
public Icon getIcon() {
return ResourceBundle.ICON_CLOSED;
}
@NotNull
public VirtualFileSystem getFileSystem() {
return LocalFileSystem.getInstance();