Discussão do artigo "Tabelas no paradigma MVC em MQL5: colunas configuráveis e ordenáveis"

 

Novo artigo Tabelas no paradigma MVC em MQL5: colunas configuráveis e ordenáveis foi publicado:

Neste artigo, implementaremos o ajuste da largura das colunas da tabela com o cursor do mouse, a ordenação da tabela pelos dados das colunas e adicionaremos uma nova classe para simplificar a criação de tabelas com base em quaisquer conjuntos de dados.

No artigo anterior, dedicado à criação de tabelas em MQL5 no paradigma MVC, integramos os dados tabulares (Model) à sua representação gráfica (View) em um único controle (TableView) e, com base nesse objeto, criamos uma tabela estática simples. As tabelas são uma ferramenta prática para classificar e apresentar diferentes tipos de dados de maneira conveniente para o usuário. Portanto, uma tabela deve oferecer ao usuário mais possibilidades de controlar a forma como os dados são exibidos.

Hoje adicionaremos às tabelas a possibilidade de ajustar a largura das colunas, especificar os tipos de dados exibidos e ordenar os dados da tabela por suas colunas. Para isso, basta aprimorar as classes de controles que já criamos anteriormente. No final, porém, adicionaremos uma nova classe para simplificar a criação de tabelas. Essa classe permitirá criar, em poucas linhas, tabelas a partir de dados previamente preparados.

No padrão MVC (Model - View - Controller), a interação entre os três componentes é estruturada de modo que, quando uma ação na interface (View), mediada pelo controlador (Controller), altera o modelo (Model), o modelo (Model) é atualizado e seu novo estado é então exibido novamente pela View. Aplicaremos a mesma lógica aos três componentes da tabela: um clique do mouse no cabeçalho de uma coluna da tabela (atuação do componente Controller) provocará uma alteração na disposição dos dados do modelo da tabela (reordenação dos dados no componente Model), e a View atualizará a tabela para refletir essa nova ordenação.


Autor: Artyom Trishkin

 
Obrigado, Artem. Esse artigo é realmente muito útil.
 
MetaQuotes:
Um clique do mouse no título da coluna da tabela (funcionamento do componente Controller) resultará em uma alteração na disposição dos dados no modelo da tabela (reorganização do componente Model),
Artem!! No MVC de verdade, clicar com o mouse em uma vista NÃO altera NADA no modelo. Um mesmo modelo pode ter várias vistas diferentes ao mesmo tempo, com diferentes ordenações e filtragens.
 
Obrigado pelo seu código e pelas instruções.
Você poderia aplicar a separação de interesses? Não coloque todas as classes em um único arquivo; separe-as por domínio e refatore o código.