Adding custom buttons to a control panel

I am writing an application with a custom control panel where I need some additional buttons besides the standard save|cancel buttons. However the @button directive is being ignored and copying the buttons from the base class does not work...any hint how to add custom action buttons in this context (workaround would be to inject buttons into the DOM using Javascript :->)

class ElasticSettingsEditForm(controlpanel.RegistryEditForm):

    schema = IElasticSettings
    label = _(u'Elasticsearch index settings')
    description = _(u'')

    def updateFields(self):
        super(ElasticSettingsEditForm, self).updateFields()

    def updateWidgets(self):
        super(ElasticSettingsEditForm, self).updateWidgets()


class ElasticIndexSettings(controlpanel.ControlPanelFormWrapper):
     form = ElasticSettingsEditForm

    #    buttons = controlpanel.ControlPanelFormWrapper.buttons.copy()

    @button.buttonAndHandler(_(u"xx"), name='yyy')
    def handle_add(self, action):
        # do something

Add your buttons to the form class, not to the form wrapper.

Here is an example of how to add an additional button to a control panel form: https://github.com/plone/Products.CMFPlone/blob/master/Products/CMFPlone/controlpanel/browser/mail.py