Guia-FLEX

29
Guia de Desenvolvimento FLEX

Transcript of Guia-FLEX

Page 1: Guia-FLEX

Guia de

Desenvolvimento

FLEX

Page 2: Guia-FLEX

Introdução

Este guia tem por objetivo orientar as equipes de desenvolvimento do

Sicoob Confederação sobre a tecnologia FLEX de desenvolvimento. Iremos

apresentar a arquitetura, as boas práticas e as convenções usadas durante

o desenvolvimento de interfaces visuais.

O que é FLEX ?

A tecnologia FLEX foi lançada pela então Macromedia em março de 2004

que possibilita a criação de aplicações ricas para a internet (RIA – Rich

Internet Application) baseada na plataforma Flash. A Adobe adquiriu a

Macromedia em 2005 e em 2007 a Adobe abriu o código do FLEX 3 SDK,

mesmo o Flash Player continuando a ser proprietário e comercial.

RIA

As aplicações feitas no padrão RIA visivelmente possuem uma experiência

com o usuário mais robusta do aplicações tradicionais feitas em HTML. A

interatividade e recursos disponíveis nesta plataforma facilitam o trabalho

dos designers para criar uma interface com o usuário usando o recurso “o

que você vê é o que você tem” (WYSIWYG).

Actionscript 3 e MXML

A linguagem usada para a programação na plataforma FLEX é chamada

Actionscript. Atualmente na versão 3, está em conformidade com o padrão

ECMAScript. Existe também um formato MXML que é uma linguagem de

marcação XML geralmente usada para a criação da interface com o usuário.

No final das contas um arquivo MXML gera uma classe no formato

Actionscript com o mesmo nome do arquivo em questão. Por exemplo: se

existir um arquivo chamado CadastroPessoa.mxml, o compilador irá gerar

uma arquivo CadastroPessoa.as com a classe CadastroPessoa dentro, tudo

isso de forma transparente.

Page 3: Guia-FLEX

Arquitetura

Nesta arquitetura temos o navegador ou uma aplicação AIR instalada no

cliente, depois que o arquivo SWF é baixado para a estação de trabalho (e

guardada no cache local) as chamadas a métodos de negócio são feitas

para o FLEX Gateway através de um protocolo chamado AMF (Action

Message Format – atualmente na versão 3).

Ao contrário das aplicações tradicionais WEB onde a marcação HTML é

trafegada toda vez que existe uma atualização na tela, as aplicações feitas

em FLEX geram um único arquivo binário SWF que fica armazenado em

cache e a partir deste momento o que passa a ser trafegado são as

requisições AMF de tamanho reduzido.

Cliente Servidor

HTML

Cliente Servidor

SWF

AMF

Aplicação WEB Tradicional

Aplicação RIA FLEX

Cliente Servidor

HTML

Cliente Servidor

AMF

SWF

Cache

Page 4: Guia-FLEX

Navegador

AIRFLEX Gateway

HTTP

AMF

Este protocolo foi introduzido com o Flash Player 6 e era conhecido como

AMF 0. A versão 3 do protocolo AMF foi introduzida com a chegada do Flash

Player 9, com suporte a novos tipos de dados.

Existem diversos gateways para as mais diferentes linguagens de

programação. No Sicoob Confederação estamos utilizando gateways para a

tecnologia JAVA (GraniteDS) e .NET (FluorineFX).

Na época que este guia foi escrito, a versão 3.0.0.477 do framework FLEX fornecido pela Adobe era a versão corrente

usada no Sicoob Confederação.

Separação entre código de negócio e interface gráfica

Existe uma clara divisão entre o código que deve ser usado para

implementar a interface gráfica com o usuário e o código que será usado

para traduzir as regras de negócio de uma funcionalidade.

Em hipótese alguma deve ser usado código de negócio na camada de

apresentação. Se existir algum tipo de validação negocial este deve ser feito

na camada de negócio (projeto EJB). Esta regra ajuda na portabilidade do

aplicativo para outra tecnologia de forma transparente, sem necessidade de

