DES:vRaptorExtJs

De Wiki Unioeste NTI
Edição feita às 08h50min de 21 de dezembro de 2011 por Marcospaulo (disc | contribs)
(dif) ← Versão anterior | ver versão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

VoltarVoltar a Página Inicial - Menu Sistemas



Tabela de conteúdo

Introdução

Este documento descreve os padrões de desenvolvimento dos sistemas que utilizam a tecnologia vRaptor+ExtJS

Documentação Externa

ExtJS

vRaptor

Sistemas que utilizam esta Tecnologia

ExtJs 3

  • Academus: Acadêmico e Estágios (Ajuda,Histórico)
  • Almox: Almoxarifado (Ajuda,Histórico)
  • Pontus-Web: Informações sobre Ponto Eletrônico
  • SGA: Atividades
  • SGCCR: Convênios (Ajuda,Historico)
  • SGC: Concursos (Ensalamento,Prova,Gabarito)
  • SGCV: Vestibular (Ensalamento,Prova,Gabarito)
  • SGPDE: Informações do PDE (Ajuda,Histórico)
  • SGPPStricto: Programas Stricto Sensu
  • SGT: Transportes (Ajuda,Histórico)

ExtJs 4

  • Login: Login nos sistemas
  • Osiris: Gerenciamento das solicitações de acesso
  • SGEM: Empréstimos de Materiais
  • SGLCC: Licitações
  • SGPE: Pessoas Externas
  • SGRD: Diplomas

Árvore de diretorios de um projeto vRaptor+ExtJs

  • build
  • conf
  • dist
  • nbproject
  • setup
  • src
    • baseconfig.properties - Arquivo de Configurações Gerais (Conexão com Banco,diretórios,etc)
    • br
      • unioeste
        • projeto
          • controller - Controladores de acesso da visão
          • dao - Objetos de acesso aos dados
          • modelo - Modelos das Entidades do Banco de Dados
          • sessions
            • CriadorDeSessionFactoryConfiguracoes.java - Arquivo de Configurações do Hibernate
        • sharedev - Classes Java compartilhadas entre todos projetos
  • web
    • META-INF
      • MANIFEST.MF
      • context.xml - Configuração do contexto (diretório principal)
    • WEB-INF
      • jsp
        • index
          • genericJson.jsp - Página especial que retorna respostas em formato Json
          • index.jsp - Página inicial que requisita os arquivos JavaScript do projeto
          • index2.jsp - Página especial mostrada quando a conexão é fechada, ou o login não foi possível
      • lib - Bibliotecas (jars) compartilhados entre todos os projetos
      • relatorios - Contem os relatórios na fase de Desenvolvimento (diretório e subdiretórios gerados automaticamente)
      • messages.properties
      • web.xml - Configurações do servidor de aplicação
    • ext - Arquivos da Biblioteca ExtJs
    • icons - Ícones
    • images - Imagens
    • js
      • frmCadastro
      • frmGeral
      • frmPesquisa
      • uteis - Arquivos JavaScript compartilhados entre todos os projetos
      • frmPrincipal.js - Configurações de Construção do menu do sistema e requisições iniciais


Legenda:

  • diretorio - Diretório de arquivos compartilhados por todos os projetos por meio do SVN.
  • arquivo.extensao - Arquivo de configuração. Importante para o funcionamento do sistema.
  • diretorio - Diretório que contem os principais arquivos da aplicação.
  • arquivo.extensao - Arquivo do projeto
  • diretorio - Diretorio do projeto


Bibliotecas Java

Nome Descrição Pacotes Dependências/Relacionadas
vraptor Framework MVC vraptor
jasper Geração de relatórios jasperreports,itext,commons-digester,groovy-all,fntArial
hibernate Framework de Persistência de Dados hibernate,ejb3-persistence,hibernate-annotations,hibernate-validator¹
flexson Serialização de objetos java para json flexjson
jtds Conexão com o banco de dados jtds
mail Envio de emails mail
gsp Parser de sql gsp
commons-io Utilidades para streams e arquivos commons-io

1 - Usado em pouquíssimos lugares, poderia remover

Atualização do Projeto

