package com.cfsoft.ofbiz; import com.cfsoft.ofbiz.dom.controller.api.Controller; import com.cfsoft.ofbiz.dom.controller.model.ControllerModel; import com.cfsoft.ofbiz.dom.controller.model.ControllerManager; import com.cfsoft.ofbiz.facet.OfbizFacet; import com.intellij.ide.IconProvider; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.project.DumbAware; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import javax.swing.*; public class OfbizIconProvider extends IconProvider implements DumbAware { @Override public Icon getIcon(@NotNull PsiElement element, int flags) { if (element == null) throw new IllegalArgumentException("Argument 0 for @NotNull parameter of com/intellij/struts2/Struts2IconProvider.getIcon must not be null"); if (!(element instanceof PsiClass)) { return null; } if ((!element.isPhysical()) || (!element.isValid())) { return null; } OfbizFacet strutsFacet = OfbizFacet.getInstance(element); if (strutsFacet == null) { return null; } PsiClass psiClass = (PsiClass) element; Module module = ModuleUtil.findModuleForPsiElement(psiClass); ControllerModel strutsModel = ControllerManager.getInstance(psiClass.getProject()).getCombinedModel(module); if ((strutsModel == null) || (!strutsModel.isServiceClass(psiClass))) { return null; } // LayeredIcon layeredIcon = new LayeredIcon(2); // Icon original = PsiClassImplUtil.getClassIcon(flags, psiClass); // layeredIcon.setIcon(original, 0); // layeredIcon.setIcon(StrutsIcons.ACTION_SMALL, 1, 0, 6); // return layeredIcon; return OfbizIcons.CONTROLLER_CONFIG_FILE; } public Icon getIcon(Object o, int i) { if (o instanceof Controller) { return OfbizIcons.CONTROLLER_CONFIG_FILE; } return null; } }