package jetbrains.mps.workbench.dialogs.project.components.parts.renderers; /*Generated by MPS */ import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.project.Project; import org.jetbrains.mps.openapi.module.SModuleReference; import jetbrains.mps.project.structure.modules.ModuleReference; import jetbrains.mps.smodel.ModuleRepositoryFacade; import jetbrains.mps.smodel.Generator; import java.awt.Component; import javax.swing.JList; import java.awt.Color; public class ModuleRenderer extends ProjectLevelRenderer { public ModuleRenderer(SModule moduleScope, Project projectScope) { super(moduleScope, projectScope); } @Override public String getItemLabel(Object value) { SModuleReference moduleReference = (ModuleReference) value; final SModule module = ModuleRepositoryFacade.getInstance().getModule(moduleReference); if (module == null) { String moduleName = moduleReference.getModuleName(); return (moduleName.equals("") ? "<no name>" : moduleName); } if (module instanceof Generator) { return ((Generator) module).getAlias(); } else { return moduleReference.getModuleName(); } } @Override public Component getListCellRendererComponent(JList list, final Object value, int index, boolean isSelected, boolean cellHasFocus) { final Component result = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); SModuleReference moduleReference = (ModuleReference) value; if (moduleReference == null) { return result; } setText(getItemLabel(value)); final SModule module = ModuleRepositoryFacade.getInstance().getModule(moduleReference); if (module == null && !(isSelected)) { setForeground(Color.RED); } return result; } }