Quando for atualizar o projeto, alguns arquivos locais não compartilhados talvez precisem ser atualizados. Estes arquivos precisam estar atualizados e conforme os padrões para que o sistema interaja corretamente. Estes arquivos são em geral configurações que são diferentes para cada projeto, mas dentro de um padrão. Os arquivos são modificados ocasionalmente/raramente.

  • index.jsp (novos arquivos JS compartilhados; atualização de forma de login) - ocasionalmente
  • CriadorDeSessionFactoryConfiguracoes.java (novos beans compartilhados; atualização de forma de login) - ocasionalmente
  • frmPrincipal.js (atualização da viewport principal ou na forma de login) - ocasionalmente
  • bibliotecas do projeto (novas bibliotecas compartilhadas) - ocasionalmente
  • basesconfig.properties (modificação das configurações gerais: conexão com banco, diretórios, etc) - ocasionalmente
  • index2.jsp (modificação na página de logout ou página de sessão expirada/erro) - raramente
  • genericJson.jsp (modificação na forma de responder objetos JSON) - raramente
  • web.xml (modificação das configurações do servidor de aplicação) - raramente

Padronizações vRaptor

Nomes de Métodos dos Controladores

Os nomes de métodos devem seguir um padrão para serem identificados pelo controle de transações e de acesso.

  • Métodos que farão escrita no banco de dados, devem iniciar por: adiciona, atualiza ou remove. Exemplos:
    • adiciona
    • atualiza
    • atualizaEstadosEMunicipios
    • removeTodosMunicipios
  • Outros métodos, de leitura, devem iniciar preferencialmente por nomes como: lista, verifica, carrega. Exemplos:
    • verifica
    • lista
    • listaTudo
    • listaPorEstado
    • listaTudoPorEstado
    • carregaDadosPrincipais


Padronizações ExtJS

Tamanhos das Janelas

Para a exibição correta das janelas (considerando resolução 1024x768), os tamanhos devem estar entre:

  • Largura: Mínimo de 500 e Máximo de 700
  • Altura: Mínimo de 100 e Máximo de 500

Componentes

Campos Básicos

  • Ext.form.TextField: char,varchar - Strings menores
  • Ext.form.DateField: datetime - Campo de data com calendário para escolha
  • Ext.form.TextArea: text,char,varchar - Strings maiores
  • Ext.form.NumberField: decimal, int - Números inteiros ou decimais (com/sem separação de casas)
  • Ext.form.CheckBox: bool - Boleanos (Sim/Não) (pode ser usado também com char (Ex: 'T','F') desde que seja feito um campo bolean transient no modelo da entidade)
  • Ext.form.Radio: int,char,varchar - Strings ou números de identificação (poucas opções para ser uma nova tabela)
  • Ext.ux.MoneyField: money - Dinheiro no formato 50.000,00
  • Ext.form.HtmlEditor: text,char,varchar - Editor de Código HTML
  • Ext.form.SliderField: int,decimal - Números inteiros ou decimais entre um intervalo

Campos Avançados

  • Ext.form.ComboBox: campo FK (int,char,varchar) com uma descrição (char,varchar) - Usado para poucos registros
  • UxBscGenerico: campo FK (int,char,varchar) com uma descrição (char,varchar) - Usado para vários registros
  • Ext.form.TextFieldRemoteVal: int,char,varchar - Campo que faz a validação remotamente
  • Ext.ux.form.FileUploadField: image,blob - Upload de arquivo único
  • AwesomeUploader: image,blob - Upload de vários arquivos

Campos Especiais

  • Ext.form.DisplayField: int,char,varchar - Campo não submetido e não validado
  • Ext.form.Hidden: int,char,varchar,datetime,money,decimal,text - Campo escondido de qualquer tipo que será submetido

Outros Componentes

  • UxCdsGenerico: Janela de cadastro genérica
  • UxPsqGenerico: Janela de pesquisa genérica
  • UxGrdDuplo: Painel com grid duplo (filtrados/selecionados)


Funcionamento do Controle de Acesso/Transações

vRaptor

Para que um controlador tenha seus métodos verificados pelo controle de acesso, a classe deve ter a seguinte anotação:

...
@Resource
@TrnName(value = "CodigoDaTransacaoDoControleDeAcesso")
public class NomeDaEntidadeController {
...

ExtJs

Para que uma Tela/Transação apareça no menu do sistema e seja verificada pelo controle de acesso, é necessário que o parâmetro id do item de menu seja igual ao código da transação cadastrada no controle de transações.

...
var nomeDaVariavel_ItemDeMenu = new Application.SubMenuTreeNode({
    text:'Nome do Item de Menu',
    id: 'CodigoDaTransacaoDoControleDeAcesso',
    listeners: {
        click: function(){
            appViewPort.addWindow(fQueRetornaAJanelaCorrespondenteAoItemDeMenu());
        }
    }
});
...



VoltarVoltar a Página Inicial - Menu Sistemas

Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas