DES:vRaptorExtJs

(Diferença entre revisões)
Ir para: navegação, pesquisa
(Componentes)
(Componentes)
Linha 217: Linha 217:
 
|Ext.form.'''NumberField''' || decimal, int ||Números inteiros ou decimais (com/sem separação de casas) ||'''nf'''
 
|Ext.form.'''NumberField''' || decimal, int ||Números inteiros ou decimais (com/sem separação de casas) ||'''nf'''
 
|-
 
|-
|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 ||'''cb'''
+
|Ext.form.'''CheckBox''' ||bool - Boleanos (Sim/Não)  ||pode ser usado também com char (Ex: 'T','F') desde que seja feito um campo boolean ''transient'' no modelo da entidade ||'''cb'''
 
|-
 
|-
 
|Ext.form.'''Radio''' ||int,char,varchar ||Strings ou números de identificação (poucas opções para ser uma nova tabela) ||'''rd'''
 
|Ext.form.'''Radio''' ||int,char,varchar ||Strings ou números de identificação (poucas opções para ser uma nova tabela) ||'''rd'''
Linha 228: Linha 228:
  
 
|}
 
|}
 +
 
<ul>
 
<ul>
 
  <li>Ext.form.'''TextField:''' char,varchar  - Strings menores :: Prefixo padrão: '''ft'''
 
  <li>Ext.form.'''TextField:''' char,varchar  - Strings menores :: Prefixo padrão: '''ft'''
Linha 241: Linha 242:
  
 
Campos Avançados
 
Campos Avançados
 +
{| border="1" cellpadding="2"
 +
!Campo
 +
!Tipo
 +
!Uso
 +
!Prefixo padrão
 +
|-
 +
|Ext.form.'''ComboBox''' ||campo FK (int,char,varchar) com uma descrição (char,varchar)  ||Usado para poucos registros ||'''cb'''
 +
|-
 +
|'''UxBscGenerico''' ||campo FK (int,char,varchar) com uma descrição (char,varchar)  ||Usado para vários registros ||'''bsc'''
 +
|-
 +
|Ext.form.'''TextFieldRemoteVal''' ||int,char,varchar ||Campo que faz a validação remotamente ||'''tfr'''
 +
|-
 +
|Ext.ux.form.'''FileUploadField''' ||image,blob ||Upload de arquivo único ||'''fup'''
 +
|}
 +
 
<ul>
 
<ul>
 
  <li>Ext.form.'''ComboBox''': campo FK (int,char,varchar) com uma descrição (char,varchar) - Usado para poucos registros
 
  <li>Ext.form.'''ComboBox''': campo FK (int,char,varchar) com uma descrição (char,varchar) - Usado para poucos registros

Edição de 11h43min de 9 de julho de 2013

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

Sistema		ExtJs		SVN		Status
Academus	4.1 MVC		academus	Producao/Desenvolvimento
Almox		3		almox		Producao
Login		4.1		login		Producao
Minos           4.1 MVC         minos_mvc	Producao
Osiris		4.1		osiris		Producao
SGA		3		sga_vraptor	Producao
SGC		3		sgc		Producao
SGCCR		4.1 MVC		sgccr_mvc	Producao
SGCV		3		sgcv		Producao
SGE		3		sge_vraptor	Producao
SGPDE		4.1 MVC		sgpde_mvc	Producao
SGPibic         4.1 MVC        	sgpibic		Desenvolvimento
SGPPLS		4.1 MVC		sgppls_mvc	Producao
SGPStricto	3		sgpstricto	Producao/Desenvolvimento
SGRD		4.1		sgrd,sgrd_mvc	Producao/Desenvolvimento (Atualizando para 4.1 MVC)
SGT		3		sgt		Producao

Desenvolvimento Parado:
Pontus-Web	3		pontus_vraptor
SGEM		4.1		sgem
SGLCC		4.1		sglcc_mvc
SGPE		4.1		sgpe

Á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

