Primeira refatoração: carregamento dinâmico da interface

O programa foi alterado, então, para utilizar o carregamento dinâmico da especificação da interface, provido pela biblioteca GTKmm. Ela provê métodos de criar a interface dinamicamente a partir de sua especificação no formato utilizado pelo Glade. Além disso, para adicionar funcionalidade à interface, basta herdar a classe correspondente ao tipo de widget que terá novas funcionalidades e fazer com que a biblioteca use sua classe para carregar o componente especificado no arquivo do Glade.

Inicialmente, foram criadas uma classe para cada janela do programa e mais uma classe para um componente complexo da janela principal, que determina qual o tipo de ambiente de difusão que será utilizado. O diagrama de classes após as alterações pode ser visto na Figura [*].

Figura: Diagrama de classes após as alterações para utilizar o carregamento dinâmico da interface
Image UML-v2-r12

A interface do programa também foi alterada nesta refatoração. Foi pedido que a simulação fosse exibida na mesma janela onde estavam os controles dos seus parâmetros. A interface modificada pode ser vista na Figura [*].

Figura: Interface do programa modificada para exibir a simulação ao lado dos controles dos seus parâmetros
Image GUI-v2-r12

Luiz Fernando Oliveira Corte Real 2008-11-28