Hi,
I'm using Architect because I'm not that proficient in writing everything in notepad. One thing I thought I would share is how to add an event to an observable (container, field, etc.) that is not included in that items list of bindable events...eg add a swipe event to a container so that instead of having left right buttons in the title bar you can swipe the container and link to the event direction or adding a tap event to a read-only text field to open a view. I have modified this from previous posts so it is not my own original work).This is for a tap event on a read only text field..so do this on the field itself.

Step 1 - add a listener to the initialise event - no parameters
Code:
var me = this;me.element.on('tap', 'doTap', me);
me.callParent();
Step 2 - trap the "doTap" function locally i.e. create a function called doTap with 2 parameters e and t
Code:
this.fireEvent('tap', this, e, t);
So your whole textfield will be:
Code:
Ext.define('MyApp.view.txtReadOnly', {    
    extend: 'Ext.field.Text',
    alias: 'widget.txtreadonly',
    config: {
        itemId: 'txtReadOnly2',
        label: 'Field',
        readOnly: true
    },
    initialize: function() {
        var me = this;
        me.element.on('tap', 'doTap', me);
        me.callParent();
    },
    doTap: function(e, t) {
        this.fireEvent('tap', this, e, t);
    }
});
Now you can create a controller event to run from the field's new tap event.

Similarly, to add a swipe event to a container:
Code:
    initialize: function() {        var me = this;
         me.element.on('swipe', 'onSwipe', me);
        me.callParent();
    },
    onSwipe: function(event) {    
        this.fireEvent('swipe',this, event.direction);
    }
Now for the controller event binding..create one with an eventbinding name of "swipe" and parameters of "container, direction"..
the direction variable will give you a value of "left" or "right"...up & down are another story.
Hope this helps others out there who found it a bit confusing...or is it just me!!