Design wise keep an eye on the state pattern. GUI wise add a listener to all components and change the state when selection changes.