grandes alterações no código FLEX.

Page 5: Guia-FLEX

Lembrando que todo arquivo com a extensão MXML também é uma classe

com o mesmo nome do arquivo. Se por exemplo existir um arquivo com o

nome FuncionalidadeView.mxml, existirá por conseqüência uma classe

chamada FuncionalidadeView.

Normalmente temos a interface gráfica implementada usando um arquivo

com a extensão MXML e um arquivo com a extensão AS que faz herança

desta classe definida no MXML.

Classe FuncionalidadeSelecao herda da classe FuncionalidadeView

Com a herança temos acesso a todos os elementos da interface (aqueles

que possuem a propriedade ID preenchida) e desta forma podemos

manipulá-los conforme a necessidade. Dentro do arquivo MXML devemos

ter apenas o desenho da interface, sem código de validação ou negócio.

Page 6: Guia-FLEX

Invocação de serviços de negócio

Para invocar métodos de negócio devemos utilizar as seguintes classes:

Servicos

ServicosJava

Um exemplo típico de utilização da classe ServicosJava:

1 private function ExecutarMetodoNegocio():void

2 {

3 var dto:RequisicaoReqDTO = new RequisicaoReqDTO();

4 var vo:FuncionalidadeVO = new FuncionalidadeVO();

5

6 vo.propriedade = "Valor da propriedade";

7

8 dto.dados.objeto = vo;

9

10 var servico:ServicoJava = new ServicoJava();

11 servico.source = "br.com.sicoob.sisbr.Projeto.ClasseFuncionalidade";

12 servico.addEventListener(ResultEvent.RESULT, MetodoNegocio_Resultado);

13 servico.bloquearOperacao = true;

14 servico.mensagemEspera = "Carregando dados ...";

15

16 servico.metodoNegocio(requisicaoDTO);

17 }

Na linha 11 estamos definindo qual a classe de negócio será usada na

requisição. Esta classe de serviço possui atributos especiais que a torna

acessível para ter seus métodos chamados pelo FLEX.

Na linha 12 definimos qual é o método em nossa classe do FLEX que irá

responder quando a operação de negócio finalizar e o resultado da operação

estiver disponível.

Na linha 13 temos a opção de bloquear outras ações do usuário enquanto o

método de negócio estiver sendo executado, logo abaixo definimos a

mensagem que será exibida ao usuário enquanto a operação de negócio

não for finalizada.

Finalmente na linha 16 estamos chamado o método de negócio (chamado

“metodoNegocio”) passando como parâmetro um objeto genérico de

requisição.

Page 7: Guia-FLEX

Herança dos tipos DTO

Toda classe do tipo DTO (Data Transfer Object) deve herdar do tipo

RequisicaoReqDTO. Se a herança não for implementada a aplicação terá

problemas no ambiente de produção.

Serialização de datas

O SISBR atualmente possui um mecanismo para tratamento de fuso

horário, porém dependendo da situação poderão ocorrer problemas no

horário de verão. Para corrigir este problema, os objetos do tipo VO e DTO

contendo atributos do tipo data deverão estar implementados da seguinte

maneira.

FLEX

O tipo Date deverá ser substituído pela interface IDateTime, que está no

projeto BancoobFlex. Para atribuir o valor para esta interface proceder da

seguinte maneira:

var meuvo:VOTeste = new VOTeste();

meuvo.minhaData = DateTimeBase.getDateTime(new Date());

ou

meuvo.minhaData =

DateTimeBase.getDateTime(componenteData.selectedDate);

A classe DateTimeBase também se encontra no projeto BancoobFlex.

Para recuperar o valor da data de atributos do tipo IDateTime utilizar a

propriedade data conforme exemplo:

var minhaData:Date = meuvo.minhaData.data;

Page 8: Guia-FLEX

Caso a instância já exista no atributo do tipo IDateTime o valor também

poderá ser atribuído utilizando a propriedade data conforme exemplo:

meuvo.minhaData.data = new Date();

ou

