If you are new to this Post Series and haven't read Part 1 of this Post. Please read first and proceed with part2. Today, we are going to see how we can apply swipe event to the container view component by using listeners config
Attach Swipe Event Handler to Home Page Container
Using listeners configuration, we are attaching swipe event to the homepage container and also attaching handler function onHomepagecontainerSwipe() that needs to be called when swipe event occurs.
Inside the Handler function, when swipe direction is left, we are firing a custom event 'swipeNextPage' using fireEvent() with parameters. This parameter contains the next view that needs to be pushed in to the Navigation View.
Attach Swipe Event Handler to About Us Container
Using listeners configuration, we are attaching swipe event to the Aboutus container and also attaching handler function onAboutuscontainerSwipe() that needs to be called when swipe event occurs.
Inside the Handler function, when swipe direction is left/right, we are firing a custom event 'swipeNextPage' using fireEvent() with parameters.This parameter contains the next view that needs to be pushed in to the Navigation View.
Attach Swipe Event Handler to Contact Us Container
Using listeners configuration, we are attaching swipe event to the Contactus container and also attaching handler function onContactuscontainerSwipe() that needs to be called when swipe event occurs.
Inside the Handler function, when swipe direction is left/right, we are firing a custom event name 'swipeNextPage' using fireEvent() with parameters.This parameter contains the next view that needs to be pushed in to the Navigation View.
We are firing custom event with name 'swipeNextPage', when swipe event occurs inside the view component. This custom event 'swipeNextPage' is mapped to the handler function onContainerSwipeNextPage() that will be called when the fired custom event is caught in the controller. Now we are going to replace the current active view with the new view using the Navigation View animateActiveItem() method.
When i run this Code in Google Chrome, Following are the outputs.
Hope, you enjoyed this Post.
Download the Source Code
Attach Swipe Event Handler to Home Page Container
Using listeners configuration, we are attaching swipe event to the homepage container and also attaching handler function onHomepagecontainerSwipe() that needs to be called when swipe event occurs.
Inside the Handler function, when swipe direction is left, we are firing a custom event 'swipeNextPage' using fireEvent() with parameters. This parameter contains the next view that needs to be pushed in to the Navigation View.
Ext.define('MyApp.view.HomePageContainer', { extend: 'Ext.Container', alias: 'widget.homepagecontainer', config: { html: 'This is Home Page', itemId: 'homepagecontainer', style: 'font-size:22px;font-weight:bold;', styleHtmlContent: true, listeners: [ { fn: 'onHomepagecontainerSwipe', element: 'element', event: 'swipe' } ] }, onHomepagecontainerSwipe: function(event) { var me = this; if(event.direction == "left"){ me.fireEvent('swipeNextPage',me,{xtype:'aboutuscontainer'}); } } });
Attach Swipe Event Handler to About Us Container
Using listeners configuration, we are attaching swipe event to the Aboutus container and also attaching handler function onAboutuscontainerSwipe() that needs to be called when swipe event occurs.
Inside the Handler function, when swipe direction is left/right, we are firing a custom event 'swipeNextPage' using fireEvent() with parameters.This parameter contains the next view that needs to be pushed in to the Navigation View.
Ext.define('MyApp.view.AboutUsContainer', { extend: 'Ext.Container', alias: 'widget.aboutuscontainer', config: { html: 'This is About Us Page', itemId: 'aboutuscontainer', style: 'font-size:22px;font-weight:bold;', styleHtmlContent: true, listeners: [ { fn: 'onAboutuscontainerSwipe', element: 'element', event: 'swipe' } ] }, onAboutuscontainerSwipe: function(event) { var me = this; if(event.direction == "left"){ me.fireEvent('swipeNextPage',me,{xtype:'contactuscontainer'}); }else if (event.direction == "right"){ me.fireEvent('swipeNextPage',me,{xtype:'homepagecontainer'}); } } });
Attach Swipe Event Handler to Contact Us Container
Using listeners configuration, we are attaching swipe event to the Contactus container and also attaching handler function onContactuscontainerSwipe() that needs to be called when swipe event occurs.
Inside the Handler function, when swipe direction is left/right, we are firing a custom event name 'swipeNextPage' using fireEvent() with parameters.This parameter contains the next view that needs to be pushed in to the Navigation View.
Ext.define('MyApp.view.ContactUsContainer', { extend: 'Ext.Container', alias: 'widget.contactuscontainer', config: { html: 'This is Contact Us Page', itemId: 'contactuscontainer', style: 'font-size:22px;font-weight:bold;', styleHtmlContent: true, listeners: [ { fn: 'onContactuscontainerSwipe', element: 'element', event: 'swipe' } ] }, onContactuscontainerSwipe: function(event) { var me = this; if(event.direction == "left"){ me.fireEvent('swipeNextPage',me,{xtype:'homepagecontainer'}); }else if (event.direction == "right"){ me.fireEvent('swipeNextPage',me,{xtype:'aboutuscontainer'}); } }Custom Event Implementation in Controllers
We are firing custom event with name 'swipeNextPage', when swipe event occurs inside the view component. This custom event 'swipeNextPage' is mapped to the handler function onContainerSwipeNextPage() that will be called when the fired custom event is caught in the controller. Now we are going to replace the current active view with the new view using the Navigation View animateActiveItem() method.
Ext.define('MyApp.controller.MyController', { extend: 'Ext.app.Controller', config: { refs: { navView: '#mynavigationview' }, control: { "container": { swipeNextPage: 'onContainerSwipeNextPage' } } }, onContainerSwipeNextPage: function(container, pageName) { var nav = this.getNavView(); nav.animateActiveItem(pageName,{type: 'slide', direction: 'left'}); } });
When i run this Code in Google Chrome, Following are the outputs.
Hope, you enjoyed this Post.
Download the Source Code
hi Suresh,
ReplyDeletei think you accidentally write the wrong code under Contact Us Container section. Instead of writing the contact us container code, you written the same about us container code.
hi Pravesh,
DeleteI updated the right code in the Contact Us Container section. Thanks a lot for your valuable comment.
Hi Suresh,
ReplyDeleteI have download this demo. But it is not working. Is there anything which i need to be taken care off.
Hi Yash,
DeleteThe download Source code will work as expected. Please let me know, what error you are getting when you run the code.
Thanks
Suresh A
Yeah you are correct. Thank for your help :)
ReplyDeleteHi Suresh,
ReplyDeleteJust wanted to say thanks for all the great posts. I'm building a massive ST app and I always come back to these tutorials :)