hackedteam/rcs-console

View on GitHub
src/it/ht/rcs/console/operations/view/evidences/filters/TextFilterPopup.mxml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="utf-8"?>
<filters:AbstractFilterPopup xmlns:fx="http://ns.adobe.com/mxml/2009"
                             xmlns:s="library://ns.adobe.com/flex/spark"
                             xmlns:mx="library://ns.adobe.com/flex/mx"
                             xmlns:xt="library://ns.tink.ws/flex/mx"
                             xmlns:filters="it.ht.rcs.console.operations.view.evidences.filters.*" show="show()">

  <s:TextInput id="input" width="250" styleName="auditFilter" enter="commit()" skinClass="it.ht.rcs.console.main.skins.RCSSearchFieldSkin"/>
  
  <fx:Script>
    <![CDATA[
      import it.ht.rcs.console.events.FilterEvent;
      
      import mx.core.FlexGlobals;
      import mx.utils.StringUtil;
      
      override public function commit(fireEvent:Boolean=true, setProperty:Boolean=true):void
      {
        input.text = StringUtil.trim(input.text);
        hasFilter = input.text != '';
        
        hasFilter ? filter[property] = input.text.split("|") : delete(filter[property]) ;
        if(hasFilter && property=="_id")
          filter[property]=[input.text]//id as Array
        visible = false;
        if (fireEvent)
          FlexGlobals.topLevelApplication.dispatchEvent(new FilterEvent(FilterEvent.FILTER_CHANGED));
      }
        
      override public function reset(fireEvent:Boolean=true):void
      {
        input.text = '';
        commit(fireEvent);
      }
      
      private function show():void
      {
        input.setFocus();
        input.text = filter[property]
        if(filter[property] is Array)
        {
          var s:String="";
          for(var i:int=0;i<filter[property].length;i++)
          {
            s+=filter[property][i];
            if(i<filter[property].length-1)
              s+="|";
          }
          input.text =s;
        }  
      }
      
      override public function rebuild(e:Event=null):void
      {
        hasFilter = filter[property] && filter[property] !="";
      }
      
    ]]>
  </fx:Script>
  
</filters:AbstractFilterPopup>