There's a requirement (JDeveloper) to support some kind of "TopComponent is busy" notifications. The user should be notified when some possibly lengthy process is running in a TopComponent. The default implementation should display some sort of animated wait/busy icon in TopComponent's header.

BTW the ViewEvent type constants should be an enum. The TabState constants should be written as 1<<n for clarity, and ideally also deprecated and replaced with an enum set though this might be tricky since getState is not final (even though only actually overridden inside the module).
Remember to correct the day in <date> in apichanges.xml before committing.