/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.filetypes;
import com.intellij.ide.IconProvider;
import com.intellij.openapi.util.Iconable;
import com.intellij.psi.PsiElement;
import gw.plugin.ij.icons.GosuIcons;
import gw.plugin.ij.lang.psi.impl.AbstractGosuClassFileImpl;
import gw.plugin.ij.lang.psi.impl.GosuEnhancementFileImpl;
import gw.plugin.ij.lang.psi.impl.GosuProgramFileImpl;
import gw.plugin.ij.lang.psi.impl.GosuTemplateFileImpl;
import gw.plugin.ij.lang.psi.impl.statements.typedef.GosuTypeDefinitionImpl;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
public class GosuIconProvider extends IconProvider {
@Override
public Icon getIcon(@NotNull PsiElement element, @Iconable.IconFlags int flags) {
if (element instanceof AbstractGosuClassFileImpl) {
if( element instanceof GosuTemplateFileImpl ) {
return GosuIcons.FILE_TEMPLATE;
}
else if( element instanceof GosuProgramFileImpl ) {
return GosuIcons.FILE_PROGRAM;
}
else if( element instanceof GosuEnhancementFileImpl ) {
return GosuIcons.FILE_ENHANCEMENT;
}
for (PsiElement child : element.getChildren()) {
if (child instanceof GosuTypeDefinitionImpl) {
return child.getIcon(flags);
}
}
}
return null;
}
}