Discussão do artigo "Tabelas no paradigma MVC em MQL5: Integramos o componente Model ao componente View"

 

Novo artigo Tabelas no paradigma MVC em MQL5: Integramos o componente Model ao componente View foi publicado:

Neste artigo, criaremos a primeira versão do elemento de controle TableControl (TableView). Será uma tabela estática simples, criada com base nos dados de entrada definidos por dois arrays: um array de dados e um array de cabeçalhos de coluna.

No artigo "Classes de tabela e cabeçalho baseadas no modelo da tabela em MQL5: aplicação do conceito MVC", concluímos a criação da classe do modelo da tabela (o componente Model segundo o MVC). Passamos então ao desenvolvimento de uma biblioteca de controles simples, a partir da qual é possível criar controles de finalidades e níveis de complexidade muito diferentes. Em particular, desenvolvemos o componente View para criar o elemento de controle TableView.

Este artigo será dedicado a implementar a interação entre os componentes Model e View. Em outras palavras, hoje vincularemos os dados tabulares à sua representação gráfica em um único elemento de controle.

O elemento de controle será criado com base na classe do objeto Panel e terá os seguintes elementos:

  1. Panel: base à qual anexamos o cabeçalho e a área de dados da tabela;
  2. Panel: cabeçalho da tabela, composto por uma série de elementos, como cabeçalhos de colunas criados com base na classe do objeto Button;
  3. Container: contêiner de dados tabulares com possibilidade de rolagem do conteúdo;
  4. Panel: painel para dispor as linhas da tabela, anexado ao contêiner do item 3. Quando esse painel ultrapassa os limites do contêiner, as barras de rolagem do contêiner permitem rolá-lo;
  5. Panel: linha da tabela, um painel usado para desenhar as células da tabela, anexado ao painel do item 4; criamos tantos objetos desse tipo quanto o número de linhas da tabela;
  6. Classe da célula da tabela: uma nova classe que permite desenhar em coordenadas especificadas em um canvas especificado (CCanvas). Anexamos um objeto dessa classe ao objeto de linha da tabela (item 5). Indicamos os canvases da linha da tabela como superfícies de desenho e desenhamos a célula nesse painel nas coordenadas especificadas. No objeto de linha da tabela (item 5), definimos a área de cada célula com uma instância da classe CBound e anexamos a ela o objeto da classe de célula da tabela.


Autor: Artyom Trishkin

 

Excelente explicação sobre o MVC, mas como exatamente essa complexidade melhora as negociações, que é o que realmente nos interessa aqui?

Será que todos os outros desafios da negociação já foram resolvidos, restando apenas a interface do usuário?

Às vezes esquecemos para que uma ferramenta realmente serve — ou ficamos frustrados quando ela não funciona da maneira que queremos — e acabamos tentando fazê-la realizar tarefas para as quais ela nunca foi projetada e que nunca será capaz de realizar

 
Alireza #:

Excelente descrição do MVC, mas como exatamente essa complexidade melhora o comércio, que é, afinal, o motivo pelo qual nos reunimos aqui?

Será que todos os outros problemas do comércio já foram resolvidos e só resta a interface do usuário?

Às vezes, esquecemos para que realmente serve uma ferramenta, ou ficamos frustrados quando ela não funciona como queremos e, no fim das contas, tentamos forçá-la a fazer algo para o qual ela nunca foi projetada e que nunca fará.

Sim, claro, não é a interface que gera lucro. Mas a interface é como o painel de instrumentos de um avião: ela não ensina a voar, mas ajuda a não cair no meio da neblina. Quando os principais problemas da negociação já estão resolvidos, a arquitetura do código e a facilidade de uso da plataforma se tornam o fator que permite ampliar o sucesso, em vez de afundar na rotina.