instead of accessing the `ChangeListeners` and depending on their unspecified order, I'd use `component.setSelected(true)` to fire an event