First of all I think you should consider handling the issue differently by re-designing the necessary parts in your UI. For example if there is a button, that triggers the heavy operation, you could use the disable-on-click setting of a Button and prevent double clicks that way. But what comes to the loading indicator. Look ApplicationConnection and its private method showLoadingIndicator().
Unfortunately “disableOnClick” does not work for my use case, because not only button-clicks cause the heavy events (also selections in OptionGroups, etc.).
What i generally miss in the Vaadin-Core is the possibility to override behavior, in this case the loading indicator.
This could easily be accomplished via a special component, which registers itself as loading-indicator at creation time with the applicationConnection.
However, the applicationConnection must be opened for extension to allow this.