There probably is a meta programming way to define methods, which are then called for each style that matches the method... but imo that obfuscates it rather then making it nicer to read.

This is one of the parts that I struggle with. Big case statements aren't cool but they really are hard to replace if possible at all (e.g. think of text editor with different keystroke commands, you gotta listen for the key stroke and then make a case statement).