"delete" que existe no toolbar da nossa lista. Assim vamos modificar o nosso codigo adicionando o monitoramento do evento "click" do botao "Excluir" do nosso toolbar conforme abaixo:Ext.define('ExtApp.controller.Personagens', { extend: 'Ext.app.Controller' ,require: ['Ext.app.Controller'] ,models: ['Personagem'] ,stores: ['Personagens'] ,views: ['personagem.List'] /** * Referencias para serem criados os metodos getters */ ,refs: [ { selector: 'personagemlist', ref: 'personagemList' } ] /** * Metodo que ira inicializar os dados do Controller */ ,init: function() { var me = this; me.control({ 'personagemlist button[action=delete]': { click: me.onClickBtnDelete } }); } /** * Metodo que sera executado ao clicar no botao "Excluir" * @param {Ext.button.Button} btn Botao selecionado */ ,onClickBtnDelete: function(btn) { // Resgatando as selecoes pelo Botao selecionado console.log(btn.up('grid').getSelectionModel().getSelection()); // Resgatando as selecoes pelo metodo criado pelo Controller console.log(this.getPersonagemList().getSelectionModel().getSelection()); }});Desta forma quando o usuario clicar no botao "Excluir" devemos resgatar os registros selecionados na nossa lista utilizando o metodo getSelection da classe Ext.selection.Model do framework. Como e demonstrado no metodo "onClickBtnDelete" do nosso Controller. A saida dos dois consoles terao o mesmo resultado, pois a forma de resgatar os registros selecionados sao os mesmos, porem a forma de resgatar a referencia da lista e diferente.Instanciando o componente caso esse nao existaAtraves dos objetos passados para a propriedade refs do nosso Controller podemos informar que caso nao exista o componente instanciado este deve ser criado. Se olharmos na API DOC do atributo refs iremos ver que alem dos atributos "ref" e "selector" existem os atributos:- autoCreate: que informa se deve ser criado o componente caso esse nao esteja criado-forceCreate: que informa se deve ser criado a instancia do componente toda vez que o metodo getter criado for chamado.Algo que nao e mostrado na API DOC (porem se olharmos os comentarios desta propriedade veremos alguns exemplos) sao as propriedades adicionais que devemos informar para que o Controller saiba qual e o tipo de componente a ser criado, ou seja, o seu xtype. Veja o exemplo abaixo:/** * Referencias para serem criados os metodos getters */,ref: [ { selector: 'personagemlist', ref: 'personagemList' } ,{ ref: 'personagemForm' ,selector: 'personagemform' ,autoCreate: true // Opcoes adicionais para criar o componente ,xtype: 'personagemform' ,itemId: 'personagem-form' ,title: 'Formulario do Personagem' }]Neste exemplo adicionamos mais um objeto para nossa propriedade refs informando que deve ser criado o componente (autoCreate: true) e passamos as demais opcoes para criar este componente, onde somente o xtype ja resolveria a criacao deste, pois qualquer propriedade diferente das informadas na API DOC da propriedade refs que passarmos neste objeto sera aplicado a nova instancia do componente que no nosso caso serao itemId e o title. Assim sera criado o metodo "getPersonagemForm" que ao ser chamado ira criar o nosso componente caso esse nao esteja instanciado na nossa aplicacao e retornar a sua referencia.Novo metodo getter gerado pelo ControllerCriando referencias para componentes nao pertencentes ao Controller atualNos exemplos acima foram demonstradas a criacao dos metodos auxiliares para resgatar os componentes do Controller atual, porem podemos resgatar qualquer referencia dos componentes da nossa aplicacao, informando um seletor que a classe Ext.ComponentQuery possa resgatar atraves dos componentes instanciados na aplicacao. No exemplo abaixo estamos