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