/**
 * Constructor
 *
 * @param   string               $editor      The editor name
 * @param   DispatcherInterface  $dispatcher  The event dispatcher we're going to use
 */
public function __construct($editor = 'none', DispatcherInterface $dispatcher = null)
{
    $this->_name = $editor;
    // Set the dispatcher
    if (!\is_object($dispatcher)) {
        $dispatcher = Factory::getContainer()->get('dispatcher');
    }
    $this->setDispatcher($dispatcher);
    // Register the getButtons event
    $this->getDispatcher()->addListener('getButtons', function (AbstractEvent $event) {
        $editor = $event->getArgument('editor', null);
        $buttons = $event->getArgument('buttons', null);
        $result = $event->getArgument('result', []);
        $newResult = $this->getButtons($editor, $buttons);
        $newResult = (array) $newResult;
        $event['result'] = array_merge($result, $newResult);
    });
}