meuvo.minhaData.data = componenteData.selectedDate;

Caso seu VO Flex seja um mapeamento de uma entidade JAVA proceder da

seguinte maneira:

var meuvo:VOTeste = new VOTeste();

meuvo.minhaData = DateTimeBase.getDateTimeEntity(new Date());

ou

var meuvo:VOTeste = new VOTeste();

meuvo.minhaData =

DateTimeBase.getDateTimeEntity(componenteData.selectedDate);

.NET

O tipo DateTime deverá ser substituído pela interface IDateTime, que está

no projeto Bancoob (BancoobDLL no pacote br.com.bancoob.negocio.iface).

Para atribuir o valor para esta interface proceder da seguinte maneira:

VOTeste meuvo = new VOTeste();

meuvo.minhaData = DateTimeBase.getDateTime(new DateTime());

A classe DateTimeBase também se encontra no projeto Bancoob

(BancoobDLL no pacote br.com.bancoob.negocio.dto). Para recuperar o

valor da data de atributos do tipo IDateTime utilizar a propriedade data

conforme exemplo:

DateTime minhaData = meuvo.minhaData.data;

Page 9: Guia-FLEX

Caso a instância já exista no atributo do tipo IDateTime o valor também

poderá ser atribuído utilizando a propriedade data conforme exemplo:

meuvo.minhaData.data = new DateTime();

Para o desenvolimento deverá ser utilizada a DLL FluorineFx.dll de

Produção.

JAVA

No JAVA deverá ser utilizada a classe br.com.sicoob.tipos.DateTime para VO

e DTO e br.com.bancoob.persistencia.types.DateTimeDB para entidades.

É importante verificar se o VO alterado é utilizado por outras

funcionalidades e fazer as alterações em todos os casos para não gerar

problemas.

Componente de Upload e Download

O endereço de upload e download de arquivos deverá ser recuperado

sempre na classe Configuracoes no Flex, não utilizar link relativo devido a

problemas em definições de canais. No .NET o local de gravação deverá ser

recuperado na classe Configuracoes, na propriedade

localDownloadUpload, evite utilizar caminho local.

Componentes Nativos do FLEX

Os componentes nativos do FLEX (tag mxml) não devem ser usados

diretamente, existem componentes desenvolvidos pela arquitetura

corporativa que tem a mesma finalidade, porém com controles e

propriedades adicionais que facilitam a codificação dos casos de uso.

Se algum componente da arquitetura não existir, entrar em contato com a

GEARQ para o devido tratamento.

Page 10: Guia-FLEX

Tipos de Aplicação

Módulos ou Aplicações

Este tipo de aplicação é grande maioria dos módulos presentes no SISBR

WEB. Nesta modalidade os módulos que podem representar um ou mais

casos de uso são abertos quando o usuário seleciona um item de menu do

aplicativo.

Plataformas

Quando uma aplicação possui necessidades especiais em relação a

usabilidade e experiência com o usuário, agrupam um conjunto de

funcionalidades que não fariam sentido estarem separadas então este é o

caso para a criação de uma plataforma. Atualmente contamos com as

seguintes plataformas:

Plataforma de Atendimento

Plataforma Multi-Cooperativa (Contabilidade)

Plataforma de Monitoração

Plataforma de Documentação

Plataforma de Apoio a Decisão (PAD)

Plataforma da Tecnologia da Informação (PTI)

Page 11: Guia-FLEX

Seleção Geral e Procurar Geral

O objetivo deste documento é divulgar os componentes Seleção Geral

Java e Procurar Geral Java, explicando detalhadamente o funcionamento e

configuração dos mesmos. Esperamos que os leitores (desenvolvedores e

analistas) deste documento consigam utilizar esses componentes nos seus

projetos dinamizando o desenvolvimento das funcionalidades para o

SisbrWeb.

O componente seleção geral Java

O Seleção Geral Java é um componente que facilita o

desenvolvimento de funcionalidades para o SisbrWeb, podendo ser utilizado

