My son was a really good eater too. Then, he started the "I don't like that". One day he likes something, the next day he doesn't. Who knows what is going to eat from one day to the next?!?! Luckily, he is not so bad that he will only eat one or two things.
Around here, there is one meal served. My son has three choices.
1) He can eat it and like it.
2) He can take a bite or two (depending on what size bites) of everything on his plate, then if he doesn't like any of it he may have a yogurt, banana, or something,
3) He can not eat it and then have to wait until the next meal without any snacks (However, he is still required to sit at the table. That way he can't say that he doesn't like it so that he can go off and play.)
IT'S HIS CHOICE, 1, 2 or 3!!!
We will try to encourage him to eat it, but if he really doesn't want to, we don't force the issue.
As for the anger... Say something like "I know your angry because you don't like ____. However, the (behavior) is not acceptable. Please stop, calm down, and use your words." If he refuses to calm down, give him a consequence, such as going straight to bed after dinner. He must be really tired and that is why he is acting like that. Right? ;-)