Primeiro, os dados estão visíveis para vc?
Segundo, se sim, então vc pode extender o componente de Validator e criar um
específico para seu caso.

Pode ser q isso fique um pouco engessado, mas se é uma coisa totalmente
específica então não tem problemas. Faça uma boa documentação para futuras
manutenções.

Sobrescreva o método validate do Validator padão e retorne um
ValidationResultEvent.VALID ou ValidationResultEvent.INVALID de acordo com
os testes q vc quer fazer.

Depois faça outro método para testar o evento do seu Validator
personalizado. Uma coisa é testar os campos e disparar o evento, outra coisa
é tratar o evento disparado (seja "invalid" ou "valid"). Só como exemplo, no
meu "EloUtils" tenho esse cara q faz esse teste:

/**
* Checa o status de um validator.
* @param validator:Validator - validador que será testado.
* @return true (para válido) ou false (para inválido).
* @author Otmane Hajji / Mário Júnior (Parte integrante do EloFlex,
(c)2007-2008, Elotech)
*/
public static function checkValidator(validator : Validator) : Boolean {
     var result : Boolean = false; //parte do princípio que é inválido.

     if (validator is Validator) {
          var event : ValidationResultEvent = validator.validate();
          if (event.type == ValidationResultEvent.VALID) result = true;
     }

     return result;
}

O uso é assim:
if (EloUtils.checkValidator(<id_validator>)) {
   //se o validador passou com sucesso, então faz oq quiser
   //não precisa de else nesse caso, pois se o validator for INVALID,
   //o fw do flex intercepta o Evento e vai mostrar o campo vermelho.
}


Você pode alterar o checkValidators para que possa testar vários
validadores, é muito útil também:

/**
  * Checa o status de vários validators
  *
  * @param validators : ArrayCollection um ArrayCollection de Validators
  * @return true (para valid) ou false (para invalid) Ao encontrar o
primeiro validator 'false'. retorna o status.
  * @author Mário Júnior (Parte integrante do EloFlex, (c)2008, Elotech)
  */
  public static function checkValidators(validators : ArrayCollection) :
Boolean {
      var result : Boolean = false; //parte do princípio q todos são
inválidos.

      //para cada validador no arrayCollection....
      for each(var obj : Validator in validators) {
          result = checkValidator(obj); //...chama o método que testa UM
validator de cada vez.
          if (result == false) break; //ao encontrar o primeiro INVALID, já
sai do método
      }
      return result;
  }


O uso, nesse caso, fica assim:
//cria um array de validadores...
var arrValidadores : ArrayCollection = new ArrayCollection();
arrValidadores.addItem(<id_validador_1>);
arrValidadores.addItem(<id_validador_2>);
arrValidadores.addItem(<id_validador_3>);
arrValidadores.addItem(<id_validador_4>);

//passa o array de validadores para o EloUtils testá-los.
if (EloUtils.checkValidators(arrValidadores)) {
   //se todos os validadores passarem com sucesso, então faz oq quiser...
   //Aqui tb não precisa de else nesse caso, pois se algum validator for
INVALID,
   //o fw do flex intercepta o Evento e vai mostrar o campo vermelho.
}


Well... trabalhar com validadores é muito fácil, graças a arquitetura que os
caras na Adobe fizeram... o reaproveitamento de código e a facilidade de
extendê-los é realmente muito bom, oq me leva a crer que o FW do Flex é um
dos melhores Fws q já tive a oportunidade de estudar internamente (Spring e
Hibernate tb são fantásticos =D).... e ainda tenho muita coisa para estudar
e entender.

Isso é um dos posts que tenho pronto para postar no meu blog.. mas falta
tempo.. =P ....


Espero ter ajudado Hamad, boa sorte.


-- 
Mário de Souza Júnior
Programador Java / Flex : AS3 / PHP
(44) 4009-3550 Maringá-PR
http://blog.mariojunior.com
[EMAIL PROTECTED] (gtalk, msn, etc..)

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

Responder a