O buraco é um pouco mais em baixo...

Na verdade haverá um DataForm completo que utilizará estes componentes, com validação, metadata em XML, etc... Você montará um XML parecido com uma <TABLE/> em HTML e o DataForm será montado a partir deste XML, e como vai ter também um DataProvider que fará interligação entre o client e server (mais ou menos como o .net faz), forms serão bem mais simples de se desenvolver. Em resumo, estes componentes serão parte de algo maior.

Mas, focando só no MaskedTextInput...

Dá uma olhada de novo em http://www.kodelsolutions.com/Sandbox.swf

Agora tem calendário incorporado... Vai ter possibilidade de se colocar botões customizados ao lado do texto (ex.: pesquisar)... A máscara aceita algo como "B[10]", ou seja, repita B 10x (deixando a máscara como BBBBBBBBBB). Ah! Este B é qualquer caractere (incluindo espaços) Ele também terá validação compatível com o DataAnnotations do .net (eu faço uma classe e coloco atributos sobre as propriedades com dados como é requerido, comprimento mínimo, range de valores, etc.)

Conforme as idéias forem pintando vou implementando... Na verdade ele está sendo projetado para ser o único componente de entrada de dados via teclado, ou seja, irá funcionar como masked, como textinput e como combo editável (com dropdown em lista, tree e grid, free typing ou auto-complete).

E, claro, será incorporado com o ServerDataProvider... um componente que irá fazer binding com uma entidade Linq server-side (ou seja, eu vou dar o ID de um ServerDataProvider para o componente, com o namespace de uma entidade Linq e ele fará, por exemplo, o drop-down do grid com dados de uma base de dados ou web-service). O problema aí é que eu programo em .net, e pelo que vejo 99% das pessoas utilizam Java/PHP para desenvolver com o Flex... Quem sabe no futuro abro o source se alguém se prontificar a traduzir a parte server-side para essas plataformas...

Aliás, este ServerDataProvider irá funcionar para todos os componentes (incluindo o DataGrid com paginação e filtro dinâmico, como fiz em http://www.kodelsolutions.com/Maya).

Só não decidi ainda se vou usar isso exclusivamente com Linq ou uma forma mais genérica, para poder ser adaptado para outros servers com menos recursos, como Java e PHP.

Se tiver o plug-in do Silverlight 3, dê uma olhada neste sample:
http://msdn.microsoft.com/en-us/magazine/ee335695.aspx
http://www.rickytan.net/dataform/ETV/

O data form é auto gerado dependendo da entidade que você tem e tem um sumário de erros (experimente entrar com um valor texto no campo Salary e clicar na linha do erro no sumário).

Tem alguns recursos de grid interessantes também:
http://www.codeproject.com/KB/silverlight/autofiltering_silverlight.aspx
http://silverlight.codeplex.com/wikipage?title=Silverlight%20Toolkit%20Overview%20Part%205&referringTitle=Home
http://silverlight.net/content/samples/sl3/toolkitcontrolsamples/run/default.html (Data > DataPager)

A idéia geral é fazer algo que seja o mais automatizado possível... se tiver um projeto com 100 tabelas, imagina o tédio que é fazer 100 conexões com o servidor, 100 datagrids, 100 formulários... se houvesse algo que fizesse isso de uma forma genérica, seria interessante... e o Silverlight faz isso (com o recurso de AutoGenerateFields e metadados nas entidades para formatação no client).

Eu vejo as coisas da seguinte forma: Silverlight tem idéias e conceitos muito bons, mas é uma porcaria (é lento, grande, consome CPU e memória abusivas e é ridiculamente difícil). Flex por outro lado é rápido, compacto, não gasta muita CPU nem memória e é pornograficamente fácil, amigável e intuitivo. O grande problema do Flex é: os componentes da Adobe beeem fraquinhos * e não tem muitos componentes no mercado, mesmo pagos (por outro lado, existem zilhões de companhias que desenvolvem componentes para .net e estão fazendo para Silverlight, mas custam horrores (ComponentOne custa 1000 doletas))


* Exemplos:
1) O código-fonte do Alert é medonho... Extramamente complicado para algo simples e completamente travado... mesmo pegando o código e inserindo no projeto customizando-o dá dor de cabeça fazer um Alert com mais recursos.

2) O FormItem nunca deixa os labels na mesma linha horizontal dos componentes do formulário, e não há nenhuma forma de se customizar melhor isso via CSS. Além de odiar o fato de forms só poderem ser verticais... quero ter um componente que faça fácil, por exemplo, o formulário de contatos de http://www.kodelsolutions.com/PersonalOrganizer/PersonalOrganizer.html

