====== ModuleManager ====== * Recurso da camada de **CONTROLE** * Classe que configura a inicialização do Controlador referente ao Módulo; * Seu conteúdo é varrido e carregado no Servlet Controller em tempo de deploy; * Mapeia as classes das Actions e gerencia o fluxo das actions dentro do sistema; * Registra filtros (Filters); * Gerencia o fluxo (Consequences) das ações (Actions); * Configura os formatadores. Assinatura da classe: package modules.admin; import org.futurepages.core.control.AbstractModuleManager; public class ModuleManager extends AbstractModuleManager { //Métodos de configuração de actions, filters, formatters, etc... } ===== Inicialização (init) ===== * Sobrescreva o método init(Context application) para executar algo em tempo de deploy. * Exemplo do método a seguir: @Override public void init(Context application) { //armazenando o horário que foi feito o deploy em uma variável de aplicação application.setAttribute("dataHoraDeploy",new Date()); } ===== Ações/Filtros (loadActions) ===== * Sobrescreva o método para configurar as ações e filtros do módulo. * Exemplo do código a seguir: @Override public void loadActions() { //filtro global de autenticação filter(new AuthenticationFilter()); //filtro global de permissão de filtros filter(new ModulePermissionFilter()); //consequências globais on(ACCESS_DENIED, fwIn("accessDenied.page")); on(AJAX_DENIED, fwIn("ajaxDenied.jsp")); //Action, seus filtros e consequências action("Action", Action.class) .filter(new VOFilter("bean",Bean.class)) .on(SUCCESS, fwIn("Action.page")) .on(ERROR, fwIn("Action.page")) ; } ===== Formatadores (loadFormatters) ===== * Formatadores são utilizados na visão para formatar a saída. * Um formatador de CPF de um usuário, por exemplo seria utilizado da seguinte maneira na visão: * **** * A configuração destes formatadores é feita no método presente no ModuleManager. Veja a seguir: * Veja mais sobre formatadores em [[futurepages2:formatters|Formatters]] @Override public void loadFormatters() { FormatterManager.addFormatter("cpf" , new CPFFormatter()); FormatterManager.addFormatter("cnpj" , new CNPJFormatter()); }