no desenvolvimento de casos de uso do tipo CRUD (Create, Retrieve,

Update e Delete). Esse componente funciona, basicamente, através das

configurações realizadas no banco de dados, onde deve-se informar a

configuração geral (chamada de definição) e as configurações específicas

(chamada de colunas).

Visualmente esse componente é formado por uma combo com opções

de procura (Tipo de Procura), por um campo texto para digitação da

informação que deve ser pesquisada (Procurar Por), por um botão

(Procurar) e por uma grid onde as informações pesquisadas serão

apresentadas (Selecionar). A figura abaixo mostra o componente Seleção

Geral Java:

Page 12: Guia-FLEX

Figura 1. Exemplo de uso do componente Seleção Geral Java.

Page 13: Guia-FLEX

Configurando o componente Seleção Geral Java

O funcionamento do componente Seleção Geral Java é baseado em

configurações realizadas no banco de dados COIN_TBP, no esquema GEN,

nas tabelas DEFINICAOSELECAOGERAL e COLUNASELECAOGERAL. Essas

configurações serão detalhadas abaixo.

Tabela DefinicaoSelecaoGeral

IDDEFINICAOSELECAOGERAL: O identificador das definições de

configuração do componente Seleção Geral Java.

NUMCOLUNAPADRAO: O número da coluna representa a opção da combo

Tipo de Procura que será selecionada por padrão na inicialização do

componente. Esse número obedece à notação Java de numeração, portanto

para selecionar a primeira coluna deve-se informar o valor 0. Esse valor

indica o campo NUMINDEX da tabela GEN.COLUNASELECAOGERAL.

BOLHABILITARFILTRO: Esse campo existe para compatibilização das

versões do componente. Nessa versão (1.0) o valor deve ser sempre 1.

NUMLISTA: Esse campo existe para compatibilização das versões do

componente. Nessa versão (1.0) o valor deve ser sempre 0.

DESCCONSULTABASE: Esse campo deve ser preenchido com a parte inicial

da consulta a ser realizada no banco de dados.

Ex: select idUsuario, descNomeUsuario from Usuario.

NOMEJNDIDATASOURCE: Nome JNDI do data source que deverá ser

utilizado para conexão com o banco de dados onde será realizada a

consulta. Se o banco de dados onde a consulta deve ser realizada for de

cooperativa, o nome JNDI deve ser jdbc/BancoobDS.

Page 14: Guia-FLEX

BOLDATASOURCECOOPERATIVA: Esse campo indica se o banco de dados

onde a consulta deve ser realizada é de cooperativa.

Para facilitar, abaixo, segue um exemplo de script de inserção de

definição do Seleção Geral Java.

Scripts DefinicaoSelecaoGeral

-- Exemplo de insert da tabela GEN.DefinicaoSelecaoGeral.

-- Nesse exemplo o data source é de cooperativa.

insert into GEN.DefinicaoSelecaoGeral values

(6035, -- IDDEFINICAOSELECAOGERAL

0, -- NUMCOLUNAPADRAO

1, -- BOLHABILITARFILTRO

0, -- NUMLISTA

'SELECT * FROM USUARIO', -- DESCCONSULTABASE

'jdbc/BancoobDS', -- NOMEJNDIDATASOURCE

1) -- BOLDATASOURCECOOPERATIVA

Figura 2. Listagem SQL de insert na tabela GEN.DEFINICAOSELECAOGERAL usando data

source de cooperativa.

-- Exemplo de insert da tabela GEN.DefinicaoSelecaoGeral.

-- Nesse exemplo o data source é DB2.

insert into GEN.DefinicaoSelecaoGeral values

(5151, -- IDDEFINICAOSELECAOGERAL

0, -- NUMCOLUNAPADRAO

1, -- BOLHABILITARFILTRO

0, -- NUMLISTA

'SELECT * FROM CTR.CTR_TRANSACAO', -- DESCCONSULTABASE

'jdbc/BancoobCtrDS', -- NOMEJNDIDATASOURCE

Page 15: Guia-FLEX

0) – BOLDATASOURCECOOPERATIVA

