Ext.define('Pandora.controller.Station', {
|
extend: 'Ext.app.Controller',
|
|
refs: [{
|
ref: 'stationsList',
|
selector: 'stationslist'
|
}],
|
|
stores: ['Stations', 'RecentSongs'],
|
|
init: function() {
|
this.control({
|
'stationslist': {
|
selectionchange: this.onStationSelect
|
},
|
'newstation': {
|
select: this.onNewStationSelect
|
}
|
});
|
},
|
|
onLaunch: function() {
|
var stationsStore = this.getStationsStore();
|
stationsStore.load({
|
callback: this.onStationsLoad,
|
scope: this
|
});
|
},
|
|
onStationsLoad: function() {
|
var stationsList = this.getStationsList();
|
stationsList.getSelectionModel().select(0);
|
},
|
|
onStationSelect: function(selModel, selection) {
|
this.application.fireEvent('stationstart', selection[0]);
|
},
|
|
onNewStationSelect: function(field, selection) {
|
var selected = selection[0],
|
store = this.getStationsStore(),
|
list = this.getStationsList();
|
|
if (selected && !store.getById(selected.get('id'))) {
|
store.add(selected);
|
list.getSelectionModel().select(selected);
|
}
|
}
|
});
|