UIComponent provides implementations for:
And also provides storage for system event listeners.
However, UIComponent does not provdie state saving for system event listeners. This is implemented
As a result, components that extend UIComponent directly cannot leverage the default system event
listener method implementations, since:
1. The listeners will not be state saved by UIComponent.
2. There is no way for a subclass to access the listeners for custom state saving purposes.
These concrete method implementations do not belong on UIComponent. They should be pushed
down to UIComponentBase. Components that subclass UIComponent can provide their own system
event listener storage/state saving.