Figura 3. Listagem SQL de insert na tabela GEN.DEFINICAOSELECAOGERAL usando o

data source de DB2.

Tabela ColunaSelecaoGeral

IDCAMPO: Esse identificador é gerado automaticamente. Dessa forma o

script de inclusão pode ter o valor default definido por padrão para esse

campo.

IDDEFINICAOSELECAOGERAL: Chave estrangeira da tabela

GEN.DEFINICAOSELECAOGERAL. Essa chave conecta as colunas à definição

do componente Seleção Geral Java.

NOMECAMPO: Nome do campo que será pesquisado no banco de dados.

Esse parâmetro é case sensitive e deverá ter a mesma grafia do metadado

do banco de dados.

DESCMASCARA: Máscara que pode ser usada na formatação do campo

Procurar Por. Essa máscara funcionará somente para a coluna selecionada.

BOLINCREMENTAL: Esse campo existe para compatibilização das versões do

componente. Nessa versão (1.0) o valor deve ser sempre 0.

NUMINDEX: Esse campo indica qual a posição que a coluna de pesquisa

aparecerá na combo Procurar Por. Esse campo deve ser informado com

atenção, pois usa a notação Java. Portanto, a primeira coluna (o primeiro

item da combo Tipo de Procura) deve ter o valor 0. Na configuração do

componente, mais especificamente na configuração da combo Procurar Por,

as opções serão ordenadas por esse campo.

VALLARGURACOLUNA: Valor que corresponde à largura da coluna.

Atualmente esse campo existe para compatibilização das versões do

componente. Nessa versão (1.0) o valor deve ser sempre 10.

Page 16: Guia-FLEX

BOLVISIVELPROCURA: Esse campo informa se a coluna é visível para a

procura. Se esse campo tiver com o valor 0 ele não aparecerá na combo de

opções de pesquisa (combo Tipo de Procura).

BOLPESQUISARMASCARA: Esse campo informa se a pesquisa será realizada

por um valor formatado com a máscara definida no campo

GEN.COLUNASELECAOGERAL.DESCMASCARA.

NUMCOLUNARETORNO: Esse campo existe para compatibilização das

versões do componente. Nessa versão (1.0) o valor deve ser sempre 0.

DESCPROCURAPOR: Esse campo é o restante da consulta informada na

tabela de GEN.DEFINICAOSELECAOGERAL. O valor informado no campo

DESCCONSULTABASE (tabela GEN.DEFINICAOSELECAOGERAL) é

concatenado com o valor desse campo. A variável da consulta é case

sensitive e deve ter mesma grafia que o metadado da tabela do banco de

dados . Ela deve ser declarada entre chaves e marcada com cifrão. (ex:

${variavel}). Dessa forma, o valor digitado no campo texto Procurar Por

será substituído pela variável e a pesquisa será realizada. Abaixo

apresentamos um exemplo de valor para esse campo.

Ex: where idUsuario = ${idUsuario}.

CODTIPOALINHAMENTO: O código do tipo de alinhamento define como a

coluna será alinhada na grid de resultados apresentados. Os alinhamentos

possíveis são: à esquerda (valor 0), centralizado (valor 1), à direita (valor

2).

CODTIPOALINHAMENTOCABECALHO: O código do tipo de alinhamento

define como o cabeçalho da coluna será alinhada na grid de resultados

apresentados. Os alinhamentos possíveis são: à esquerda (valor 0),

centralizado (valor 1), à direita (valor 2).

CODTIPOCOLUNAGRID: O código do tipo da coluna serve para informar que

tipo de dados será apresentado na grid de resultados (texto, checkbox,

etc). Nessa versão (1.0) o valor deve ser sempre 0.

Page 17: Guia-FLEX

CODTIPOFORMATOTEXTO: Esse código serve para informar o tipo do campo

de pesquisa na tela (caixa de texto Procurar Por). A validação será

configurada de acordo com o valor informado. Os valores possíveis para

