]> git.proxmox.com Git - sencha-touch.git/blob - src/examples/oreilly/app/controller/Speakers.js
import Sencha Touch 2.4.2 source
[sencha-touch.git] / src / examples / oreilly / app / controller / Speakers.js
1 Ext.define('Oreilly.controller.Speakers', {
2 extend: 'Ext.app.Controller',
3
4 config: {
5 refs: {
6 speakerContainer: 'speakerContainer',
7 speakers: 'speakerContainer speakers',
8 speaker: 'speakerContainer speaker',
9 speakerInfo: 'speakerContainer speakerInfo',
10 sessions: 'speakerContainer speaker list'
11 },
12 control: {
13 speakers: {
14 itemtap: 'onSpeakerTap',
15 activate: 'onSpeakersActivate'
16 },
17 sessions: {
18 itemtap: 'onSessionTap'
19 }
20 }
21 },
22
23 onSpeakerTap: function(list, idx, el, record) {
24 var sessionStore = Ext.getStore('SpeakerSessions'),
25 sessionIds = record.get('sessionIds');
26
27 sessionStore.clearFilter(true);
28 sessionStore.filterBy(function(session) {
29 return Ext.Array.contains(sessionIds, session.get('id'));
30 });
31
32 if (!this.speaker) {
33 this.speaker = Ext.widget('speaker');
34 }
35
36 this.speaker.config.title = record.getFullName();
37 this.getSpeakerContainer().push(this.speaker);
38 this.getSpeakerInfo().setRecord(record);
39 },
40
41 onSessionTap: function(list, idx, el, record) {
42
43 if (!this.sessionInfo) {
44 this.sessionInfo = Ext.widget('sessionInfo');
45 }
46
47 this.sessionInfo.config.title = record.get('title');
48 this.sessionInfo.setRecord(record);
49 this.getSpeakerContainer().push(this.sessionInfo);
50 },
51
52 onSpeakersActivate: function() {
53 if (this.speaker) {
54 this.speaker.down('list').deselectAll();
55 }
56 }
57
58 });