Limpar tela no Flex

Olá a todos, uma das primeiras necessidades quando se desenvolve interfaces e um método genérico para limpar a tela. Este post trás uma classe genérica para limpar componentes visuais da tela, ela não tem todos os componentes visuais, mais pode ser adicionados novos componentes seguindo o modelo.

package
{
  import flash.display.DisplayObjectContainer;

  import mx.containers.Canvas;
  import mx.controls.CheckBox;
  import mx.controls.ComboBox;
  import mx.controls.DateField;
  import mx.controls.NumericStepper;
  import mx.controls.TextInput;

  public class LimpaTela
  {
    public function LimpaTela()
    {
    }

    public static function limparTela(obj:DisplayObjectContainer):void{
      for(var i:int=0;i<obj.numChildren;i++){
        if(obj.getChildAt(i) is TextInput){
          TextInput(obj.getChildAt(i)).text = "";
        }
        else if(obj.getChildAt(i) is CheckBox){
          CheckBox(obj.getChildAt(i)).selected = false;
        }
        else if(obj.getChildAt(i) is ComboBox){
          if(ComboBox(obj.getChildAt(i)).editable){
            ComboBox(obj.getChildAt(i)).text = "";
          }
          ComboBox(obj.getChildAt(i)).selectedIndex = -1;
        }
        else if(obj.getChildAt(i) is NumericStepper){
          NumericStepper(obj.getChildAt(i)).value = 0;
        }
        else if(obj.getChildAt(i) is DateField){
          DateField(obj.getChildAt(i)).text = "";
        }
        else if(obj.getChildAt(i) is Canvas){
          limparTela(Canvas(obj.getChildAt(i)));
        }
      }
    }

  }
}

Trata se de um método recursivo, ou seja ele chama ele mesmo no caso de componentes que possam ter outros componentes, este é o caso do ‘”Canvas” que serve como um container para se adicionar outros componentes. Na verdade o Canvas pode ser usado como uma tela, onde são colocados todos os componentes visuais que se deseja limpar e logo em seguida chama a função para limpar. Segue um exemplo de como se utilizar esta classe:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
   layout="absolute">
<mx:Script>
  <![CDATA[
    private function btnLimparTela_click():void{
      LimpaTela.limparTela(cnv);
    }
  ]]>
</mx:Script>

  <mx:Button id="btnLimpaTela" x="119" y="218" label="Limpar Tela"
    click="btnLimparTela_click();"/>
  <mx:Canvas id="cnv" x="10" y="10" width="200" height="200">
    <mx:TextInput x="20" y="10"/>
    <mx:ComboBox x="20" y="40">
    <mx:Array>
      <mx:String>Franca</mx:String>
      <mx:String>São Paulo</mx:String>
    </mx:Array>
    </mx:ComboBox>
  </mx:Canvas>
</mx:Application>

 
Até a proxima!

Leave a Reply