esse campo são: SEMFORMATO = 0; NUMERICO = 1; MAIUSCULAS = 2;

MINUSCULAS = 3; DATA = 4; SIMNAO = 5; VERDADEIROFALSO = 6;

LISTAVALORES = 7.

CODTIPOSORT: Esse código serve para informar o tipo das células da grid

de resultados quando a ordenação for solicitada. A ordenação é solicitada

quando o usuário clica no cabeçalho da coluna. Os tipos possíveis são:

STRING = 1; NUMERIC = 2; DATE = 3; DATETIME = 4; TIME = 5.

DESCTITULO: O valor desse campo será apresentado na combo de Tipo de

Procura e no cabeçalho da grid de resultados.

BOLVISIVEL: Esse campo indica se a coluna é visível ou não na grid de

resultados. Dessa forma, se o campo estiver com o valor 1, uma coluna

com os valores recuperados na pesquisa serão apresentados na grid de

resultados. Caso o valor seja 0, o campo poderá ser usado para pesquisa,

mas não será visualizado na grid de resultados.

Script ColunaSelecaoGeral

-- Exemplo de insert da tabela GEN.ColunaSelecaoGeral

insert into GEN.ColunaSelecaoGeral values

(default, -- IDCAMPO

6035, -- IDDEFINICAOSELECAOGERAL

'IDUsuario', -- NOMECAMPO

null, -- DESCMASCARA

0, -- BOLINCREMENTAL

1, -- NUMINDEX

10, -- VALLARGURACOLUNA

1, -- BOLVISIVELPROCURA

0, -- BOLPESQUISARMASCARA

Page 18: Guia-FLEX

0, -- NUMCOLUNARETORNO

'where idUsuario = ${IDUsuario}', -- DESCPROCURAPOR

1, -- CODTIPOALINHAMENTO

1, -- CODTIPOALINHAMENTOCABECALHO

1, -- CODTIPOCOLUNAGRID

2, -- CODTIPOFORMATOTEXTO

1, -- CODTIPOSORT

'ID USUÁRIO', -- DESCTITULO

1) -- BOLVISIVEL

Figura 4. Listagem SQL de insert na tabela GEN.COLUNASELECAOGERAL.

Usando o componente Seleção Geral Java

Após realizar todas as configurações necessárias para o

funcionamento do componente, vamos iniciar a codificação da parte Flex.

Abaixo apresentamos um trecho de código onde instanciamos o

componente e definimos os seus atributos.

<selecaoGeral:SelecaoGeralV2View

tipoProcura="6035"

numCooperativa="4280">

</selecaoGeral:SelecaoGeralV2View>

Figura 5. Listagem MXML com exemplo de uso do componente Seleção Geral Java.

Nesse trecho de código definimos o valor do atributo tipoProcura

para o valor do identificador da tabela GEN.DEFINICAOSELECAOGERAL. Se

o componente estiver configurado para usar data source de cooperativa,

então o atributo numCooperativa poderá ser informado. Dessa forma, a

pesquisa será realizada na base da cooperativa informada. Caso o número

da cooperativa não seja informado, então a consulta será realizada na base

da cooperativa que o usuário estiver logado.

Como dissemos anteriormente, o componente Seleção Geral Java

será muito utilizado em telas do tipo CRUD. Assim, o trecho de código da

Figura 5 deve ser combinado com o componente ListaCadastroView.

Page 19: Guia-FLEX

Abaixo, nas Figuras 6, 7 e 8, veremos um exemplo dessa integração.

Perceba que a tela de inclusão/edição/visualização continua sendo

implementada separadamente, bastando informá-la na tag

<formularioCadastro>.

<?xml version="1.0" encoding="utf-8"?>

<ListaCadastroView

xmlns="br.com.bancoob.componentes.cadastro.*"

xmlns:mx="http://www.adobe.com/2006/mxml"

xmlns:ns1="br.com.bancoob.componentes.painellista.*"

xmlns:tipoProcesso="br.com.sicoob.sisbr.smartConcept.modelagemNe

