Well from a programming stand point, I think a seven level deep block of nested if-then-else statements evaluating if each pin is TRUE would be fairly simple. However, it would take up quite a few lines by itself and be somewhat cumbersome if you ever had to debug it.

Furthermore it's perhaps the most compact ways to express the logic without getting into rather arcane tricks.
Why on earth would it need to be anything that complicated? A simple loop through the pins is enough, assuming he uses subsequent (is this the right word?) pins.
byte colorNum = 0;
for (byte pin=2; pin <= 8; pin++) {
if (digitalRead(pin) == LOW) {
colorNum = pin;
break;
}
}
if (colorNum) color = colorMap[colorNum];