package jetbrains.mps.vcs.changesmanager.roots; /*Generated by MPS */ import jetbrains.mps.ide.editorTabs.TabColorProvider; import jetbrains.mps.vcs.changesmanager.NodeFileStatusMapping; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.Color; import org.jetbrains.mps.openapi.model.SNodeReference; import java.util.List; import com.intellij.openapi.vcs.FileStatus; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.internal.collections.runtime.ISelector; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.internal.collections.runtime.IWhereFilter; import org.jetbrains.mps.openapi.model.SNode; public class NodeTabColorProvider implements TabColorProvider { private NodeFileStatusMapping myFileStatusMapping; public NodeTabColorProvider(@NotNull NodeFileStatusMapping mapping) { myFileStatusMapping = mapping; } @Nullable @Override public Color getAspectColor(Iterable<SNodeReference> nodePointers) { final List<FileStatus> statuses = Sequence.fromIterable(nodePointers).select(new ISelector<SNodeReference, FileStatus>() { public FileStatus select(SNodeReference np) { FileStatus s = myFileStatusMapping.getStatus(np); return (s != null ? s : FileStatus.NOT_CHANGED); } }).toListSequence(); if (ListSequence.fromList(statuses).all(new IWhereFilter<FileStatus>() { public boolean accept(FileStatus s) { return s == ListSequence.fromList(statuses).first(); } })) { return check_6tqz68_a0a1a2(ListSequence.fromList(statuses).first()); } else { return FileStatus.MODIFIED.getColor(); } } @Nullable @Override public Color getNodeColor(@NotNull SNode node) { return check_6tqz68_a0a3(myFileStatusMapping.getStatus(node)); } private static Color check_6tqz68_a0a1a2(FileStatus checkedDotOperand) { if (null != checkedDotOperand) { return checkedDotOperand.getColor(); } return null; } private static Color check_6tqz68_a0a3(FileStatus checkedDotOperand) { if (null != checkedDotOperand) { return checkedDotOperand.getColor(); } return null; } }