<?xml version="1.0" encoding="UTF-8"?><templates><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create your ApplicationFacade extending Facade" enabled="true" name="pmvcApplicationFacade">class ${enclosing_package}{

	import org.puremvc.as3.patterns.facade.Facade;
	import org.puremvc.as3.patterns.observer.Notification;
	
	/**
	 * @author ${user}
	 */
	public class ${enclosing_type} extends Facade{
	
		public static const APP_STARTUP_BEGIN:String = "appStartupBegin";
	
		public function ${enclosing_type}(){
			super();
			${cursor}
		}
	
		public static function getInstance() : ${enclosing_type} {
			if ( instance == null ) instance = new ${enclosing_type}( );
			return instance as ${enclosing_type};
		}
		
		public function startup(app: Object): void{
			notifyObservers(new Notification( APP_STARTUP_BEGIN, app));
		}
		
		override protected function initializeController():void{
			super.initializeController();
			//registerCommand( FUBAR, FubarCommand);
		}

	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="Create a constant for an enum" enabled="true" name="pmvcEConst">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} {

	/**
	 * @author ${user}
	 */
	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.patterns.command.MacroCommand;
	
	/**
	 * @author ${user}
	 */
	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.patterns.mediator.Mediator;
	import org.puremvc.as3.interfaces.INotification;
	
	/**
	 * @author ${user}
	 */
	public class ${enclosing_type} extends Mediator{
	
		public static const NAME: String = "${mediatorName}";
	
		public function ${enclosing_type}(mediatorName:String, viewComponent:Object = null){
			super(mediatorName, viewComponent);
		}
	
		override public function listNotificationInterests(): Array{
			return[
							${cursor}
						];
		}
		
		override public function handleNotification(note: INotification): void{
			switch( note.getName()){
				default :
					break;
			}
		}
		
		override public function onRegister(): void{
		
		}
		
		override public function onRemove(): void{
		
		}

		protected function get  ${viewComponentName}(): ${viewComponentType}{
			return viewComponent as ${viewComponentType};
		}

	}
}</template><template autoinsert="true" context="com.powerflasher.fdt.ui.editor.template.as3" deleted="false" description="A constant for a notification" enabled="true" name="pmvcNConstant">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="pmvcNotification">package ${enclosing_package} {

	import org.puremvc.as3.patterns.observer.Notification;
	
	/**
	 * @author ${user}
	 */
	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.patterns.proxy.Proxy;
	
	/**
	 * @author ${user}
	 */
	public class ${enclosing_type} extends Proxy{
	
		public static const NAME: String = "${proxyName}";
	
		public function ${enclosing_type}(proxyName:String, data:Object = null){
			super(proxyName, data);
			${cursor}
		}
		
		protected function get  ${dataName}(): ${dataType}{
			return data as ${dataType};
		}
		
		override public function onRegister(): void{
		
		}
		
		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.interfaces.INotification;
	import org.puremvc.as3.patterns.command.SimpleCommand;
	
	/**
	 * @author ${user}
	 */
	public class ${enclosing_type} extends SimpleCommand{
	
		override public function execute(note: INotification): void{
			 ${cursor}
		}

	}
	
}</template></templates>