I think there should be methods to sort an ArrayCollection IN
the model. The route should be like this:
1. Your mediator dispatches an EventA or EventB on mouse action. 2.
A command is called and it calls a method on the model e.g.
model.sortDataByA() or sortDataByB() 3. At the end of that sort
method there can be an event dispatched e.g. DATA_UPDATE. In case
of an ArrayCollection, a view can listen to its changes. 4. If
you're using DATA_UPDATE approach it should be listened in
mediators and accordingly update its view.
You can parametrize and merge EventA and EventB and add a
sortMethod as a parameter and then have it distinguished in a
command or pass sortMethod to model's sort function.