gocio.modulos.tipoProcesso.*"

xmlns:tipoProcesso1="br.com.sicoob.sisbr.tipoProcesso.*"

xmlns:servico="br.com.bancoob.util.servico.*"

xmlns:selecaoGeral="br.com.bancoob.sisbr.componentes.selecaoGera

l.*"

backgroundAlpha="0.0" borderStyle="solid" borderThickness="0"

fecharFormularioAoIncluir="false" deveLimparPesquisa="false"

width="700" height="500">

<painelLista>

<selecaoGeral:SelecaoGeralV2View tipoProcura="5151" />

</painelLista>

<servicoExclusao>

<servico:ServicoJava

source="br.com.sicoob.sisbr.smartConcept.modelagemNegocio.servic

os.TipoProcessoServico"

bloquearOperacao="true" mensagemEspera="Excluindo os dados..."/>

</servicoExclusao>

<formularioCadastro>

Page 20: Guia-FLEX

<tipoProcesso1:TipoProcessoEdicao/>

</formularioCadastro>

</ListaCadastroView>

Figura 6. Listagem MXML com exemplo de integração ListaCadastroView com Seleção Geral Java.

package {

import br.com.bancoob.componentes.painellista.PainelListaBanco;

import br.com.bancoob.dto.ConsultaDto;

import br.com.bancoob.dto.RequisicaoDTO;

import

br.com.sicoob.sisbr.smartConcept.modelagemNegocio.dto.ModelagemN

egocioReqDTO;

import

br.com.sicoob.sisbr.smartConcept.modelagemNegocio.vo.TipoProcess

oVO;

import br.com.sicoob.sisbr.tipoProcesso.TipoProcessoSelecaoView;

import mx.events.FlexEvent;

public class ManterTipoProcesso extends TipoProcessoSelecaoView

{

//**************

// Construtores:

//**************

public function ManterTipoProcesso():void {

super();

include 'RegistroVO.as';

}

Page 21: Guia-FLEX

//**************

// Eventos:

//**************

protected override function init(event: FlexEvent):void {

super.init(event);

}

//***************************************

// Metodos Herdados:

//***************************************

protected override function

montarDtoExclusao(item:Object):RequisicaoDTO {

var dto: ModelagemNegocioReqDTO = new

ModelagemNegocioReqDTO();

var tipoProcesso : TipoProcessoVO = new

TipoProcessoVO();

tipoProcesso.codigo = item.CODTIPOPROCESSO;

tipoProcesso.nome = item.DESCTIPOPROCESSO;

dto.dados.TipoProcesso = tipoProcesso;

return dto;

} } }

Figura 7. Listagem ActionScript com exemplo de integração ListaCadastroView com Seleção Geral Java.

Page 22: Guia-FLEX

Figura 8. Tela de integração do ListaCadastroView e Seleção Geral Java.

Page 23: Guia-FLEX

O componente Procurar Geral Java

O Procurar Geral Java é um componente que facilita o

desenvolvimento de funcionalidades que necessitam selecionar dados de

forma mais criteriosa. Esse componente também é conhecido como Campo

Lupa. Ele caracteriza-se por um campo para digitação (que pode ser

habilitado ou desabilitado), e um botão com a imagem de uma lupa. A

função desse componente é pesquisar informações através do identificador

informado no campo para digitação. O resultado da pesquisa aparece ao

lado do botão com a imagem de lupa. A Figura 9 e a Figura 13 mostram

exemplos desse componente em funcionamento.

Figura 9. Exemplo de uso do componente Procurar Geral Java.

O componente Procurar Geral Java usa a infraestrutura do

componente Seleção Geral Java, ou seja, todas as definições e colunas de

definições que estão criadas para o componente Seleção Geral Java podem

ser utilizadas pelo componente Procurar Geral Java. Para utilizar o

componente Procurar Geral Java no seu caso de uso basta inserir o seguinte

código, informando o tipoProcura da consulta desejada (previamente

cadastrada na tabela GEN.DEFINICAOSELECAOGERAL), o campoCodigo e o

