Pessoal,
Desenvolvi um componente para Flex chamado MasterTextInput. Totalmente Open Source e projeto criado no Google Code.
O MasterTextInput estende as características de um TextInput com novas funcionalidades e facilidades implementada para nos ajudar no nosso dia-a-dia.
Segue a lista das Funcionalidades já desenvolvidas nesta versão v0.1:
== AUTO TEXT CASE TYPE ==
Desc: Transformar automaticamente o texto digitado em minúscula ou maiúscula.
Propriedade: capsType()
Valores:
- normal : Sem case [DEFAULT]
- lowercase : Transforma em Minúscula
- upercase : Transforma em Maiúscula
- init : Transforma a primeira letra de cada palavra em Maiúscula o resto em minúscula.
== AUTO TAB ON <ENTER> KEY PRESS ==
Desc: Automaticamente coloca o foco no próximo componente ao pressionar a tecla <ENTER>. Realiza a mesma função da tecla <TAB>
Propriedade: nextFocusOnEnter()
Valores:
- true : Ativa função [DEFAULT]
- false : Inativa função
Eventos:
- enterPressed : Disparado ao pressionar a tecla <ENTER>. Pode ser usado para implementações customizadas.
== AUTO RESTRICT ==
Desc: Restrições de input de texto já implementadas.
Propriedade: onlyRestrict()
Valores:
- none : Não realiza restrição [DEFAULT]
- number : Aceita apenas caracteres numéricos
- alphabetic : Aceita apenas texto
- alphabeticNoSpecial : Aceita apenas texto, porém não aceita caracteres especiais como : @ - / * & …
Observação: Para restrições customizadas pode-se continuar utilizando a propriedade restrict().
== EMBEDED VALIDATORS ==
Desc: Validação embutida. Não será mais necessário criar <Validators> por fora para cada campo. Já existirá as validações automáticas apenas setando uma propriedade do MasterTextInput. As mensagens de Validação já são automaticamente traduzidas para o Português/Inglês/Espanhol sem a necessidade de nenhum tipo de implementação.
Propriedade: validator()
Valores:
- none : Sem validação automática [DEFAULT]
- email : Validação de E-mail
- phone : Validação de telefone
- number : Validação de número
- string : Validação de string
- date : Validação de data
Observações:
- Todas as propriedades específicas de cada validador também existe no MasterTextInput. Como por exemplo FormatInput para validador de data, MaxValue para Number, MaxLenght para String e assim para todas as outras propriedades padrões dos validadores.
- Existe um objeto Publico chamado “currentValidator” ele irá sempre apontar para o validador atual do seu MasterTextInput, assim você poderá via AS modificar qualquer característica do validador dinamicamente, associar ele a um Array para validação agrupada e qualquer outra função.
- As propriedades Trigger() e TriggerEvent() existem no MasterTextInput para que seja possível definir quando será disparada a validação do campo. O momento padrão é ao sair o foco do componente.
- Todas as validações estão com as características implementadas por DEFAULT do Brasil, como por exemplo, a formatação da data como DD/MM/YYYY, separador decimal como (,) separador de milhar como (.) e assim sucessivamente.
Propriedade: ValidationLanguage()
Desc: Esta propriedade terá a língua que será mostrada as mensagens de validação dos Validadores do MasterTextInput.
Valores:
- portuguese : Todas as mensagens de validação ficam em Português. [DEFAULT]
- english : Mensagens de validação em inglês.
- spanish : Mensagens de validação em espanhol.
Observações:
- Pode-se modificar a linguagem dinamicamente setando este propriedade via Action Script.
== CLEAR BUTTON ==
Desc: Mostrará um botão com um ícone em “X” no momento em que algum texto for digitado no MasterTextInput. Ao clicar o botão o campo será limpo.
Propriedade: showClearButton()
Valores:
- true : Mostra botão [DEFAULT]
- false : Não mostra botão
Implementações em andamento para versão v0.2:
== Auto Formatadores ==
- Formatar DATA
- Formatar CEP
- Formatar CNPJ
- Formata CPF
- Formatar Telefone
- Formatação customizada : ###.###.##-##
== Validadores para CPF, CNPJ e IP ==
== Undo e Redo ==
== Label Prompt ==
Peço a quem estiver interessado, realizar o download no site do projeto.
Favor realizem testes e contribuam com novas idéias para serem implementadas afim de deixar este componente bem completo.
Site do Projeto: http://code.google.com/p/mastertextinput/
Site Flexpernambuco: http://www.flexpernambuco.com.br/
Sugestões enviar para: juliano.mendes@flexpernambuco.com.br
Abraços,
Juliano Mendes
October 20th, 2008 at 11:55 am
Parabens Juliano,
Vai ajudar o pessoal do flex. estarei postando algumas solucoes que vai ajudar bem o pessoal
October 22nd, 2008 at 9:41 am
Parabéns pela idéia.
Parabéns por torna-la open-source.
November 4th, 2008 at 3:56 pm
Juliano,
não estou conseginte boblear a opação showClearButton.
Estou utilizando desta forma :
e mesmo assim aparece a imagem de limpar.
December 21st, 2008 at 3:50 pm
Olá Juliano,
Muito bom seu trabalho, parabéns! Estou montando uma pequena aplicação para cadastro de clientes e pedidos. Você tem idéia de quando estará disponivel os Validadores para CPF e CNPJ?
Obrigado e um abraço.
January 13th, 2009 at 2:49 pm
Procurando um formatador para telefone, cep, cpf/cnpj
encontrei alguns bacanas, mas complicados. “O cara é inesperiente no assunto…”
Dai criei uma classe para fazer tais os tipos de formatação em portugues é claro.
É muito simples.
A classe é esta:
package caminho de classes do seu projeto
{
public class fieldFormatter
{
public function fieldFormatter()
{
}
import mx.events.IndexChangedEvent;
import mx.formatters.SwitchSymbolFormatter;
public var ssf:SwitchSymbolFormatter = new SwitchSymbolFormatter;
public var formato:String;
public function setFormat(format:String):void{
formato = format;
}
public function removeCaracteres(text:String):String{
var newS:String = ”;
var i:int;
for (i=0;i<=text.length;i++){
if ((String(text).substr(i,1)==’0′) || (String(text).substr(i,1)==’1′) || (String(text).substr(i,1)==’2′) ||
(String(text).substr(i,1)==’3′) || (String(text).substr(i,1)==’4′) || (String(text).substr(i,1)==’5′) ||
(String(text).substr(i,1)==’6′) || (String(text).substr(i,1)==’7′) || (String(text).substr(i,1)==’8′) ||
(String(text).substr(i,1)==’9′) || (String(text).substr(i,1)==’#') ){
newS=newS+String(text).substr(i,1);
}
}
return newS;
}
public function contaCaracteres(text:String):int{
var resultado:int = 0;
var i:int;
for (i=0;i= removeCaracteres(formato).length){
return formato;
}
while(caracteresValidos < tam){
if (formato.substr(i,1) == ‘#’){
caracteresValidos++;
}
i++;
}
res = formato.substr(0,i);
return res;
}
}
}
Após criar esta classes, implemente no seu codigo desta forma abaixo:
Importe a classe na aplicação. EX.: “import com.lib.fieldFormatter;”
Depois crie a variavel do tipo fieldFormatter. EX.: public var formatoTelefone:fieldFormatter;
Inicialize a variavel… EX.: public function inittApp():void{
formatoTelefone = new fieldFormatter();
formatoTelefone.setFormat(’(##)####-####’);
}
Depois crie a função:
public function tiTelefoneChange():void{
tiTelefone.text = formatoTelefone.formatar(tiTelefone.text);
tiTelefone.setSelection(tiTelefone.length+1,tiTelefone.length+1);
}
Agora coloque no “change” do campo a ser formatado.
Pronto. Agora já temos um formatador de telefone, que pode ser para CEP, CPF, CNPJ, NUMEROS em geral, Campo de Valores, ETC… Basta criar e formatar a variavel do initApp da forma que voces quiserem.
Duvidas, entrem em contato pelo email.
Um Abraço a todos
August 4th, 2009 at 10:17 pm
Caro Romualdo,
Sua classe está incompleta e nao funciona! Por exemplo, onde está a funcão “formatar” que vc chama no código “tiTelefone.text = formatoTelefone.formatar(tiTelefone.text);”
June 5th, 2010 at 8:35 am
Tem como validar todos os campos de uma só vez, mas retornar true (todos ok) ou false (algum(s) n ok) ??