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