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;
}
}