document.getElementById('addRoleButton').onclick = Relegate.create(this,this.__onAdd);
Which is not the right place in the PureMVC philosophy to bind event listeners.
This code is located in a view. Views are independent from the PureMVC framework. Here, RolePanel is not a dom element but a Javascript pseudo-class made to wrap the DOM element on which we cannot directly rely to dispatchEvent (not on all browsers...). Look at it as a Javascript "code behind". It looks like a mediator, but it's just a Javascript UI component.
I will have preferred not to depends on our own EventDispatcher class, but we need it for complete compatibility. I've started to build a JQuery example to show how to use the PureMVC framework with JQuery. With JQuery, or any another JS framework, I'm sure you can rely on customs EventDispatcher not to have to depends on a view helper as in the Employee Admin example.
In JS you should rather use something like :
document.getElementById('addRoleButton').onclick = sendEvent( ADD );
We sadly cannot do this either, as you need at least to declare your sendEvent method declaration. You need some code behind, so you need this RolePanel.js component. Look at RolePanel.mxml in the PureMVC AS3 Employee Admin demo you will understand that RolePanel.js is its equivalent.
If you find a better solution with a Javascript framework dedicated to UI let us know.