hackedteam/rcs-console

View on GitHub
src/it/ht/rcs/console/utils/TitleWindowSaveCancel.as

Summary

Maintainability
Test Coverage
package it.ht.rcs.console.utils
{
  import flash.events.Event;
  import flash.events.MouseEvent;
  
  import it.ht.rcs.console.events.SaveEvent;
  import it.ht.rcs.console.events.SessionEvent;
  
  import mx.core.FlexGlobals;
  import mx.managers.PopUpManager;
  
  import spark.components.Button;
  import spark.components.TitleWindow;
  
  [Event(name='save', type='it.ht.rcs.console.events.SaveEvent')]
  
  public class TitleWindowSaveCancel extends TitleWindow
  {
    
    [Bindable]
    [SkinPart(required='false')]
    public var saveButton:Button;
    
    [Bindable]
    [SkinPart(required='false')]
    public var cancelButton:Button;
    
    public var showSaveButton:Boolean = true;
    public var showCancelButton:Boolean = true;
    
    public function TitleWindowSaveCancel()
    {
      super();
      // add listener for logout event and close window
      FlexGlobals.topLevelApplication.addEventListener(SessionEvent.LOGOUT, close, false, 0, true);
    }
    
    override protected function partAdded(partName:String, instance:Object):void
    {
      super.partAdded(partName, instance);
      
      if (instance == saveButton)
      {
        saveButton.addEventListener(MouseEvent.CLICK, save);
        saveButton.visible = saveButton.includeInLayout = showSaveButton;
      } 
      else if (instance == cancelButton)
      {
        instance.addEventListener(MouseEvent.CLICK, close);
        cancelButton.visible = cancelButton.includeInLayout = showCancelButton;
      }
      else if (instance == closeButton)
      {
        instance.addEventListener(MouseEvent.CLICK, close);
      }
    }
    
    private function save(event:Event=null):void
    {
      dispatchEvent(new SaveEvent(SaveEvent.SAVE));
    }
    
    protected function close(event:Event=null):void
    {
      dispatchEvent(new Event("close"))
      PopUpManager.removePopUp(this);
    }
    
  }
  
}