Desenvolvimento Flex - Estrutura de Pastas
De DTI Wiki
Para facilitar o reuso de formulários em Flex, as aplicações devem ser feitas utilizando módulos, esses módulos devem ser carregados dentro de janelas MDI e essas janelas são carregadas dentro da aplicação.
Desse modo, a estrutura da aplicação fica em: Aplicação > FlexMDI + ModuleLoader > Module.
- Module: Os módulos devem ser criados de forma não otimizada, para que, quando uma outra aplicação precise usar esse módulo, ela possa fazer isso sem preocupação de códigos dependentes.
- FlexMDI+ModuleLoader: Caso seja necessário criar um ambiente com múltiplas janelas, é recomendado o uso do componente FlexMDI, caso não seja necessário isso, pode-se usar as janelas padrões TitleWindow+PopUpManager. Dentro das janelas devem ter ModuleLoader para carregar os módulos. O download do FlexMDI pode ser feito aqui
- Aplicação: A aplicação deve ser responsável por chamar os módulos e passar por parâmetro para as janelas quais módulos serão carregados, para isso pode ser usado o código abaixo:
/** * Gera janelas MDI dinamicamente que carregam módulos * @author Tomazio * @param title Título da janela * @param objectModule Nome do arquivo SWF que é o módulo a ser carregado * @param localModule Endereço em que o swf está * @param width Largura da janela * @param height Altura da janela * @param id Id da janela, caso seja null ele é gerado dinamicamente * @return void */ private function openWindowModule(title:String, objectModule:String, localModule:String = null, width:uint = 300, height:uint = 200, id:String = null):void{ var window:MDIWindow = new MDIWindow(); if (id != null)window.id = 'mdiWindow'+Math.random().toString(); window.title = title window.width = width; window.height = height; var mod:ModuleLoader = new ModuleLoader(); mod.id = 'modLoader'+window.id; mod.url = localModule+""+objectModule; mod.styleName = "macTitle"; mod.loadModule(); window.setStyle("color","#F8F8F8"); window.setStyle("borderColor","#F8F8F8"); window.addChild(mod); mdiContainer.effectsLib = flexlib.mdi.effects.effectsLib.MDIVistaEffects; mdiContainer.windowManager.add(window); }
A aplicação deve conter a seguinte estrutura de subpastas:
- lib: Caso seja necessário utilizar um componente ou biblioteca essa pasta deve conter o .swc, um exemplo de uso é para a biblioteca FlexLib;
- src: Arquivos necesários para construir a aplicação;
- control: Arquivos VO's das classes;
- model: Arquivos de modelagem das classes;
- script: Scripts de actionscript para o gerenciamento da aplicação, exemplo: controle de CRUD (Create, Retrieve, Update and Delete);
- imgs: Arquivos de imagens;
- style: Arquivo de CSS da aplicação;