flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cd...@apache.org
Subject [05/10] Added the compilable version of all test projects that fail with falcon and did not fail with the default compiler.
Date Wed, 22 Oct 2014 14:49:33 GMT
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/ColorChooser.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/ColorChooser.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/ColorChooser.as
new file mode 100644
index 0000000..3fdf508
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/ColorChooser.as
@@ -0,0 +1,337 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.Bitmap;
+	import flash.display.BitmapData;
+	import flash.display.BlendMode;
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+	import flash.display.GradientType;
+	import flash.display.Graphics;
+	import flash.display.InterpolationMethod;
+	import flash.display.SpreadMethod;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.events.MouseEvent;
+	import flash.geom.Matrix;
+	
+	public class ColorChooser extends Component
+	{
+		private var _input:InputText;
+		private var _swatch:Sprite;
+		private var _value:uint = 0xff0000;
+
+		public static const TOP:String = "top";
+		public static const BOTTOM:String = "bottom";
+		
+		private var _usePopup:Boolean = false;
+		private var _model:DisplayObject;
+		private var _defaultModelColors:Array=[0xFF0000, 0xFFFF00, 0x00FF00, 0x00FFFF, 0x0000FF, 0xFF00FF, 0xFF0000,0xFFFFFF,0x000000];
+		private var _colors:BitmapData;
+		private var _colorsContainer:Sprite;
+		private var _popupAlign:String = BOTTOM;
+		private var _tmpColorChoice:uint = _value;
+		private var _oldColorChoice:uint = _value;
+		
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this ColorChooser.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param value The initial color value of this component.
+		 * @param defaultHandler The event handling function to handle the default event for this component (change in this case).
+		 */
+		
+		public function ColorChooser(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, value:uint = 0xff0000, defaultHandler:Function = null)
+		{
+			_value = value;		
+			_oldColorChoice = _tmpColorChoice = _value;
+			
+			super(parent, xpos, ypos);
+			
+			if(defaultHandler != null)
+			{
+				addEventListener(Event.CHANGE, defaultHandler);
+			}
+				
+		}		
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			
+			super.init();
+
+			_width = 65;
+			_height = 15;
+			value = _value;
+		}
+		
+		override protected function addChildren():void
+		{
+			_input = new InputText();
+			_input.width = 45;
+			_input.restrict = "0123456789ABCDEFabcdef";
+			_input.maxChars = 6;
+			addChild(_input);
+			_input.addEventListener(Event.CHANGE, onChange);
+			
+			_swatch = new Sprite();
+			_swatch.x = 50;
+			_swatch.filters = [getShadow(2, true)];
+			addChild(_swatch);
+			
+			_colorsContainer = new Sprite();
+			_colorsContainer.addEventListener(Event.ADDED_TO_STAGE, onColorsAddedToStage);
+			_colorsContainer.addEventListener(Event.REMOVED_FROM_STAGE, onColorsRemovedFromStage);
+			_model = getDefaultModel();
+			drawColors(_model);
+		}
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			_swatch.graphics.clear();
+			_swatch.graphics.beginFill(_value);
+			_swatch.graphics.drawRect(0, 0, 16, 16);
+			_swatch.graphics.endFill();
+		}
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		/**
+		 * Internal change handler.
+		 * @param event The Event passed by the system.
+		 */
+		protected function onChange(event:Event):void
+		{
+			event.stopImmediatePropagation();
+			_value = parseInt("0x" + _input.text, 16);
+			_input.text = _input.text.toUpperCase();
+			_oldColorChoice = value;
+			invalidate();
+			dispatchEvent(new Event(Event.CHANGE));
+			
+		}	
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Gets / sets the color value of this ColorChooser.
+		 */
+		public function set value(n:uint):void
+		{
+			var str:String = n.toString(16).toUpperCase();
+			while(str.length < 6)
+			{
+				str = "0" + str;
+			}
+			_input.text = str;
+			_value = parseInt("0x" + _input.text, 16);
+			invalidate();
+		}
+		public function get value():uint
+		{
+			return _value;
+		}
+		
+		///////////////////////////////////
+		// COLOR PICKER MODE SUPPORT
+		///////////////////////////////////}
+		
+		
+		public function get model():DisplayObject { return _model; }
+		public function set model(value:DisplayObject):void 
+		{
+			_model = value;
+			if (_model!=null) {
+				drawColors(_model);
+				if (!usePopup) usePopup = true;
+			} else {
+				_model = getDefaultModel();
+				drawColors(_model);
+				usePopup = false;
+			}
+		}
+		
+		private function drawColors(d:DisplayObject):void{
+			_colors = new BitmapData(d.width, d.height);
+			_colors.draw(d);
+			while (_colorsContainer.numChildren) _colorsContainer.removeChildAt(0);
+			_colorsContainer.addChild(new Bitmap(_colors));
+			placeColors();
+		}
+		
+		public function get popupAlign():String { return _popupAlign; }
+		public function set popupAlign(value:String):void {
+			_popupAlign = value;
+			placeColors();
+		}
+		
+		public function get usePopup():Boolean { return _usePopup; }
+		public function set usePopup(value:Boolean):void {
+			_usePopup = value;
+			
+			_swatch.buttonMode = true;
+			_colorsContainer.buttonMode = true;
+			_colorsContainer.addEventListener(MouseEvent.MOUSE_MOVE, browseColorChoice);
+			_colorsContainer.addEventListener(MouseEvent.MOUSE_OUT, backToColorChoice);
+			_colorsContainer.addEventListener(MouseEvent.CLICK, setColorChoice);
+			_swatch.addEventListener(MouseEvent.CLICK, onSwatchClick);
+			
+			if (!_usePopup) {
+				_swatch.buttonMode = false;
+				_colorsContainer.buttonMode = false;
+				_colorsContainer.removeEventListener(MouseEvent.MOUSE_MOVE, browseColorChoice);
+				_colorsContainer.removeEventListener(MouseEvent.MOUSE_OUT, backToColorChoice);
+				_colorsContainer.removeEventListener(MouseEvent.CLICK, setColorChoice);
+				_swatch.removeEventListener(MouseEvent.CLICK, onSwatchClick);
+			}
+		}
+		
+		/**
+		 * The color picker mode Handlers 
+		 */
+		
+		private function onColorsRemovedFromStage(e:Event):void {
+			stage.removeEventListener(MouseEvent.CLICK, onStageClick);
+		}
+		
+		private function onColorsAddedToStage(e:Event):void {
+			stage.addEventListener(MouseEvent.CLICK, onStageClick);
+		}
+		
+		private function onStageClick(e:MouseEvent):void {
+			displayColors();
+		}
+		 
+		
+		private function onSwatchClick(event:MouseEvent):void 
+		{
+			event.stopImmediatePropagation();
+			displayColors();
+		}
+		
+		private function backToColorChoice(e:MouseEvent):void 
+		{
+			value = _oldColorChoice;
+		}
+		
+		private function setColorChoice(e:MouseEvent):void {
+			value = _colors.getPixel(_colorsContainer.mouseX, _colorsContainer.mouseY);
+			_oldColorChoice = value;
+			dispatchEvent(new Event(Event.CHANGE));
+			displayColors();
+		}
+		
+		private function browseColorChoice(e:MouseEvent):void 
+		{
+			_tmpColorChoice = _colors.getPixel(_colorsContainer.mouseX, _colorsContainer.mouseY);
+			value = _tmpColorChoice;
+		}
+
+		/**
+		 * The color picker mode Display functions
+		 */
+		
+		private function displayColors():void 
+		{
+			if (_colorsContainer.parent) _colorsContainer.parent.removeChild(_colorsContainer);
+			else stage.addChild(_colorsContainer);
+		}		
+		
+		private function placeColors():void{
+			switch (_popupAlign) 
+			{
+				case TOP : 
+					_colorsContainer.x = x;
+					_colorsContainer.y = y-_colorsContainer.height - 4;
+				break;
+				case BOTTOM : 
+					_colorsContainer.x =x;
+					_colorsContainer.y = y+22;
+				break;
+				default: 
+					_colorsContainer.x = x;
+					_colorsContainer.y = y+22;
+				break;
+			}
+		}
+		
+		/**
+		 * Create the default gradient Model
+		 */
+
+		private function getDefaultModel():Sprite {	
+			var w:Number = 100;
+			var h:Number = 100;
+			var bmd:BitmapData = new BitmapData(w, h);
+			
+			var g1:Sprite = getGradientSprite(w, h, _defaultModelColors);
+			bmd.draw(g1);
+					
+			var blendmodes:Array = [BlendMode.MULTIPLY,BlendMode.ADD];
+			var nb:int = blendmodes.length;
+			var g2:Sprite = getGradientSprite(h/nb, w, [0xFFFFFF, 0x000000]);		
+			
+			for (var i:int = 0; i < nb; i++) {
+				var blendmode:String = blendmodes[i];
+				var m:Matrix = new Matrix();
+				m.rotate(-Math.PI / 2);
+				m.translate(0, h / nb * i + h/nb);
+				bmd.draw(g2, m, null,blendmode);
+			}
+			
+			var s:Sprite = new Sprite();
+			var bm:Bitmap = new Bitmap(bmd);
+			s.addChild(bm);
+			return(s);
+		}
+		
+		private function getGradientSprite(w:Number, h:Number, ca:Array):Sprite 
+		{
+			var gc:Array = ca;
+			var gs:Sprite = new Sprite();
+			var g:Graphics = gs.graphics;
+			var gn:int = gc.length;
+			var ga:Array = [];
+			var gr:Array = [];
+			var gm:Matrix = new Matrix(); gm.createGradientBox(w, h, 0, 0, 0);
+			for (var i:int = 0; i < gn; i++) { ga.push(1); gr.push(0x00 + 0xFF / (gn - 1) * i); }
+			g.beginGradientFill(GradientType.LINEAR, gc, ga, gr, gm, SpreadMethod.PAD,InterpolationMethod.RGB);
+			g.drawRect(0, 0, w, h);
+			g.endFill();	
+			return(gs);
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Component.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Component.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Component.as
new file mode 100644
index 0000000..070b863
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Component.as
@@ -0,0 +1,204 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	import flash.display.Stage;
+	import flash.display.StageAlign;
+	import flash.display.StageScaleMode;
+	import flash.events.Event;
+	import flash.filters.DropShadowFilter;
+
+	public class Component extends Sprite
+	{
+		[Embed(source="/assets/pf_ronda_seven.ttf", fontName="PF Ronda Seven", mimeType="application/x-font")]
+		private var Ronda:Class;
+		
+		protected var _width:Number = 0;
+		protected var _height:Number = 0;
+		
+		public static const DRAW:String = "draw";
+
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this component.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 */
+		public function Component(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0)
+		{
+			move(xpos, ypos);
+			if(parent != null)
+			{
+				parent.addChild(this);
+			}
+			init();
+		}
+		
+		/**
+		 * Initilizes the component.
+		 */
+		protected function init():void
+		{
+			addChildren();
+			invalidate();
+		}
+		
+		/**
+		 * Overriden in subclasses to create child display objects.
+		 */
+		protected function addChildren():void
+		{
+			
+		}
+		
+		/**
+		 * DropShadowFilter factory method, used in many of the components.
+		 * @param dist The distance of the shadow.
+		 * @param knockout Whether or not to create a knocked out shadow.
+		 */
+		protected function getShadow(dist:Number, knockout:Boolean = false):DropShadowFilter
+		{
+			return new DropShadowFilter(dist, 45, Style.DROPSHADOW, 1, dist, dist, .3, 1, knockout);
+		}
+		
+		/**
+		 * Marks the component to be redrawn on the next frame.
+		 */
+		protected function invalidate():void
+		{
+//			draw();
+			addEventListener(Event.ENTER_FRAME, onInvalidate);
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Utility method to set up usual stage align and scaling.
+		 */
+		public static function initStage(stage:Stage):void
+		{
+			stage.align = StageAlign.TOP_LEFT;
+			stage.scaleMode = StageScaleMode.NO_SCALE;
+		}
+		
+		/**
+		 * Moves the component to the specified position.
+		 * @param xpos the x position to move the component
+		 * @param ypos the y position to move the component
+		 */
+		public function move(xpos:Number, ypos:Number):void
+		{
+			x = Math.round(xpos);
+			y = Math.round(ypos);
+		}
+		
+		/**
+		 * Sets the size of the component.
+		 * @param w The width of the component.
+		 * @param h The height of the component.
+		 */
+		public function setSize(w:Number, h:Number):void
+		{
+			_width = w;
+			_height = h;
+			invalidate();
+		}
+		
+		/**
+		 * Abstract draw function.
+		 */
+		public function draw():void
+		{
+			dispatchEvent(new Event(Component.DRAW));
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		/**
+		 * Called one frame after invalidate is called.
+		 */
+		protected function onInvalidate(event:Event):void
+		{
+			removeEventListener(Event.ENTER_FRAME, onInvalidate);
+			draw();
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Sets/gets the width of the component.
+		 */
+		override public function set width(w:Number):void
+		{
+			_width = w;
+			invalidate();
+			dispatchEvent(new Event(Event.RESIZE));
+		}
+		override public function get width():Number
+		{
+			return _width;
+		}
+		
+		/**
+		 * Sets/gets the height of the component.
+		 */
+		override public function set height(h:Number):void
+		{
+			_height = h;
+			invalidate();
+			dispatchEvent(new Event(Event.RESIZE));
+		}
+		override public function get height():Number
+		{
+			return _height;
+		}
+		
+		/**
+		 * Overrides the setter for x to always place the component on a whole pixel.
+		 */
+		override public function set x(value:Number):void
+		{
+			super.x = Math.round(value);
+		}
+		
+		/**
+		 * Overrides the setter for y to always place the component on a whole pixel.
+		 */
+		override public function set y(value:Number):void
+		{
+			super.y = Math.round(value);
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HBox.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HBox.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HBox.as
new file mode 100644
index 0000000..7cd3199
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HBox.as
@@ -0,0 +1,85 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ 
+package com.bit101.components
+{
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+	import flash.events.Event;
+
+	public class HBox extends Component
+	{
+		private var _spacing:Number = 5;
+		
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this PushButton.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 */
+		public function HBox(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0)
+		{
+			super(parent, xpos, ypos);
+		}
+		
+		/**
+		 * Override of addChild to force layout;
+		 */
+		override public function addChild(child:DisplayObject) : DisplayObject
+		{
+			super.addChild(child);
+			child.addEventListener(Event.RESIZE, onResize);
+			invalidate();
+			return child;
+		}
+		
+		protected function onResize(event:Event):void
+		{
+			invalidate();
+		}
+		
+		/**
+		 * Draws the visual ui of the component, in this case, laying out the sub components.
+		 */
+		override public function draw() : void
+		{
+			var xpos:Number = 0;
+			for(var i:int = 0; i < numChildren; i++)
+			{
+				var child:DisplayObject = getChildAt(i);
+				child.x = xpos;
+				xpos += child.width;
+				xpos += _spacing;
+			}
+		}
+		
+		/**
+		 * Gets / sets the spacing between each sub component.
+		 */
+		public function set spacing(s:Number):void
+		{
+			_spacing = s;
+			invalidate();
+		}
+		public function get spacing():Number
+		{
+			return _spacing;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HSlider.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HSlider.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HSlider.as
new file mode 100644
index 0000000..cf93355
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HSlider.as
@@ -0,0 +1,37 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+
+	public class HSlider extends Slider
+	{
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this HSlider.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param defaultHandler The event handling function to handle the default event for this component.
+		 */
+		public function HSlider(parent:DisplayObjectContainer=null, xpos:Number=0, ypos:Number=0, defaultHandler:Function = null)
+		{
+			super(Slider.HORIZONTAL, parent, xpos, ypos, defaultHandler);
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HUISlider.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HUISlider.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HUISlider.as
new file mode 100644
index 0000000..0925639
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/HUISlider.as
@@ -0,0 +1,86 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.events.Event;
+
+	public class HUISlider extends UISlider
+	{
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this HUISlider.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param label The string to use as the label for this component.
+		 * @param defaultHandler The event handling function to handle the default event for this component.
+		 */
+		public function HUISlider(parent:DisplayObjectContainer = null, x:Number = 0, y:Number = 0, label:String = "", defaultEventHandler:Function = null)
+		{
+			_sliderClass = HSlider;
+			super(parent, x, y, label, defaultEventHandler);
+		}
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			setSize(200, 18);
+		}
+		
+		/**
+		 * Centers the label when label text is changed.
+		 */
+		override protected function positionLabel():void
+		{
+			_valueLabel.x = _slider.x + _slider.width + 5;
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of this component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			_slider.x = _label.width + 5;
+			_slider.y = height / 2 - _slider.height / 2;
+			_slider.width = width - _label.width - 50 - 10;
+			
+			_valueLabel.x = _slider.x + _slider.width + 5;
+		}
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/IndicatorLight.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/IndicatorLight.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/IndicatorLight.as
new file mode 100644
index 0000000..5d32574
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/IndicatorLight.as
@@ -0,0 +1,208 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.GradientType;
+	import flash.display.Shape;
+	import flash.events.TimerEvent;
+	import flash.geom.Matrix;
+	import flash.utils.Timer;
+	
+	public class IndicatorLight extends Component
+	{
+		private var _color:uint;
+		private var _lit:Boolean = false;
+		private var _label:Label;
+		private var _labelText:String = "";
+		private var _lite:Shape;
+		private var _timer:Timer;
+		
+		
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this CheckBox.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param color The color of this light.
+		 * @param label String containing the label for this component.
+		 */
+		public function IndicatorLight(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, color:uint = 0xff0000, label:String = "")
+		{
+			_color = color;
+			_labelText = label;
+			super(parent, xpos, ypos);
+		}
+
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			_timer = new Timer(500);
+			_timer.addEventListener(TimerEvent.TIMER, onTimer);
+		}
+		
+		/**
+		 * Creates the children for this component
+		 */
+		override protected function addChildren():void
+		{
+			_lite = new Shape();
+			addChild(_lite);
+			
+			_label = new Label(this, 0, 0, _labelText);
+			draw();
+		}
+		
+		/**
+		 * Draw the light.
+		 */
+		protected function drawLite():void
+		{
+			var colors:Array;
+			if(_lit)
+			{
+				colors = [0xffffff, _color];
+			}
+			else
+			{
+				colors = [0xffffff, 0];
+			}
+			
+			_lite.graphics.clear();
+			var matrix:Matrix = new Matrix();
+			matrix.createGradientBox(10, 10, 0, -2.5, -2.5);
+			_lite.graphics.beginGradientFill(GradientType.RADIAL, colors, [1, 1], [0, 255], matrix);
+			_lite.graphics.drawCircle(5, 5, 5);
+			_lite.graphics.endFill();
+		}
+		
+		
+		
+		///////////////////////////////////
+		// event handler
+		///////////////////////////////////
+		
+		/**
+		 * Internal timer handler.
+		 * @param event The TimerEvent passed by the system.
+		 */
+		protected function onTimer(event:TimerEvent):void
+		{
+			_lit = !_lit;
+			draw();
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			drawLite();
+			
+			_label.text = _labelText;
+			_label.x = 12;
+			_label.y = (10 - _label.height) / 2;
+			_width = _label.width + 12;
+			_height = 10;
+		}
+		
+		/**
+		 * Causes the light to flash on and off at the specified interval (milliseconds). A value less than 1 stops the flashing.
+		 */
+		public function flash(interval:int = 500):void
+		{
+			if(interval < 1)
+			{
+				_timer.stop();
+				isLit = false;
+				return;
+			}
+			_timer.delay = interval;
+			_timer.start();
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Sets or gets whether or not the light is lit.
+		 */
+		public function set isLit(value:Boolean):void
+		{
+			_timer.stop();
+			_lit = value;
+			drawLite();
+		}
+		public function get isLit():Boolean
+		{
+			return _lit;
+		}
+		
+		/**
+		 * Sets / gets the color of this light (when lit).
+		 */
+		public function set color(value:uint):void
+		{
+			_color = value;
+			draw();
+		}
+		public function get color():uint
+		{
+			return _color;
+		}
+		
+		/**
+		 * Returns whether or not the light is currently flashing.
+		 */
+		public function get isFlashing():Boolean
+		{
+			return _timer.running;
+		}
+		
+		/**
+		 * Sets / gets the label text shown on this component.
+		 */
+		public function set label(str:String):void
+		{
+			_labelText = str;
+			draw();
+		}
+		public function get label():String
+		{
+			return _labelText;
+		}
+		
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/InputText.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/InputText.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/InputText.as
new file mode 100644
index 0000000..c6751f0
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/InputText.as
@@ -0,0 +1,189 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.text.TextField;
+	import flash.text.TextFieldType;
+	import flash.text.TextFormat;
+	
+	public class InputText extends Component
+	{
+		private var _back:Sprite;
+		private var _password:Boolean = false;
+		private var _text:String = "";
+		private var _tf:TextField;
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this InputText.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param text The string containing the initial text of this component.
+		 * @param defaultHandler The event handling function to handle the default event for this component (change in this case).
+		 */
+		public function InputText(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, text:String = "", defaultHandler:Function = null)
+		{
+			_text = text;
+			super(parent, xpos, ypos);
+			if(defaultHandler != null)
+			{
+				addEventListener(Event.CHANGE, defaultHandler);
+			}
+		}
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			setSize(100, 16);
+		}
+		
+		/**
+		 * Creates and adds child display objects.
+		 */
+		override protected function addChildren():void
+		{
+			_back = new Sprite();
+			_back.filters = [getShadow(2, true)];
+			addChild(_back);
+			
+			_tf = new TextField();
+			_tf.embedFonts = true;
+			_tf.selectable = true;
+			_tf.type = TextFieldType.INPUT;
+			_tf.defaultTextFormat = new TextFormat("PF Ronda Seven", 8, Style.INPUT_TEXT);
+			addChild(_tf);
+			_tf.addEventListener(Event.CHANGE, onChange);
+			
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			_back.graphics.clear();
+			_back.graphics.beginFill(Style.BACKGROUND);
+			_back.graphics.drawRect(0, 0, _width, _height);
+			_back.graphics.endFill();
+			
+			_tf.displayAsPassword = _password;
+			
+			_tf.text = _text;
+			_tf.width = _width - 4;
+			if(_tf.text == "")
+			{
+				_tf.text = "X";
+				_tf.height = Math.min(_tf.textHeight + 4, _height);
+				_tf.text = "";
+			}
+			else
+			{
+				_tf.height = Math.min(_tf.textHeight + 4, _height);
+			}
+			_tf.x = 2;
+			_tf.y = Math.round(_height / 2 - _tf.height / 2);
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		/**
+		 * Internal change handler.
+		 * @param event The Event passed by the system.
+		 */
+		protected function onChange(event:Event):void
+		{
+			_text = _tf.text;
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Gets / sets the text shown in this InputText.
+		 */
+		public function set text(t:String):void
+		{
+			_text = t;
+			invalidate();
+		}
+		public function get text():String
+		{
+			return _text;
+		}
+		
+		/**
+		 * Gets / sets the list of characters that are allowed in this TextInput.
+		 */
+		public function set restrict(str:String):void
+		{
+			_tf.restrict = str;
+		}
+		public function get restrict():String
+		{
+			return _tf.restrict;
+		}
+		
+		/**
+		 * Gets / sets the maximum number of characters that can be shown in this InputText.
+		 */
+		public function set maxChars(max:int):void
+		{
+			_tf.maxChars = max;
+		}
+		public function get maxChars():int
+		{
+			return _tf.maxChars;
+		}
+		
+		/**
+		 * Gets / sets whether or not this input text will show up as password (asterisks).
+		 */
+		public function set password(b:Boolean):void
+		{
+			_password = b;
+			invalidate();
+		}
+		public function get password():Boolean
+		{
+			return _password;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Knob.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Knob.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Knob.as
new file mode 100644
index 0000000..78f5d92
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Knob.as
@@ -0,0 +1,332 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.events.MouseEvent;
+	
+	public class Knob extends Component
+	{
+		private var _knob:Sprite;
+		private var _label:Label;
+		private var _labelText:String = "";
+		private var _max:Number = 100;
+		private var _min:Number = 0;
+		private var _mouseRange:Number = 100;
+		private var _precision:int = 1;
+		private var _radius:Number = 20;
+		private var _startY:Number;
+		private var _value:Number = 0;
+		private var _valueLabel:Label;
+		
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this Knob.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param label String containing the label for this component.
+		 * @param defaultHandler The event handling function to handle the default event for this component (change in this case).
+		 */
+		public function Knob(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, label:String = "", defaultHandler:Function = null)
+		{
+			_labelText = label;
+			super(parent, xpos, ypos);
+			if(defaultHandler != null)
+			{
+				addEventListener(Event.CHANGE, defaultHandler);
+			}
+		}
+
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+		}
+		
+		/**
+		 * Creates the children for this component
+		 */
+		override protected function addChildren():void
+		{
+			_knob = new Sprite();
+			_knob.buttonMode = true;
+			_knob.useHandCursor = true;
+			_knob.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
+			addChild(_knob);
+			
+			_label = new Label();
+			_label.autoSize = true;
+			addChild(_label);
+			
+			_valueLabel = new Label();
+			_valueLabel.autoSize = true;
+			addChild(_valueLabel);
+		}
+		
+		/**
+		 * Draw the knob at the specified radius.
+		 * @param radius The radius with which said knob will be drawn.
+		 */
+		protected function drawKnob():void
+		{
+			_knob.graphics.clear();
+			_knob.graphics.beginFill(Style.BACKGROUND);
+			_knob.graphics.drawCircle(0, 0, _radius);
+			_knob.graphics.endFill();
+			
+			_knob.graphics.beginFill(Style.BUTTON_FACE);
+			_knob.graphics.drawCircle(0, 0, _radius - 2);
+			_knob.graphics.endFill();
+			
+			_knob.graphics.beginFill(Style.BACKGROUND);
+			var s:Number = _radius * .1;
+			_knob.graphics.drawRect(_radius, -s, s*1.5, s * 2);
+			_knob.graphics.endFill();
+			
+			_knob.x = _radius;
+			_knob.y = _radius + 20;
+			updateKnob();
+		}
+		
+		/**
+		 * Updates the rotation of the knob based on the value, then formats the value label.
+		 */
+		protected function updateKnob():void
+		{
+			_knob.rotation = -225 + (_value - _min) / (_max - _min) * 270;
+			formatValueLabel();
+		}
+		
+		/**
+		 * Adjusts value to be within minimum and maximum.
+		 */
+		protected function correctValue():void
+		{
+			if(_max > _min)
+			{
+				_value = Math.min(_value, _max);
+				_value = Math.max(_value, _min);
+			}
+			else
+			{
+				_value = Math.max(_value, _max);
+				_value = Math.min(_value, _min);
+			}
+		}
+		
+		/**
+		 * Formats the value of the knob to a string based on the current level of precision.
+		 */
+		protected function formatValueLabel():void
+		{
+			var mult:Number = Math.pow(10, _precision);
+			var val:String = (Math.round(_value * mult) / mult).toString();
+			var parts:Array = val.split(".");
+			if(parts[1] == null)
+			{ 
+				if(_precision > 0)
+				{
+					val += "."
+				}
+				for(var i:uint = 0; i < _precision; i++)
+				{
+					val += "0";
+				}
+			}
+			else if(parts[1].length < _precision)
+			{
+				for(i = 0; i < _precision - parts[1].length; i++)
+				{
+					val += "0";
+				}
+			}
+			_valueLabel.text = val;
+			_valueLabel.draw();
+			_valueLabel.x = width / 2 - _valueLabel.width / 2;
+		}
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			
+			drawKnob();
+			
+			_label.text = _labelText;
+			_label.draw();
+			_label.x = _radius - _label.width / 2;
+			_label.y = 0;
+			
+			formatValueLabel();
+			_valueLabel.x = _radius - _valueLabel.width / 2;
+			_valueLabel.y = _radius * 2 + 20;
+			
+			_width = _radius * 2;
+			_height = _radius * 2 + 40;
+		}
+		
+		///////////////////////////////////
+		// event handler
+		///////////////////////////////////
+		
+		/**
+		 * Internal handler for when user clicks on the knob. Starts tracking up/down motion of the mouse.
+		 */
+		protected function onMouseDown(event:MouseEvent):void
+		{
+			_startY = mouseY;
+			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
+			stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
+		}
+		
+		/**
+		 * Internal handler for mouse move event. Updates value based on how far mouse has moved up or down.
+		 */
+		protected function onMouseMove(event:MouseEvent):void
+		{
+			var oldValue:Number = _value;
+			var diff:Number = _startY - mouseY;
+			var range:Number = _max - _min;
+			var percent:Number = range / _mouseRange;
+			_value += percent * diff;
+			correctValue();
+			if(_value != oldValue)
+			{
+				updateKnob();
+				dispatchEvent(new Event(Event.CHANGE));
+			}
+			_startY = mouseY;
+		}
+		
+		/**
+		 * Internal handler for mouse up event. Stops mouse tracking.
+		 */
+		protected function onMouseUp(event:MouseEvent):void
+		{
+			stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
+			stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
+		}
+		
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Gets / sets the maximum value of this knob.
+		 */
+		public function set maximum(m:Number):void
+		{
+			_max = m;
+			correctValue();
+			updateKnob();
+		}
+		public function get maximum():Number
+		{
+			return _max;
+		}
+		
+		/**
+		 * Gets / sets the minimum value of this knob.
+		 */
+		public function set minimum(m:Number):void
+		{
+			_min = m;
+			correctValue();
+			updateKnob();
+		}
+		public function get minimum():Number
+		{
+			return _min;
+		}
+		
+		/**
+		 * Sets / gets the current value of this knob.
+		 */
+		public function set value(v:Number):void
+		{
+			_value = v;
+			correctValue();
+			updateKnob();
+		}
+		public function get value():Number
+		{
+			return _value;
+		}
+		
+		/**
+		 * Sets / gets the number of pixels the mouse needs to move to make the value of the knob go from min to max.
+		 */
+		public function set mouseRange(value:Number):void
+		{
+			_mouseRange = value;
+		}
+		public function get mouseRange():Number
+		{
+			return _mouseRange;
+		}
+		
+		/**
+		 * Gets / sets the number of decimals to format the value label.
+		 */
+		public function set labelPrecision(decimals:int):void
+		{
+			_precision = decimals;
+		}
+		public function get labelPrecision():int
+		{
+			return _precision;
+		}
+		
+		/**
+		 * Gets / sets whether or not to show the value label.
+		 */
+		public function set showValue(value:Boolean):void
+		{
+			_valueLabel.visible = value;
+		}
+		public function get showValue():Boolean
+		{
+			return _valueLabel.visible;
+		}
+		
+		/**
+		 * Gets / sets the text shown in this component's label.
+		 */
+		public function set label(str:String):void
+		{
+			_labelText = str;
+			draw();
+		}
+		public function get label():String
+		{
+			return _labelText;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Label.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Label.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Label.as
new file mode 100644
index 0000000..7ddb085
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Label.as
@@ -0,0 +1,131 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.text.TextField;
+	import flash.text.TextFieldAutoSize;
+	import flash.text.TextFormat;
+	
+	public class Label extends Component
+	{
+		private var _autoSize:Boolean = true;
+		private var _text:String = "";
+		private var _tf:TextField;
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this Label.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param text The string to use as the initial text in this component.
+		 */
+		public function Label(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, text:String = "")
+		{
+			_text = text;
+			super(parent, xpos, ypos);
+		}
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			mouseEnabled = false;
+			mouseChildren = false;
+		}
+		
+		/**
+		 * Creates and adds the child display objects of this component.
+		 */
+		override protected function addChildren():void
+		{
+			_height = 18;
+			_tf = new TextField();
+			_tf.height = _height;
+			_tf.embedFonts = true;
+			_tf.selectable = false;
+			_tf.mouseEnabled = false;
+			_tf.defaultTextFormat = new TextFormat("PF Ronda Seven", 8, Style.LABEL_TEXT);
+			_tf.text = _text;			
+			addChild(_tf);
+			draw();
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			_tf.text = _text;
+			if(_autoSize)
+			{
+				_tf.autoSize = TextFieldAutoSize.LEFT;
+				_width = _tf.width;
+			}
+			else
+			{
+				_tf.autoSize = TextFieldAutoSize.NONE;
+				_tf.width = _width;
+			}
+			_height = _tf.height = 18;
+		}
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Gets / sets the text of this Label.
+		 */
+		public function set text(t:String):void
+		{
+			_text = t;
+			invalidate();
+		}
+		public function get text():String
+		{
+			return _text;
+		}
+		
+		/**
+		 * Gets / sets whether or not this Label will autosize.
+		 */
+		public function set autoSize(b:Boolean):void
+		{
+			_autoSize = b;
+		}
+		public function get autoSize():Boolean
+		{
+			return _autoSize;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Meter.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Meter.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Meter.as
new file mode 100644
index 0000000..4e6f3c6
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Meter.as
@@ -0,0 +1,326 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.filters.DropShadowFilter;
+	
+	public class Meter extends Component
+	{
+		private var _damp:Number = .8;
+		private var _dial:Sprite;
+		private var _label:Label;
+		private var _labelText:String;
+		private var _maximum:Number = 1.0;
+		private var _maxLabel:Label;
+		private var _minimum:Number = 0.0;
+		private var _minLabel:Label;
+		private var _needle:Sprite;
+		private var _needleMask:Sprite;
+		private var _showValues:Boolean = true;
+		private var _targetRotation:Number = 0;
+		private var _value:Number = 0.0;
+		private var _velocity:Number = 0;
+		
+		
+		
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this Meter.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param text The string to use as the initial text in this component.
+		 */
+		public function Meter(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, text:String = "")
+		{
+			_labelText = text;
+			super(parent, xpos, ypos);
+		}
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			_width = 200;
+			_height = 100;
+		}
+		
+		
+		/**
+		 * Creates and adds the child display objects of this component.
+		 */
+		override protected function addChildren():void
+		{ 
+			_dial = new Sprite();
+			addChild(_dial);
+
+			_needle = new Sprite();
+			_needle.rotation = -50;
+			_dial.addChild(_needle);
+			
+			_needleMask = new Sprite();
+			addChild(_needleMask);
+			_dial.mask = _needleMask;
+			
+			_minLabel = new Label(this);
+			_minLabel.text = _minimum.toString();
+			
+			_maxLabel = new Label(this);
+			_maxLabel.autoSize = true;
+			_maxLabel.text = _maximum.toString();
+			
+			_label = new Label(this);
+			_label.text = _labelText;
+		}
+		
+		 
+		 
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			var startAngle:Number = -140 * Math.PI / 180;
+			var endAngle:Number = -40 * Math.PI / 180;
+			
+			drawBackground();
+			drawDial(startAngle, endAngle);
+			drawTicks(startAngle, endAngle);
+			drawNeedle();
+			
+			_minLabel.move(10, _height - _minLabel.height - 4);
+			_maxLabel.move(_width - _maxLabel.width - 10, _height - _maxLabel.height - 4);
+			_label.move((_width - _label.width) / 2, _height * .5);
+			update();
+		}
+		
+		/**
+		 * Sets the size of the component. Adjusts height to be 1/2 width.
+		 * @param w The width of the component.
+		 * @param h The height of the component.
+		 */
+		override public function setSize(w:Number, h:Number):void
+		{
+			super.setSize(w, w / 2);
+		}
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the background of the component.
+		 */
+		protected function drawBackground():void
+		{
+			graphics.clear();
+			graphics.beginFill(Style.BACKGROUND);
+			graphics.drawRect(0, 0, _width, _height);
+			graphics.endFill();
+			
+			graphics.beginFill(Style.PANEL);
+			graphics.drawRect(1, 1, _width - 2, _height - 2);
+			graphics.endFill();
+		}
+		
+		/**
+		 * Draws the dial.
+		 */
+		protected function drawDial(startAngle:Number, endAngle:Number):void
+		{
+			_dial.x = _width / 2;
+			_dial.y = _height * 1.25;
+			_dial.graphics.clear();
+			_dial.graphics.lineStyle(0, Style.BACKGROUND);
+			_dial.graphics.beginFill(Style.BUTTON_FACE);
+			var r1:Number = _height * 1.05;
+			var r2:Number = _height * 0.96;
+			
+			_dial.graphics.moveTo(Math.cos(startAngle) * r1, Math.sin(startAngle) * r1);
+			for(var i:Number = startAngle; i < endAngle; i += .1)
+			{
+				_dial.graphics.lineTo(Math.cos(i) * r1, Math.sin(i) * r1);
+			}
+			_dial.graphics.lineTo(Math.cos(endAngle) * r1, Math.sin(endAngle) * r1);
+			
+			_dial.graphics.lineTo(Math.cos(endAngle) * r2, Math.sin(endAngle) * r2);
+			for(i = endAngle; i > startAngle; i -= .1)
+			{
+				_dial.graphics.lineTo(Math.cos(i) * r2, Math.sin(i) * r2);
+			}
+			_dial.graphics.lineTo(Math.cos(startAngle) * r2, Math.sin(startAngle) * r2);
+			_dial.graphics.lineTo(Math.cos(startAngle) * r1, Math.sin(startAngle) * r1);
+			
+		}
+		
+		/**
+		 * Draws the tick marks on the dial.
+		 */
+		protected function drawTicks(startAngle:Number, endAngle:Number):void
+		{
+			var r1:Number = _height * 1.05;
+			var r2:Number = _height * 0.96;
+			var r3:Number = _height * 1.13;
+			var tick:Number = 0;
+			for(var i:int = 0; i < 9; i++)
+			{
+				var angle:Number = startAngle + i * (endAngle - startAngle) / 8;
+				_dial.graphics.moveTo(Math.cos(angle) * r2, Math.sin(angle) * r2);
+				if(tick++ % 2 == 0)
+				{
+					_dial.graphics.lineTo(Math.cos(angle) * r3, Math.sin(angle) * r3);
+				}
+				else
+				{
+					_dial.graphics.lineTo(Math.cos(angle) * r1, Math.sin(angle) * r1);
+				}
+			}
+		}
+		
+		/**
+		 * Draws the needle.
+		 */
+		protected function drawNeedle():void
+		{
+			_needle.graphics.clear();
+			_needle.graphics.beginFill(0xff0000);
+			_needle.graphics.drawRect(-0.5, -_height * 1.10, 1, _height * 1.10);
+			_needle.filters = [new DropShadowFilter(4, 0, 0, 1, 3, 3, .2)];
+			
+			_needleMask.graphics.clear();
+			_needleMask.graphics.beginFill(0);
+			_needleMask.graphics.drawRect(0, 0, _width, _height);
+			_needleMask.graphics.endFill();
+		}
+		
+		/**
+		 * Updates the target rotation of the needle and starts an enterframe handler to spring it to that point.
+		 */
+		protected function update():void
+		{
+			_value = Math.max(_value, _minimum);
+			_value = Math.min(_value, _maximum);
+			_targetRotation = -50 + _value / (_maximum - _minimum) * 100;
+			addEventListener(Event.ENTER_FRAME, onEnterFrame);
+		}
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		/**
+		 * Handles the enterFrame event to spring the needle to the target rotation.
+		 */
+		protected function onEnterFrame(event:Event):void
+		{
+			var dist:Number = _targetRotation - _needle.rotation;
+			_velocity += dist * .05;
+			_velocity *= _damp;
+			if(Math.abs(_velocity) < .1 && Math.abs(dist) < .1)
+			{
+				_needle.rotation = _targetRotation;
+				removeEventListener(Event.ENTER_FRAME, onEnterFrame);
+			}
+			else
+			{
+				_needle.rotation += _velocity;
+			}
+		}
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Gets / sets the maximum value for the meter.
+		 */
+		public function set maximum(value:Number):void
+		{
+			_maximum = value;
+			_maxLabel.text = _maximum.toString();
+			update();
+		}
+		public function get maximum():Number
+		{
+			return _maximum;
+		}
+		
+		/**
+		 * Gets / sets the minimum value for the meter.
+		 */
+		public function set minimum(value:Number):void
+		{
+			_minimum = value;
+			_minLabel.text = _minimum.toString();
+			update();
+		}
+		public function get minimum():Number
+		{
+			return _minimum;
+		}
+		
+		/**
+		 * Gets / sets the current value for the meter.
+		 */
+		public function set value(val:Number):void
+		{
+			_value = val;
+			update();
+		}
+		public function get value():Number
+		{
+			return _value;
+		}
+		
+		/**
+		 * Gets / sets the label shown on the meter.
+		 */
+		public function set label(value:String):void
+		{
+			_labelText = value;
+			_label.text = _labelText;
+		}
+		public function get label():String
+		{
+			return _labelText;
+		}
+		
+		/**
+		 * Gets / sets whether or not value labels will be shown for max and min values.
+		 */
+		public function set showValues(value:Boolean):void
+		{
+			_showValues = value;
+			_minLabel.visible = _showValues;
+			_maxLabel.visible = _showValues;
+		}
+		public function get showValues():Boolean
+		{
+			return _showValues;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Panel.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Panel.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Panel.as
new file mode 100644
index 0000000..60d83fb
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/Panel.as
@@ -0,0 +1,153 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Shape;
+	import flash.display.Sprite;
+	
+	public class Panel extends Component
+	{
+		private var _mask:Sprite;
+		private var _background:Shape;
+		private var _color:int = -1;
+		private var _shadow:Boolean = true;
+		
+		
+		/**
+		 * Container for content added to this panel. This is masked, so best to add children to content, rather than directly to the panel.
+		 */
+		public var content:Sprite;
+		
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this Panel.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 */
+		public function Panel(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0)
+		{
+			super(parent, xpos, ypos);
+		}
+		
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			setSize(100, 100);
+		}
+		
+		/**
+		 * Creates and adds the child display objects of this component.
+		 */
+		override protected function addChildren():void
+		{
+			_background = new Shape();
+			addChild(_background);
+			
+			_mask = new Sprite();
+			_mask.mouseEnabled = false;
+			addChild(_mask);
+			
+			content = new Sprite();
+			addChild(content);
+			content.mask = _mask;
+			
+			filters = [getShadow(2, true)];
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			_background.graphics.clear();
+			if(_color == -1)
+			{
+				_background.graphics.beginFill(Style.PANEL);
+			}
+			else
+			{
+				_background.graphics.beginFill(_color);
+			}
+			_background.graphics.drawRect(0, 0, _width, _height);
+			_background.graphics.endFill();
+			
+			_mask.graphics.clear();
+			_mask.graphics.beginFill(0xff0000);
+			_mask.graphics.drawRect(0, 0, _width, _height);
+			_mask.graphics.endFill();
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Gets / sets whether or not this Panel will have an inner shadow.
+		 */
+		public function set shadow(b:Boolean):void
+		{
+			_shadow = b;
+			if(_shadow)
+			{
+				filters = [getShadow(2, true)];
+			}
+			else
+			{
+				filters = [];
+			}
+		}
+		public function get shadow():Boolean
+		{
+			return _shadow;
+		}
+		
+		/**
+		 * Gets / sets the backgrond color of this panel.
+		 */
+		public function set color(c:int):void
+		{
+			_color = c;
+			invalidate();
+		}
+		public function get color():int
+		{
+			return _color;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/ProgressBar.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/ProgressBar.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/ProgressBar.as
new file mode 100644
index 0000000..f381dda
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/ProgressBar.as
@@ -0,0 +1,139 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	
+	public class ProgressBar extends Component
+	{
+		private var _back:Sprite;
+		private var _bar:Sprite;
+		private var _value:Number = 0;
+		private var _max:Number = 1;
+
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this ProgressBar.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 */
+		public function ProgressBar(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0)
+		{
+			super(parent, xpos, ypos);
+		}
+		
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			setSize(100, 10);
+		}
+		
+		/**
+		 * Creates and adds the child display objects of this component.
+		 */
+		override protected function addChildren():void
+		{
+			_back = new Sprite();
+			_back.filters = [getShadow(2, true)];
+			addChild(_back);
+			
+			_bar = new Sprite();
+			_bar.x = 1;
+			_bar.y = 1;
+			_bar.filters = [getShadow(1)];
+			addChild(_bar);
+		}
+		
+		/**
+		 * Updates the size of the progress bar based on the current value.
+		 */
+		protected function update():void
+		{
+			_bar.scaleX = _value / _max;
+		}
+
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			_back.graphics.clear();
+			_back.graphics.beginFill(Style.BACKGROUND);
+			_back.graphics.drawRect(0, 0, _width, _height);
+			_back.graphics.endFill();
+			
+			_bar.graphics.clear();
+			_bar.graphics.beginFill(Style.PROGRESS_BAR);
+			_bar.graphics.drawRect(0, 0, _width - 2, _height - 2);
+			_bar.scaleX = 0;
+			_bar.graphics.endFill();
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Gets / sets the maximum value of the ProgressBar.
+		 */
+		public function set maximum(m:Number):void
+		{
+			_max = m;
+			_value = Math.min(_value, _max);
+			update();
+		}
+		public function get maximum():Number
+		{
+			return _max;
+		}
+		
+		/**
+		 * Gets / sets the current value of the ProgressBar.
+		 */
+		public function set value(v:Number):void
+		{
+			_value = Math.min(v, _max);
+			update();
+		}
+		public function get value():Number
+		{
+			return _value;
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/PushButton.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/PushButton.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/PushButton.as
new file mode 100644
index 0000000..9f8e663
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/PushButton.as
@@ -0,0 +1,230 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	import flash.events.MouseEvent;
+
+	public class PushButton extends Component
+	{
+		private var _back:Sprite;
+		private var _face:Sprite;
+		private var _label:Label;
+		private var _labelText:String = "";
+		private var _over:Boolean = false;
+		private var _down:Boolean = false;
+		private var _selected:Boolean = false;
+		private var _toggle:Boolean = false;
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this PushButton.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param label The string to use for the initial label of this component.
+ 		 * @param defaultHandler The event handling function to handle the default event for this component (click in this case).
+		 */
+		public function PushButton(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, label:String = "", defaultHandler:Function = null)
+		{
+			super(parent, xpos, ypos);
+			if(defaultHandler != null)
+			{
+				addEventListener(MouseEvent.CLICK, defaultHandler);
+			}
+			this.label = label;
+		}
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			buttonMode = true;
+			useHandCursor = true;
+			setSize(100, 20);
+		}
+		
+		/**
+		 * Creates and adds the child display objects of this component.
+		 */
+		override protected function addChildren():void
+		{
+			_back = new Sprite();
+			_back.filters = [getShadow(2, true)];
+			_back.mouseEnabled = false;
+			addChild(_back);
+			
+			_face = new Sprite();
+			_face.mouseEnabled = false;
+			_face.filters = [getShadow(1)];
+			_face.x = 1;
+			_face.y = 1;
+			addChild(_face);
+			
+			_label = new Label();
+			addChild(_label);
+			
+			addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
+			addEventListener(MouseEvent.ROLL_OVER, onMouseOver);
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			_back.graphics.clear();
+			_back.graphics.beginFill(Style.BACKGROUND);
+			_back.graphics.drawRect(0, 0, _width, _height);
+			_back.graphics.endFill();
+			
+			_face.graphics.clear();
+			_face.graphics.beginFill(Style.BUTTON_FACE);
+			_face.graphics.drawRect(0, 0, _width - 2, _height - 2);
+			_face.graphics.endFill();
+			
+			_label.autoSize = true;
+			_label.text = _labelText;
+			if(_label.width > _width - 4)
+			{
+				_label.autoSize = false;
+				_label.width = _width - 4;
+			}
+			else
+			{
+				_label.autoSize = true;
+			}
+			_label.draw();
+			_label.move(_width / 2 - _label.width / 2, _height / 2 - _label.height / 2);
+			
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		/**
+		 * Internal mouseOver handler.
+		 * @param event The MouseEvent passed by the system.
+		 */
+		protected function onMouseOver(event:MouseEvent):void
+		{
+			_over = true;
+			addEventListener(MouseEvent.ROLL_OUT, onMouseOut);
+		}
+		
+		/**
+		 * Internal mouseOut handler.
+		 * @param event The MouseEvent passed by the system.
+		 */
+		protected function onMouseOut(event:MouseEvent):void
+		{
+			_over = false;
+			if(!_down)
+			{
+				_face.filters = [getShadow(1)];
+			}
+		}
+		
+		/**
+		 * Internal mouseOut handler.
+		 * @param event The MouseEvent passed by the system.
+		 */
+		protected function onMouseDown(event:MouseEvent):void
+		{
+			_down = true;
+			_face.filters = [getShadow(1, true)];
+			stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
+		}
+		
+		/**
+		 * Internal mouseUp handler.
+		 * @param event The MouseEvent passed by the system.
+		 */
+		protected function onMouseUp(event:MouseEvent):void
+		{
+			if(_toggle  && _over)
+			{
+				_selected = !_selected;
+			}
+			_down = _selected;
+			_face.filters = [getShadow(1, _selected)];
+			stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Sets / gets the label text shown on this Pushbutton.
+		 */
+		public function set label(str:String):void
+		{
+			_labelText = str;
+			draw();
+		}
+		public function get label():String
+		{
+			return _labelText;
+		}
+		
+		public function set selected(value:Boolean):void
+		{
+			if(!_toggle)
+			{
+				value = false;
+			}
+			
+			_selected = value;
+			_down = _selected;
+			_face.filters = [getShadow(1, _selected)];
+		}
+		public function get selected():Boolean
+		{
+			return _selected;
+		}
+		
+		public function set toggle(value:Boolean):void
+		{
+			_toggle = value;
+		}
+		public function get toggle():Boolean
+		{
+			return _toggle;
+		}
+		
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/RadioButton.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/RadioButton.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/RadioButton.as
new file mode 100644
index 0000000..dba0e28
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/RadioButton.as
@@ -0,0 +1,201 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	import flash.events.MouseEvent;
+	
+	public class RadioButton extends Component
+	{
+		private var _back:Sprite;
+		private var _button:Sprite;
+		private var _selected:Boolean = false;
+		private var _label:Label;
+		private var _labelText:String = "";
+		
+		private static var buttons:Array;
+		
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this RadioButton.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param label The string to use for the initial label of this component.
+		 * @param defaultHandler The event handling function to handle the default event for this component (click in this case).
+		 */
+		public function RadioButton(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, label:String = "", checked:Boolean = false, defaultHandler:Function = null)
+		{
+			RadioButton.addButton(this);
+			_selected = checked;
+			_labelText = label;
+			super(parent, xpos, ypos);
+			if(defaultHandler != null)
+			{
+				addEventListener(MouseEvent.CLICK, defaultHandler);
+			}
+		}
+		
+		/**
+		 * Static method to add the newly created RadioButton to the list of buttons in the group.
+		 * @param rb The RadioButton to add.
+		 */
+		private static function addButton(rb:RadioButton):void
+		{
+			if(buttons == null)
+			{
+				buttons = new Array();
+			}
+			buttons.push(rb);
+		}
+		
+		/**
+		 * Unselects all RadioButtons in the group, except the one passed.
+		 * This could use some rethinking or better naming.
+		 * @param rb The RadioButton to remain selected.
+		 */
+		private static function clear(rb:RadioButton):void
+		{
+			for(var i:uint = 0; i < buttons.length; i++)
+			{
+				if(buttons[i] != rb)
+				{
+					buttons[i].selected = false;
+				}
+			}
+		}
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			
+			buttonMode = true;
+			useHandCursor = true;
+			
+			addEventListener(MouseEvent.CLICK, onClick, false, 1);
+			selected = _selected;
+		}
+		
+		/**
+		 * Creates and adds the child display objects of this component.
+		 */
+		override protected function addChildren():void
+		{
+			_back = new Sprite();
+			_back.filters = [getShadow(2, true)];
+			addChild(_back);
+			
+			_button = new Sprite();
+			_button.filters = [getShadow(1)];
+			_button.visible = false;
+			addChild(_button);
+			
+			_label = new Label(this, 0, 0, _labelText);
+			draw();
+			
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			_back.graphics.clear();
+			_back.graphics.beginFill(Style.BACKGROUND);
+			_back.graphics.drawCircle(5, 5, 5);
+			_back.graphics.endFill();
+			
+			_button.graphics.clear();
+			_button.graphics.beginFill(Style.BUTTON_FACE);
+			_button.graphics.drawCircle(5, 5, 3);
+			
+			_label.x = 12;
+			_label.y = (10 - _label.height) / 2;
+			_label.text = _labelText;
+			_label.draw();
+			_width = _label.width + 12;
+			_height = 10;
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// event handlers
+		///////////////////////////////////
+		
+		/**
+		 * Internal click handler.
+		 * @param event The MouseEvent passed by the system.
+		 */
+		protected function onClick(event:MouseEvent):void
+		{
+			selected = true;
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Sets / gets the selected state of this CheckBox.
+		 */
+		public function set selected(s:Boolean):void
+		{
+			_selected = s;
+			_button.visible = _selected;
+			if(_selected)
+			{
+				RadioButton.clear(this);
+			}
+		}
+		public function get selected():Boolean
+		{
+			return _selected;
+		}
+
+		/**
+		 * Sets / gets the label text shown on this CheckBox.
+		 */
+		public function set label(str:String):void
+		{
+			_labelText = str;
+			invalidate();
+		}
+		public function get label():String
+		{
+			return _labelText;
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b6e082df/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/RotarySelector.as
----------------------------------------------------------------------
diff --git a/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/RotarySelector.as b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/RotarySelector.as
new file mode 100644
index 0000000..8c735a3
--- /dev/null
+++ b/flexmojos-tests/net.flexmojos.oss.tests.concept.ManifestTest.manifestCreation/src/com/bit101/components/RotarySelector.as
@@ -0,0 +1,286 @@
+/**
+ * Flexmojos is a set of maven goals to allow maven users to compile, optimize and test Flex SWF, Flex SWC, Air SWF and Air SWC.
+ * Copyright (C) 2008-2012  Marvin Froeder <marvin@flexmojos.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.bit101.components
+{
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.events.MouseEvent;
+	
+	public class RotarySelector extends Component
+	{
+		public static const ALPHABETIC:String = "alphabetic";
+		public static const NUMERIC:String = "numeric";
+		public static const NONE:String = "none";
+		public static const ROMAN:String = "roman";
+		
+		
+		private var _label:Label;
+		private var _labelText:String = "";
+		private var _knob:Sprite;
+		private var _numChoices:int = 2;
+		private var _choice:Number = 0;
+		private var _labels:Sprite;
+		private var _labelMode:String = ALPHABETIC;
+		
+		
+		/**
+		 * Constructor
+		 * @param parent The parent DisplayObjectContainer on which to add this CheckBox.
+		 * @param xpos The x position to place this component.
+		 * @param ypos The y position to place this component.
+		 * @param label String containing the label for this component.
+		 * @param defaultHandler The event handling function to handle the default event for this component (change in this case).
+		 */
+		public function RotarySelector(parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number =  0, label:String = "", defaultHandler:Function = null)
+		{
+			_labelText = label;
+			super(parent, xpos, ypos);
+			if(defaultHandler != null)
+			{
+				addEventListener(Event.CHANGE, defaultHandler);
+			}
+		}
+		
+		/**
+		 * Initializes the component.
+		 */
+		override protected function init():void
+		{
+			super.init();
+			setSize(60, 60);
+		}
+		
+		/**
+		 * Creates the children for this component
+		 */
+		override protected function addChildren():void
+		{
+			_knob = new Sprite();
+			_knob.buttonMode = true;
+			_knob.useHandCursor = true;
+			addChild(_knob);
+			
+			_label = new Label();
+			_label.autoSize = true;
+			addChild(_label);
+			
+			_labels = new Sprite();
+			addChild(_labels);
+			
+			_knob.addEventListener(MouseEvent.CLICK, onClick);
+		}
+		
+		/**
+		 * Decrements the index of the current choice.
+		 */
+		protected function decrement():void
+		{
+			if(_choice > 0)
+			{
+				_choice--;
+				draw();
+				dispatchEvent(new Event(Event.CHANGE));
+			}
+		}
+		
+		/**
+		 * Increments the index of the current choice.
+		 */
+		protected function increment():void
+		{
+			if(_choice < _numChoices - 1)
+			{
+				_choice++;
+				draw();
+				dispatchEvent(new Event(Event.CHANGE));
+			}
+		}
+		
+		/**
+		 * Removes old labels.
+		 */
+		protected function resetLabels():void
+		{
+			while(_labels.numChildren > 0)
+			{
+				_labels.removeChildAt(0);
+			}
+			_labels.x = _width / 2 - 5;
+			_labels.y = _height / 2 - 10;
+		}
+		
+		/**
+		 * Draw the knob at the specified radius.
+		 * @param radius The radius with which said knob will be drawn.
+		 */
+		protected function drawKnob(radius:Number):void
+		{
+			_knob.graphics.clear();
+			_knob.graphics.beginFill(Style.BACKGROUND);
+			_knob.graphics.drawCircle(0, 0, radius);
+			_knob.graphics.endFill();
+			
+			_knob.graphics.beginFill(Style.BUTTON_FACE);
+			_knob.graphics.drawCircle(0, 0, radius - 2);
+			
+			_knob.x = _width / 2;
+			_knob.y = _height / 2;
+		}
+		
+		///////////////////////////////////
+		// public methods
+		///////////////////////////////////
+		
+		/**
+		 * Draws the visual ui of the component.
+		 */
+		override public function draw():void
+		{
+			super.draw();
+			
+			var radius:Number = Math.min(_width, _height) / 2;
+			drawKnob(radius);
+			resetLabels();
+			
+			var arc:Number = Math.PI * 1.5 / _numChoices; // the angle between each choice
+			var start:Number = - Math.PI / 2 - arc * (_numChoices - 1) / 2; // the starting angle for choice 0
+			
+			graphics.clear();
+			graphics.lineStyle(4, Style.BACKGROUND, .5);
+			for(var i:int = 0; i < _numChoices; i++)
+			{
+				var angle:Number = start + arc * i;
+				var sin:Number = Math.sin(angle);
+				var cos:Number = Math.cos(angle);
+				
+				graphics.moveTo(_knob.x, _knob.y);
+				graphics.lineTo(_knob.x + cos * (radius + 2), _knob.y + sin * (radius + 2));
+				
+				var lab:Label = new Label(_labels, cos * (radius + 10), sin * (radius + 10));
+				lab.mouseEnabled = true;
+				lab.buttonMode = true;
+				lab.useHandCursor = true;
+				lab.addEventListener(MouseEvent.CLICK, onLabelClick);
+				if(_labelMode == ALPHABETIC)
+				{
+					lab.text = String.fromCharCode(65 + i);
+				}
+				else if(_labelMode == NUMERIC)
+				{
+					lab.text = (i + 1).toString();
+				}
+				else if(_labelMode == ROMAN)
+				{
+					var chars:Array = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"];
+					lab.text = chars[i];
+				}
+				if(i != _choice)
+				{
+					lab.alpha = 0.5;
+				}
+			}
+			
+			angle = start + arc * _choice;
+			graphics.lineStyle(4, Style.LABEL_TEXT);
+			graphics.moveTo(_knob.x, _knob.y);
+			graphics.lineTo(_knob.x + Math.cos(angle) * (radius + 2), _knob.y + Math.sin(angle) * (radius + 2));
+			
+			
+			_label.text = _labelText;
+			_label.draw();
+			_label.x = _width / 2 - _label.width / 2;
+			_label.y = _height + 2;
+		}
+		
+		
+		
+		///////////////////////////////////
+		// event handler
+		///////////////////////////////////
+		
+		/**
+		 * Internal click handler.
+		 * @param event The MouseEvent passed by the system.
+		 */
+		protected function onClick(event:MouseEvent):void
+		{
+			if(mouseX < _width / 2)
+			{
+				decrement();
+			}
+			else 
+			{
+				increment();
+			}
+		}
+		
+		protected function onLabelClick(event:Event):void
+		{
+			var lab:Label = event.target as Label;
+			choice = _labels.getChildIndex(lab);
+		}
+		
+		
+		
+		
+		///////////////////////////////////
+		// getter/setters
+		///////////////////////////////////
+		
+		/**
+		 * Gets / sets the number of available choices (maximum of 10).
+		 */
+		public function set numChoices(value:uint):void
+		{
+			_numChoices = Math.min(value, 10);
+			draw();
+		}
+		public function get numChoices():uint
+		{
+			return _numChoices;
+		}
+		
+		/**
+		 * Gets / sets the current choice, keeping it in range of 0 to numChoices - 1.
+		 */
+		public function set choice(value:uint):void
+		{
+			_choice = Math.max(0, Math.min(_numChoices - 1, value));
+			draw();
+			dispatchEvent(new Event(Event.CHANGE));
+		}
+		public function get choice():uint
+		{
+			return _choice;
+		}
+		
+		/**
+		 * Specifies what will be used as labels for each choice. Valid values are "alphabetic", "numeric", and "none".
+		 */
+		public function set labelMode(value:String):void
+		{
+			_labelMode = value;
+			draw();
+		}
+		public function get labelMode():String
+		{
+			return _labelMode;
+		}
+	}
+}
\ No newline at end of file


Mime
View raw message