<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create your ApplicationFacade extending Facade" enabled="true" name="pmvcApplicationFacade">package ${enclosing_package}
{
	import org.puremvc.as3.multicore.patterns.facade.Facade;
	import org.puremvc.as3.multicore.patterns.observer.Notification;
	
	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} extends Facade
	{
		
		public static const NAME : String = "${enclosing_type}";
		
		public static const STARTUP : String = "STARTUP";
		public static const STARTUP_COMPLETE : String = "STARTUP_COMPLETE";
		
		public function ${enclosing_type}( key : String )
		{
			super(key);
		}
		
		public static function getInstance( key : String ) : ${enclosing_type} 
		{
			if ( instanceMap[ key ] == null ) instanceMap[ key ] = new ${enclosing_type}(key);
			return instanceMap[ key ] as ${enclosing_type};
		}
						
		public function startup(app: Object) : void
		{
			notifyObservers(new Notification(STARTUP, app));
		}
		
		override protected function initializeController() : void
		{
			super.initializeController();
			//registerCommand( STARTUP, StartupCommand);
			//registerCommand( STARTUP_COMPLETE, StartupCompleteCommand);
		}
	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a constant for an enum" enabled="true" name="pmvcEnumConst">public static const ${constantName}:${enclosing_type} = new ${enclosing_type}("${value}", ${ordinal});
${cursor}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create an Enum" enabled="true" name="pmvcEnum">package ${enclosing_package} 
{

	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} 
	{
		${cursor}

		public var value: String;
		public var ordinal: int;
		
		public function ${enclosing_type}(value : String, ordinal : int)
		{
			this.value = value;
			this.ordinal = ordinal;
		}
	
		public static function get list() : Array
		{
			return 
			[
          
			];
		}
		
		public function equals(enum: ${enclosing_type}): Boolean
		{
			return (this.ordinal == enum.ordinal &amp;&amp; this.value == enum.value );
		}
	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a class extending Macro Command" enabled="true" name="pmvcMacroCommand">package ${enclosing_package} 
{
	import org.puremvc.as3.multicore.patterns.command.MacroCommand;
	
	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} extends MacroCommand
	{
		override protected  function initializeMacroCommand() : void
		{
			addSubCommand(${cursor});
			addSubCommand();
		}
	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a class extending Mediator" enabled="true" name="pmvcMediator">package ${enclosing_package} 
{
	import org.puremvc.as3.multicore.patterns.mediator.Mediator;
	import org.puremvc.as3.multicore.interfaces.INotification;
	
	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} extends Mediator
	{
		public static const NAME : String = "${enclosing_type}";
	
		public function ${enclosing_type}(viewComponent : Object = null)
		{
			super(${enclosing_type}.NAME, viewComponent);
		}
	
		override public function listNotificationInterests() : Array
		{
			return
			[
				
			];
		}
		
		override public function handleNotification(note : INotification) : void
		{
			switch( note.getName() )
			{
				default :
					break;
			}
		}
		
		override public function onRegister() : void
		{
			${cursor}
		}
		
		override public function onRemove() : void
		{
			
		}
		
		protected function get view() : Object
		{
			return viewComponent as Object;
		}
	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a class extending AbstractMediator" enabled="true" name="pmvcAbstractMediator">package ${enclosing_package} 
{
	import de.sonntagsfarben.puremvc.as3.mediator.AbstractMediator;
	import org.puremvc.as3.multicore.interfaces.INotification;
	
	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} extends AbstractMediator
	{
		public static const NAME : String = "${enclosing_type}";
	
		public function ${enclosing_type}(viewComponent : Object = null)
		{
			super(${enclosing_type}.NAME, viewComponent);
		}
				
		
		override public function onRegister() : void
		{
			${cursor}
		}
		
		override public function onRemove() : void
		{
			
		}

		protected function get view() : Object
		{
			return viewComponent as Object;
		}
	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="A constant for a notification" enabled="true" name="pmvcNotificationConstant">public static const ${notificationName}: String = "${notificationNameString}";
${cursor}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a class extending Notification" enabled="true" name="pNotification">package ${enclosing_package} 
{
	import org.puremvc.as3.multicore.patterns.observer.Notification;
	
	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} extends Notification
	{
		public function ${enclosing_type}(name : String, body : Object = null, type : String = null)
		{
			super(name, body, type);
		}
		
		${cursor}
	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a class extending Proxy" enabled="true" name="pmvcProxy">package ${enclosing_package} 
{
	import org.puremvc.as3.multicore.patterns.proxy.Proxy;
	
	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} extends Proxy
	{
		public static const NAME: String = "${enclosing_type}";
	
		public function ${enclosing_type}(data : Object = null)
		{
			super(${enclosing_type}.NAME, data);
		}
		
		override public function onRegister() : void
		{
			${cursor}
		}
		
		override public function onRemove() :void
		{
		
		}
	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a class extending SimpleCommand" enabled="true" name="pmvcSimpleCommand">package ${enclosing_package} 
{
	import org.puremvc.as3.multicore.interfaces.INotification;
	import org.puremvc.as3.multicore.patterns.command.SimpleCommand;
	
	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} extends SimpleCommand
	{
		override public function execute(note: INotification) : void
		{
			 ${cursor}
		}
	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a class extending Simple Asynch Command" enabled="true" name="pmvcSimpleAsyncCommand">package ${enclosing_package} 
{
	import org.puremvc.as3.multicore.interfaces.INotification;
	import org.puremvc.as3.multicore.patterns.command.AsyncCommand;
	
	/**
	 * Short description for file.
	 *
	 * @package    ${enclosing_package}
	 * @author     ${user} / ${year}
	 * @version    SVN: $$Id$$
	*/
	public class ${enclosing_type} extends AsyncCommand
	{
		override public function execute(note: INotification) : void
		{
			setOnComplete(onComplete);
			
			 ${cursor}
			 
			 // Example: contentProxy.loadAssets(commandComplete);
		}
		
		private function onComplete() : void 
		{
			// Example: facade.registerMediator(new ApplicationMediator(app));
			sendNotification(ApplicationFacade.STARTUP_COMPLETE);
		}
	}
}</template></templates>