I suggest making your controllers viewable. When the controller receives a send event, you should have something similar to the following:
this.controllerViewOne = this.controllerViewOne || this.render({ xtype: 'panel', listeners: { onMajorUIAction : function(params){ Ext.Dispatch({ controller : 'ProperController', action : 'ProperAction', historyUrl : 'ProperHistoryUrl', params : params }); } } });
This has the additional advantage of having all the βmainβ listeners for each of the controller representations in one space. It also means that reusing views for other controllers is easier.
Your presentations should include listeners who help to abstract the complexities of the individual components and their events / listeners.
I use the user interface manager for global user interface changes, for example, hiding / showing the main toolbar or displaying the back button.
source share