campoDescricao.

<selecaoGeral:ProcurarGeralV2 id="procurarGeral"

tipoProcura="5151"

titulo="Procurar Geral"

campoCodigo="CODTIPOPROCESSO"

campoDescricao="DESCTIPOPROCESSO"/>

Figura 10. Listagem MXML com exemplo de uso do componente Procurar Geral Java.

Page 24: Guia-FLEX

Usando o componente Procurar Geral Java

O componente Procurar Geral Java tem dois atributos iguais ao do

componente Seleção Geral Java. São eles: tipoProcura e

numCooperativa. Esses dois atributos têm as mesmas funções dos

atributos do componente Seleção Geral Java. Os outros dois atributos

específicos do componente Procurar Geral Java serão detalhados abaixo:

campoCodigo: O campo código referencia o nome do atributo do

objeto selecionado, ou seja, o nome da coluna chave primária da

tabela pesquisada.

campoDescricao: O campo descrição, por sua vez, referencia o

nome do atributo do objeto selecionado que deve ser mostrado na

tela.

Para entender o funcionamento desses dois campos vamos clicar no

botão Lupa. A tela do componente Seleção Geral irá abrir, conforme a

Figura 11.

Page 25: Guia-FLEX

Figura 11. Tela do componente Seleção Geral Java aberta a partir do componente Procurar Geral Java.

Após o preenchimento do campo Procurar Por e do clique no botão

Procurar, o componente Seleção Geral Java irá executar a consulta

configurada e apresentará o resultado, conforme a Figura 12.

Figura 12. Tela do componente Seleção Geral Java apresentando os resultados da pesquisa.

Ao selecionar o item da grid de resultados e clicar no botão OK, o

item selecionado será incluído na tela inicial do nosso exemplo. A imagem

da Figura 13 mostra esse comportamento.

Page 26: Guia-FLEX

Figura 13. Tela principal do componente Procurar Geral Java apresentando um elemento selecionado.

Lista de componentes visuais

Rótulo

Rótulo MultLine

Campo Data

Campo Hora

Tipo Hora

Texto

Somente Maiúsculas

Permitir Valores Negativos

Aceitar Nulo

Formato

Tipo de Entrada

Valor

Casas Decimais

Agrupar Dígitos

Validar Obrigatório

Validar Email

Validar Mensagem

Page 27: Guia-FLEX

Valor Mínimo

Valor Máximo

Navegar com tecla Enter

Travar Digitação Casas Decimais

Arredondamento de Valores

Permitir Habilitar

Validar

Check

Navegar com tecla Enter

Permitir Habilitar

Combo

Label Item Opcional

Validar Mensagem

Validar Obrigatório

Travar Seleção

Conteúdo Maiúsculo

Somente Maiúsculas

Identificador Item

Navegar com tecla Enter

Permitir Habilitar

Inserir Item Opcional

Procurar Item por Nome

Procurar Item por Objeto

Validar

Is Selecionado

Combo Booleana

Page 28: Guia-FLEX

Label Verdadeiro

Label Falso

Valor Selecionado

Contador

Permitir Habilitar

Editor Texto

Permitir Habilitar

Input CNPJ

Input CPF

Máscara

Rádio

Permitir Habilitar

Navegar com tecla Enter

Rádio Grupo Bancoob

Texto Área

Permitir Habilitar

Navegar com tecla Enter

Somente Maiúsculas

Validar Obrigatório

Validar Mensagem

Lista Seleção

Pré Impressão

Título

Sicoob Tree

Validadores

Page 29: Guia-FLEX

Validador Campo Preenchido

Validador CNPJ

Validador CPF

Validador Expressão Regular

Validador Igualdade Campo

Validador Intervalo Numérico

Botão

Canvas Bancoob

Canvas Validável

Tabela Paginada

Barra Botões Formulário

Painel Filtro

Painel Lista

Advanced Data Grid Bancoob

Alerta

Calendário

Janela