Ola meu caro leitor(a) hoje venho trazer mais uma dica sobre ExtJS4, irei falar sobre a utilizacao dos metodos "getters" do Controller que a arquitetura MVC do ExtJS nos traz. Entao vamos a dica.Quando estamos desenvolvendo utilizando a arquitetura MVC na criacao do Controller ha algumas metodos que sao criados debaixo dos panos para facilitar a nossa vida. Na definicao do Controller informamos os models, stores e views que este Controller possui, assim o framework ira criar os metodos getters para obter acesso aos Models, Stores e Views do Controller. Ha um padrao para a nomenclatura do metodo a ser criado como e demonstrado abaixo:- Em relacao aos models: sera criado um metodo com a seguinte estrutura "getModelClassNameModel" onde "ModelClassName" e o nome da classe do Model informado no Controller, por exemplo, o model de nome "Personagem" sera criado o metodo "getPersonagemModel". Este metodo ira retornar o construtor do Model.- Em relacao aos stores: sera criado um metodo com a seguinte estrutura "getStoreClassNameStore" onde "StoreClassName" e o nome da classe do Store informado no Controller, por exemplo, o store de nome "Personagens" sera criado o metodo "getPersonagensStore". Este metodo ira retornar a instancia do Store que foi criada atraves do seu componente proprietario (owner) como exemplo um Grid.- Em relacao as views: sera criado um metodo com a seguinte estrutura "getPackageNameViewClassNameView" onde "PackageName" e o nome da pasta onde esta o arquivo da view e "ViewClassName" nome da classe da View informada no controller, por exemplo, "getPersonagemListView" onde o caminho absoluto do arquivo e "app/views/personagem/List.js". Este metodo ira retornar o construtor da View. Abaixo esta um exemplo da criacao de um controller onde informamos os arquivos principais deste:Ext.define('ExtApp.controller.Personagens', { extend: 'Ext.app.Controller' ,require: ['Ext.app.Controller'] ,models: ['Personagem'] ,stores: ['Personagens'] ,views: ['personagem.List'] ,init: function() { console.log(this) }});Entre as linhas #4 a #6 informamos todos os arquivos que este Controller ira utilizar. Abaixo esta a imagem do console referente ao codigo da linha #8.Veja que foram criados tres metodos no controller para que possamos resgatar a referencias dos componentes, mas voce deve estar se perguntando para que finalidade isso?Na API DOC na classe Ext.app.Controller no topico "Generated getter methods" e demonstrado um exemplo de uso desses metodos. Outro exemplo seria a necessidade de estar resgatando o Store para sincronizar os seus dados. Veja o exemplo abaixo que demonstra o monitoramento do evento click de um botao no nosso Controller e as duas formas de se resgatar a referencia para o Store do Grid:me.control({ 'personagemlist button[action=add]' : { click: function(btn) { // Resgatando o Store pelo Botao selecionado var storeByRef = btn.up('grid').getStore(); // Resgatando o Store pelo metodo do Controller var storeByMethod = this.getPersonagensStore(); // Sincronizando os dados storeByMethod.sync(); } }});Por esse exemplo podemos notar que o resgate da referencia do Store pelo metodo getter do Controller se torna mais simples do que resgatar a referencia atraves de um componente utilizando os metodo do ComponenteQuery.Entao e isso pessoal, espero que tenham gostado desta dica, tentarei publicar mais algumas futuramente. Se voce tiver alguma dica sobre ExtJS deixe o seu comentario aqui para nos.Obrigado pela leitura e ate