Campo Tipo Uso Prefixo padrão
Ext.form.TextField char,varchar Strings menores tf
Ext.form.DateField datetime Campo de data com calendário para escolha df
Ext.form.TextArea text,char,varchar Strings maiores ta
Ext.form.NumberField decimal, int Números inteiros ou decimais (com/sem separação de casas) nf
Ext.form.CheckBox bool - Boleanos (Sim/Não) pode ser usado também com char (Ex: 'T','F') desde que seja feito um campo boolean transient no modelo da entidade cb
Ext.form.Radio int,char,varchar Strings ou números de identificação (poucas opções para ser uma nova tabela) rd
Ext.form.MoneyField money Dinheiro no formato 50.000,00 mf
Ext.form.HtmlEditor text,char,varchar Editor de Código HTML he
Ext.form.SliderField int,decimal Números inteiros ou decimais entre um intervalo sf
  • Ext.form.TextField: char,varchar - Strings menores :: Prefixo padrão: ft
  • 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

Campo Tipo Uso Prefixo padrão
Ext.form.ComboBox campo FK (int,char,varchar) com uma descrição (char,varchar) Usado para poucos registros cb
UxBscGenerico campo FK (int,char,varchar) com uma descrição (char,varchar) Usado para vários registros bsc
Ext.form.TextFieldRemoteVal int,char,varchar Campo que faz a validação remotamente tfr
Ext.ux.form.FileUploadField image,blob Upload de arquivo único fup
  • 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)

Nomenclatura

  • Campos de tela: Utilizar o padrão de prefixo corresponde ao campo que se está utilizando concatenado ao nome do campo no model. Exemplo: objeto Ext.form.TextField para edição de um campo pssFscNome: deve-se colocar o prefixo ft concatenado ao nome do campo pssFscNome, resultando no nome ftPssFscNome

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());
        }
    }
});
...

Servidores Tomcat

Nossa estrutura consiste de:

  • Um servidor para as aplicações (200.201.88.170), rodando com Linux Ubuntu e Tomcat 7
  • Dois servidores para os relatórios, em cluster (200.201.88.171 e 200.201.88.172), rodando com Linux Ubuntu e Tomcat 7
  • O cluster é implementado com o HAProxy
  • Nos servidores em cluster, a pasta de deploy é compartilhada (o 171 é a matriz); dessa forma, o deploy feito em um servidor automaticamente é feito no outro também
  • A pasta de configuração dos sistemas é um link simbólico para o servidor 170, ou seja, essa pasta fica compartilhada entre todos os 3 servidores

Links para configuração do JDK da Oracle:
http://www.magentodeveloperleedsuk.co.uk/installing-oracle-java-jdk-7-on-ubuntu-12-04-step-by-step/
Após instalar a nova JDK, remover a OpenJDK: sudo apt-get remove --purge openjdk-*
https://issues.apache.org/jira/browse/CASSANDRA-4275

Alterações para execução do projeto no JBoss 7

Para implantar o projeto no JBoss 7 é necessário ajustar o sistema para que o VRaptor faça um scan estático das classes. Isso significa que o VRaptor fará o mapeamento das classes anotadas antes da primeira subida do projeto. Isso deixa a subida mais lenta, mas posteriormente o sistema executa mais rapidamente, pois o scan não precisará mais ser feito.
Para que o scan estático funcione, é necessário incluir o seguinte trecho no arquivo nbbuil.xml do projeto no Netbeans (o arquivo pode ser localizado acessando a aba "Arquivos"):

...
    <target name="-post-compile">
        <path id="build.classpath">
            <fileset dir="build/web/WEB-INF/lib" includes="*.jar" />
        </path>

        <java classpathref="build.classpath" classname="br.com.caelum.vraptor.scan.VRaptorStaticScanning" fork="true">
            <arg value="build/web/WEB-INF/web.xml" />
            <classpath refid="build.classpath" />
            <classpath path="build/web/WEB-INF/classes" />
        </java>
    </target>
...


Monitoramento do JBoss 7 utilizando o "Applications Manager 10", da empresa ManageEngine

To monitor JBoss, the http-invoker.sar should be deployed in the JBoss Server. The application (http-invoker.sar) is by default deployed in the JBoss server.

If the http port of the JBoss server is changed then the port number in the attribute InvokerURLSuffix should also be modified in jboss-3.2.0/server/default/deploy/http-invoker.sar/META-INF/jboss-service.xml file.More Info>>

To monitor JBoss 5.0.0 version and above jbossagent.sar should be deployed in JBoss server. To deploy follow the steps below Copy jbossagent.sar from location <Applications Manager home>/working/resources and paste under <JBOSS_HOME>/server/default/deploy.If you are running JBoss in different domain like all then deployment target folder would be <JBOSS_HOME>/server/all/deploy


VoltarVoltar a Página Inicial - Menu Sistemas

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