The power of radio buttons, but can be added to anything and has the ability to keep state using models.  Can also be programmically changed.