3) O DateTimePicker é nojento! Não tem máscara, não tem a menor possibilidade de se incluir hora (nem o DateValidator tem).

4) Apesar de existir o NumericInput, como faço se quiser inserir valores monetários (com casa decimal)? Impossível com ele =\

5) DataGrid que se preze tem que ter filtro e paginação embutida... Infelizmente, a tecnologia Flex como um todo é meio server-ignorant, ou seja, ele não é muito ligado à um servidor como é o Silverlight (onde posso ter grid com paginação, ordenação e filtro server-side com apenas 1 linha de código do lado servidor).

--------------------------------------------------
From: "RafaelViana" <rfl.vi...@gmail.com>
Sent: Saturday, December 19, 2009 2:59 PM
To: "flexdev" <flexdev@googlegroups.com>
Subject: [flexdev] Re: TextInput & Ctrl+X

Agora falando um pouco mais sobre o componente:

Tem um componente que utilizo: MasterTextInput (http://
www.flexpernambuco.com.br/?cat=13)

Quais diferenciais você pretende oferecer nesse componente?

On 19 dez, 14:33, J.C.Ködel <jcko...@gmail.com> wrote:
Então... pensei no telefone... mas aí tem alguns problemas:

Em primeiro lugar, a máscara (XX) XXXX-XXXX não é válida nem no Brasil...
Vamos supor que eu esteja querendo fazer um cadastro de fornecedores e
desejo cadastrar a Coca-Cola. O telefone da coca é 0800-21-21-21... Tem
telefones como 0800-XX-XXX, ou 0300-XX-XX-XX-XX e bota x nisso XX XX...

E este aplicativo (e framework) terá um forte apelo multi-lingual (ou seja, haverá um Globalization Manager que traduzirá todo o aplicativo sem precisar
usar -locale e embutir zilhões de textos no aplicativo). Neste caso,
máscaras de telefones internacionais já ferram tudo =\

Esta adaptação que eu fiz permite que você deixe caracteres em branco e até
insira espaços (inclusive acentos... o componente original nem isso
aceitava). Mas eu pessoalmente acho estranho você ter que digitar
[Espaço][Espaço] antes de iniciar o número do telefone...

Neste caso, eu acho que seria mais interessante um componente composto, onde o DDD e o telefone ficassem separados... se quiser entrar com o DDD, ótimo,
senão, só dar Tab e deixar vazio... aí o componente concatenaria os dois
textinput para montar (XX) XXXX-XXXX ou XXXX-XXXX. Ficaria algo assim: [[(_
_)] [_ _ _ _ - _ _ _ _]]

Uma alternativa que eu estava pensando é disponibilizar uma base de dados
com códigos de países e códigos de área destes países. Aí desenvolver um
combo que faz drop-down em uma tree onde o cara escolhe a cidade em questão
(obviamente com possibilidade de digitar), e o componente automaticamente
colocaria o +55 11, por exemplo, para São Paulo. O cara poderia digitar no combo o código internacional e local, se souber, ou poderia digitar o nome
de uma cidade e o sistema localizaria no focus out ou poderia manualmente
abrir o drop-down e pesquisar o que quer (obviamente com um botão para
inserir novo).

Esta base poderia inclusive ter informações sobre a máscara também, aí a
máscara do telefone se adaptaria automaticamente dependendo do código de
área desejado.

Mas, são só idéias...

--------------------------------------------------
From: "Daniel Vitor" <dvluc...@gmail.com>
Sent: Saturday, December 19, 2009 2:09 PM
To: "flexdev" <flexdev@googlegroups.com>
Subject: [flexdev] Re: TextInput & Ctrl+X



> Parabéns,

> Ficou muito legal seu componente.

> Também estou melhorando fiz meu próprio upgrade no componente da
> adobe, apesar que mudei tanto que só restou da adobe a idéia. rsrs
> Se possível gostaria de adicionasse no exemplo que postou, uma máscara
> de telefone com DDD, ex: (xx) xxxx-xxxx.
> De forma que seja permitido digitar o telefone sem o DDD.
> Gostaria de ver o comportamento do componente nesse caso, pois esse
> tipo de mascará foi a que mais deu dor de cabeça, no meu caso.

> Abraço e parabéns.

> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis emhttp://groups.google.com/group/flexdev



 smime.p7s
6KExibirDownload

--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Responder a