Ir para conteúdo


Foto

[RESOLVIDO] ExtDesigner eventos


  • Por favor, faça o login para responder
8 respostas neste tópico

#1 cristiadu

cristiadu

    Novato

  • Membros
  • PipPip
  • 16 posts

Postado 09 February 2011 - 07:17

Quando se cria um layout em ExtDesigner ele cria dois arquivos, um nomedocontainerprincipal.js e um nomedocontainerprincipal.ui.js

Bem, como a propria documentação do programa já diz, não se deve editar o arquivo "ui.js", mas todos os itens de fato estão nele, sendo que o .js apenas chama a superclasse.

A questão é, como editar da maneira correta então? Segundo a documentação eu deveria colocar no arquivo .js, mas não sei como eu colocaria um handler em um arquivo que só contem essa seguinte linha de código:

ErpContainer = Ext.extend(ErpContainerUi, {
    initComponent: function() {
        ErpContainer.superclass.initComponent.call(this);
    }
});


#2 Miguel Cartagena

Miguel Cartagena

    Member Avançado

  • Membros
  • PipPipPip
  • 163 posts
  • LocationBlumenau/SC

Postado 09 February 2011 - 08:02

cristiadu,

Uma boa prática quando se utiliza o ExtDesigner é utilizar ref nos componentes que se deseja capturar eventos. Por exemplo, na definição de janela (https://github.com/c...on.window.ui.js) do meu projeto tem um botão de salvar:

{
 xtype: 'button',
 text: 'Salvar',
 iconCls: 'icon-disk',
 ref: '../saveBtn'
}

No arquivo que o ExtDesigner gera (https://github.com/c...ction.window.js) para podermos editar, eu capturo o evento e faço o que desejo:

this.saveBtn.on('click', this.onSaveBtn, this);


Esse é o princípio, declarar com os componentes com ref e capturar seus eventos.



#3 cristiadu

cristiadu

    Novato

  • Membros
  • PipPip
  • 16 posts

Postado 09 February 2011 - 08:38

Opa, obrigado pela resposta Miguel. Só tenho mais uma pergunta sobre o uso do Ext Designer.

Vou explicar mais ou menos.

é assim, eu pensei na idéia da tela inicial do sistema ser em um só projeto do Ext Designer, até aí beleza, mas também pensei que cada conteúdo de janela (no meu caso abas) que serão abertas após o click em algum dos botões, deveriam estar em um outro projeto diferente, até porque elas estariam como item de uma tab que eu criaria ao click de cada um dos botões. A questão é, tem como eu setar para guardar a superclasse em uma variavel e depois colocar essa variavel como item da aba, ou teria como dar o init da propria superclasse dentro da aba?

#4 Miguel Cartagena

Miguel Cartagena

    Member Avançado

  • Membros
  • PipPipPip
  • 163 posts
  • LocationBlumenau/SC

Postado 09 February 2011 - 09:50

cristiadu,

Creio que não seja possível utilizar componentes construídos em projetos diferentes. Minha sugestão é manter tudo em um projeto só, mantendo bem separado os panels. Se você quiser dar uma olhada em como eu utilizei o ExtDesigner no meu projeto, fique a vontade.

https://github.com/c...etc/financo.xds

#5 cristiadu

cristiadu

    Novato

  • Membros
  • PipPip
  • 16 posts

Postado 09 February 2011 - 10:18

tá, mas daí como eu controlo a questão de não criar logo de cara todas as abas e algumas só serem criadas quando eu clicar em algum botão?

#6 Miguel Cartagena

Miguel Cartagena

    Member Avançado

  • Membros
  • PipPipPip
  • 163 posts
  • LocationBlumenau/SC

Postado 09 February 2011 - 11:12

Deixa eu ver se entendi .. você tem um TabPanel onde as abas são adicionadas dinamicamente (runtime), mas seu conteúdo é conhecido, certo?

Você pode estender Panel para construir seus paineis e utilizar o método add do TabPanel para adiciona-los dinamicamente.

#7 cristiadu

cristiadu

    Novato

  • Membros
  • PipPip
  • 16 posts

Postado 09 February 2011 - 11:55

sim, do addpanel eu sei, mas a unica forma que achei foi setando o panel dentro de uma variavel e colocando essa variavel como item do tabpanel que eu crio no add, entende? Mas tudo o que cria num certo projeto acaba inserido no mesmo layout, ou seja, vai exibir automaticamente. E não é isso que eu quero.

Não sei se to me explicando bem...

#8 Miguel Cartagena

Miguel Cartagena

    Member Avançado

  • Membros
  • PipPipPip
  • 163 posts
  • LocationBlumenau/SC

Postado 09 February 2011 - 14:10

Eu acho que entendi. Mas no ExtDesigner, você consegue criar panels "soltos", sem ser item de outro componente. No projeto que coloquei no post anterior, eu faço isso com a Import.window por exemplo.

#9 cristiadu

cristiadu

    Novato

  • Membros
  • PipPip
  • 16 posts

Postado 10 February 2011 - 07:32

Então, a questão também é que aqui há varios programadores e não podemos ficar presos a construção do sistema em um só projeto, mas arranjei já um jeito de fazer os componentes em outro projeto e chamá-los. Como eles são setados em uma variavel e feito o call dos mesmos para que sejam exibidos, é só tirar o call e colocar os mesmos como itens da tab que vou fazer.

De qualquer forma muito obrigado pela ajuda.




1 usuário(s) está(ão) lendo este tópico

0 membros, 1 visitantes, 0 membros anônimos