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.model.SModelReference;
import org.jetbrains.mps.openapi.model.SModel;
import java.awt.Component;
import javax.swing.JList;
import java.awt.Color;
import jetbrains.mps.project.dependency.VisibilityUtil;
public class ModelRenderer extends ProjectLevelRenderer {
public ModelRenderer(SModule moduleScope, Project projectScope) {
super(moduleScope, projectScope);
}
@Override
public String getItemLabel(Object value) {
final SModelReference modelReference = (SModelReference) value;
SModel model = modelReference.resolve(getProject().getRepository());
if (model == null) {
String longName = modelReference.getModelName();
return (longName.equals("") ? "<no name>" : longName);
}
return modelReference.getModelName();
}
@Override
public Component getListCellRendererComponent(JList list, final Object value, int index, boolean isSelected, boolean cellHasFocus) {
Component result = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
final SModelReference modelReference = (SModelReference) value;
setText(getItemLabel(value));
if (!(isSelected)) {
SModel model = modelReference.resolve(getProject().getRepository());
if (model == null) {
setForeground(Color.RED);
} else if (!(VisibilityUtil.isVisible(getModule(), model))) {
setForeground(new Color(128, 0, 128));
}
}
return result;
}
}