Bug 708996: add testcase that exposed issue

error: pathspec 'test/acceptance/as3/Types/Float4/Float4Matrix.as' did not match any file(s) known to git

--- test/acceptance/as3/Types/Float4/Float4Matrix.as
+++ test/acceptance/as3/Types/Float4/Float4Matrix.as
@@ -0,0 +1,82 @@
+/* -*- c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
+/* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is [Open Source Virtual Machine.].
+ *
+ * The Initial Developer of the Original Code is
+ * Adobe System Incorporated.
+ * Portions created by the Initial Developer are Copyright (C) 2012
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Adobe AS3 Team
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+var SECTION = "";
+var VERSION = "AS3";
+var TITLE   = "bz bug 708996";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+class Float4Matrix
+{
+    // public float4 access is the fastest way to get to our rows
+    public var row0 : float4;
+    public var row1 : float4;
+    public var row2 : float4;
+    public var row3 : float4;
+
+    public function Float4Matrix ( ) {
+        identity();
+    }
+
+    public function scale ( x:float, y:float, z:float ):void {
+        row0 = float4(x,0.0f,0.0f,0.0f);
+        row1 = float4(0.0f,y,0.0f,0.0f);
+        row2 = float4(0.0f,0.0f,z,0.0f);
+        row3 = float4(0.0f,0.0f,0.0f,1.0f);
+    }
+
+    public function identity():void {
+        row0 = float4(1.0f,0.0f,0.0f,0.0f);
+        row1 = float4(0.0f,1.0f,0.0f,0.0f);
+        row2 = float4(0.0f,0.0f,1.0f,0.0f);
+        row3 = float4(0.0f,0.0f,0.0f,1.0f);
+    }
+}
+
+var f4m:Float4Matrix = new Float4Matrix();
+f4m.scale(2,3,.4);
+
+AddStrictTestCase("fm4.row0", float4(2,0,0,0), f4m.row0);
+AddStrictTestCase("fm4.row1", float4(0,3,0,0), f4m.row1);
+AddStrictTestCase("fm4.row2", float4(0,0,0.4000000059604645,0), f4m.row2);
+AddStrictTestCase("fm4.row3", float4(0,0,0,1), f4m.row3);
+
+test();


Create Url.as

Create Url.as

Relative to absolute path.

error: pathspec 'HLSPlugin/src/org/denivip/osmf/utility/Url.as' did not match any file(s) known to git

--- HLSPlugin/src/org/denivip/osmf/utility/Url.as
+++ HLSPlugin/src/org/denivip/osmf/utility/Url.as
@@ -0,0 +1,44 @@
+package org.denivip.osmf.utility
+{
+	/*
+	 * Contains Utility functions for relative / absolute url.
+	 * Main differnce is if relative url is starting with slash "/" or without "/"
+	 *
+	 * Example:
+	 * m3u8:
+		http://www.example.com/playlist/first/video.m3u8
+
+	 * relative path starting without "/":
+			part-1.ts
+		absolute path:
+			http://www.example.com/playlist/first/part-1.ts
+
+	 * relative path starting with "/":
+			/part-1.ts
+		absolute path:
+			http://www.example.com/part-1.ts
+	 */
+	public class Url
+	{
+		public static function absolute(rootUrl:String, url:String):String {
+			if (url.search(/(ftp|file|https?):\/\//) == 0)
+				return url;
+
+			if (url.charAt(0) == '/') {
+				var urlParts:Array = rootUrl.split('/', 4);
+				rootUrl = urlParts[2]
+				? urlParts[0] + '//' + urlParts[2]
+				: urlParts[0] + '///' + urlParts[3];
+				//*		'//' = http || https || ftp,	 '///' = file
+				return rootUrl + url;
+			};
+
+			if (rootUrl.lastIndexOf('/') != rootUrl.length - 1) {
+				rootUrl = rootUrl.substr(rootUrl.lastIndexOf('/')).indexOf('.') > -1
+				? rootUrl.substr(0, rootUrl.lastIndexOf('/') + 1)
+				: rootUrl + '/';
+			};
+			return rootUrl + url;
+		}
+	}
+}


build playlist

build playlist

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/dseeker/lietro.git/'


removing delay to after render

removing delay to after render

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/rafaelcordoba/cocktail-demo.git/'


FLEXMOJOS-330

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/edward-yakop/flexmojos.git/'


Transferred from the Adobe Open Source Subversion Repository

Revision: 20489
Author:   chiedozi@adobe.com
Date:     2011-02-28T20:15:40.105341Z

Log Message:
-----------
Fixed an issue where the VIEW_ACTIVATE event wasn't properly dispatched when switching tabs in a TabbedViewNavigator.

QE notes:
Doc notes:
Bugs: SDK-29651
Reviewer: Ryan
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1264305 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -405,6 +405,8 @@
                 // persistence is enabled.
                 if (canDestroy || clearNavigationStack)
                     destroyViewInstance(navigationStack.topView, !clearNavigationStack);
+				else
+					deactiveView(activeView);
             }
         }

@@ -1962,13 +1964,8 @@
             return;

         // Deactivate the view if it is active
-        if (currentView.isActive)
-            currentView.setActive(false);
-
+		deactiveView(currentView);
         removeElement(currentView);
-
-        currentView.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
-            view_propertyChangeHandler);

         // Grab the data from the old view and persist it
         if (lastAction == ViewNavigatorAction.PUSH || forceDataPersist)
@@ -1988,6 +1985,18 @@
         }
     }

+    /**
+     *  @private
+     */
+	private function deactiveView(view:View):void
+	{
+		if (view.isActive)
+			view.setActive(false);
+
+		view.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
+			view_propertyChangeHandler);
+	}
+
     /**
      *  @private
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 4229
Author:   egreenfi@adobe.com
Date:     2008-12-04T00:38:26.275387Z

Log Message:
-----------
added layering support to DataGroup

DataGroup now correctly supports non-zero layers on its itemRenderers.

Also, fixed an injection from Wednesday that broke charts due to a function added to UIComponent that I seem to be overly fond of.

QA: yes.
DOC: no.
REviewer: Deepa.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1282097 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -1,5 +1,8 @@
 package mx.components.baseClasses
 {
+
+import __AS3__.vec.Vector;
+
 import flash.display.DisplayObject;
 import flash.display.Sprite;
 import flash.events.Event;
@@ -8,31 +11,30 @@
 import flash.geom.Rectangle;
 import flash.utils.Dictionary;

-import mx.events.FlexEvent;
-import mx.events.ItemExistenceChangedEvent;
-import mx.graphics.Graphic;
-
-import mx.graphics.MaskType;
-import mx.utils.MatrixUtil;
-import mx.graphics.graphicsClasses.GraphicElement;
-import mx.graphics.IGraphicElement;
-import mx.layout.ILayoutElement;
-import mx.core.IViewport;
-import mx.core.ScrollUnit;
-import mx.layout.LayoutBase;
-import mx.layout.BasicLayout;
-
 import mx.collections.ICollectionView;
 import mx.collections.IList;
 import mx.collections.ListCollectionView;
 import mx.components.ResizeMode;
 import mx.controls.Label;
 import mx.core.IFactory;
+import mx.core.IViewport;
+import mx.core.IVisualElement;
+import mx.core.ScrollUnit;
+import mx.core.UIComponent;
 import mx.core.mx_internal;
-import mx.core.UIComponent;
 import mx.events.CollectionEvent;
+import mx.events.FlexEvent;
+import mx.events.ItemExistenceChangedEvent;
 import mx.events.PropertyChangeEvent;
 import mx.events.PropertyChangeEventKind;
+import mx.graphics.Graphic;
+import mx.graphics.IGraphicElement;
+import mx.graphics.MaskType;
+import mx.graphics.graphicsClasses.GraphicElement;
+import mx.layout.BasicLayout;
+import mx.layout.ILayoutElement;
+import mx.layout.LayoutBase;
+import mx.utils.MatrixUtil;

 use namespace mx_internal;

@@ -916,6 +918,37 @@
         // Call super, so that we don't invalidate the layout
         super.invalidateDisplayList();
     }
+
+   /**
+     *  @private
+     *
+     *  A simple insertion sort.  This works well for small lists (under 12 or so), uses
+     *  no aditional memory, and most importantly, is stable, meaning items with comparable
+     *  values will stay in the same order relative to each other. For layering, we guarantee
+     *  first the layer property, and then the item order, so a stable sort is important (and the
+     *  built in flash sort is not stable).
+     */
+    mx_internal static function sortOnLayer(a:Vector.<IVisualElement>):void
+    {
+        var len:Number = a.length;
+        var tmp:IVisualElement;
+        if (len<= 1)
+            return;
+        for (var i:int = 1;i<len;i++)
+        {
+            for (var j:int = i;j > 0;j--)
+            {
+                if ( a[j].layer < a[j-1].layer )
+                {
+                    tmp = a[j];
+                    a[j] = a[j-1];
+                    a[j-1] = tmp;
+                }
+                else
+                    break;
+            }
+        }
+    }
 }

 }


added Validates.each

added Validates.each

--- src/ras3r/Validates.as
+++ src/ras3r/Validates.as
@@ -33,6 +33,24 @@
 				var p:String = e.property.toString();
 				return Boolean(object[p] == object[p.replace('_confirmation', '')]);
 			});
+		}
+
+		/**
+		* validates_each('first_name', 'last_name', {
+		* 	message: 	'is invalid',
+		*	allow_nil:	false,
+		*	allow_blank:false,
+		* 	iff: 		function,
+		*	unless: 	function
+		* }, function (e:PropertyChangeEvent) :Boolean {
+		* 	return (e.newValue == 'Bob');
+		* })
+		**/
+		static public function each (object:Object, ...attr_names) :void
+		{
+			var validator:Function = (extract_options(attr_names) as Function);
+			var options:Hash = new Hash({ message: "{attr} is invalid" }).update(extract_options(attr_names));
+			add_validator(object, attr_names, options, validator);
 		}

 		/**
@@ -74,7 +92,7 @@
 		static public function format_of (object:Object, ...attr_names) :void
 		{
 			var options:Hash = new Hash({ message: "{attr} is invalid" }).update(extract_options(attr_names));
-			add_validator(object, attr_names, options, function (e:Object) :Boolean {
+			add_validator(object, attr_names, options, function (e:PropertyChangeEvent) :Boolean {
 				return Boolean(e.newValue.match(options.using) != null);
 			});
 		}
@@ -89,7 +107,7 @@
 		static public function presence_of (object:Object, ...attr_names) :void
 		{
 			var options:Hash = new Hash({ message: "{attr} can't be blank" }).update(extract_options(attr_names));
-			add_validator(object, attr_names, options, function (e:Object) :Boolean {
+			add_validator(object, attr_names, options, function (e:PropertyChangeEvent) :Boolean {
 				return Boolean(e.newValue);
 			});
 		}
@@ -111,6 +129,7 @@

 					// perform validation, create result object
 					var result:ValidationResult;
+					e.source = object;
 					if (! validator(e))
 					{
 						// INVALID! stop ALL other validators NOW!
@@ -132,7 +151,8 @@
 		static private function extract_options (args:Array) :Object
 		{
 			return (
-				(! (args[(args.length - 1)] is String)) ? args.pop() : {}
+				(typeof args[(args.length - 1)]).match(/function|object/) ? args.pop() : {}
+/*				(! (args[(args.length - 1)] is String)) ? args.pop() : {}*/
 			);
 		}
 	}


Allow Stage-less full-screen detection when ad's getVPAID() method returns an EventDispatcher instead of a reference to the ad's DisplayObject

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -195,7 +195,7 @@
          */
 	    private var _ad:*;

-	        private var _isPaused: Boolean = false;
+        private var _isPaused: Boolean = false;
 		/**
 		 * True if VPAID AdImpression event has been received
 		 */
@@ -223,7 +223,7 @@
          * @param interval The number of milliseconds between polls to
          * JavaScript for viewability information. Defaults to 250.
          */
-        public function OVVAsset(beaconSwfUrl:String = null, id:String = null, stage:Stage=null) {
+        public function OVVAsset(beaconSwfUrl:String = null, id:String = null, adRef:DisplayObject=null) {
             if (!externalInterfaceIsAvailable()) {
                 dispatchEvent(new OVVEvent(OVVEvent.OVVError, {
                     "message": "ExternalInterface unavailable"
@@ -232,8 +232,8 @@
             }

             _id = (id !== null) ? id : "ovv" + Math.floor(Math.random() * 1000000000).toString();
-            _stage = stage;
-
+            _ad = adRef;
+            setStage();
             ExternalInterface.addCallback(_id, flashProbe);
             ExternalInterface.addCallback("onJsReady", onJsReady);

@@ -285,11 +285,6 @@
 			throw "You must pass an EventDispatcher to init event wiring";
 		registerEventHandler(vpaidEventsDispatcher);
 		_vpaidEventsDispatcher = vpaidEventsDispatcher;
-
-		if ((Object)(vpaidEventsDispatcher).hasOwnProperty('getVPAID') && vpaidEventsDispatcher['getVPAID']  is Function) {
-            _ad = (Object)(_vpaidEventsDispatcher).getVPAID();
-            setStage();
-        }
 	}

 	/**
@@ -333,11 +328,6 @@
                 results.volume = _ad['adVolume'];
             }

-            if (!_stage)
-            {
-                return results;
-            }
-
             var displayState:String = getDisplayState(results);
             // StageDisplayState.FULL_SCREEN_INTERACTIVE is available >= Flash Player 11.3
             if (displayState == StageDisplayState.FULL_SCREEN || displayState == 'fullScreenInteractive') {
@@ -457,7 +447,6 @@
                     displayState = StageDisplayState.FULL_SCREEN;
                 }
             }
-
             return displayState;
         }


Stop viewability check interval after viewability event has fired.

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -418,6 +418,7 @@
             _intervalsInView = (results.viewabilityState == OVVCheck.VIEWABLE && results.focus == true) ? _intervalsInView + 1 : 0;

             if (_impressionEventRaised == false && _intervalsInView >= VIEWABLE_IMPRESSION_THRESHOLD) {
+				_intervalTimer.removeEventListener(TimerEvent.TIMER, onIntervalCheck);
                 raiseImpression(results);
             }
             else if (_impressionUnmeasurableEventRaised == false && _intervalsUnMeasurable >= UNMEASURABLE_IMPRESSION_THRESHOLD) {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17263
Author:   chiedozi@adobe.com
Date:     2010-08-11T00:32:44.119690Z

Log Message:
-----------
Added a few property excludes to MobileApplication

QE notes:
Doc notes:
Bugs:
Reviewer: Glenn
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1264340 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
@@ -24,6 +24,15 @@
 use namespace mx_internal;

 [DefaultProperty("sections")]
+
+[Exclude(name="controlBarContent", kind="property")]
+[Exclude(name="controlBarGroup", kind="property")]
+[Exclude(name="controlBarLayout", kind="property")]
+[Exclude(name="controlBarVisible", kind="property")]
+[Exclude(name="layout", kind="property")]
+[Exclude(name="preloaderChromeColor", kind="property")]
+[Exclude(name="rollOverColor", kind="style")]
+[Exclude(name="backgroundAlpha", kind="style")]

 //--------------------------------------
 //  Events


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1264860 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransitionMode.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransitionMode.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 6220
Author:   smgilson@adobe.com
Date:     2009-04-23T19:19:23.764222Z

Log Message:
-----------
More ASDoc work on effects

QE Notes: None
Doc Notes: None
Bugs: -
checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/WipeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/CallActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/SetActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RemoveActionInstance.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1284288 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as
@@ -26,7 +26,16 @@
 use namespace mx_internal;

 /**
- * The instance of the AnimateTransform effect
+ *  The AnimateTransformInstance class implements the instance class for the
+ *  AnimateTransform effect. Flex creates an instance of this class when
+ *  it plays a AnimateTransform effect; you do not create one yourself.
+ *
+ *  @see spark.effects.AnimateTransform
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class AnimateTransformInstance extends AnimateInstance
 {
@@ -37,7 +46,14 @@
     //--------------------------------------------------------------------------

     /**
-     * Constructor
+     *  Constructor.
+     *
+     *  @param target The Object to animate with this effect.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function AnimateTransformInstance(target:Object)
     {
@@ -59,35 +75,35 @@
          "scaleX", "scaleY", "scaleZ"];

     /**
-     * Flag to indicate that this single instance of the transform-related
-     * effects has already started and should not be started again. If there
-     * are several transform effects running in the same effect tree, as children
-     * of a CompositeEffect, then they all run as part of a single instance which
-     * is started when the first transform effect is played. The remainder
-     * of the transform-related effects should not be separately started, since
-     * their animation data is already handled through the single instance.
+     *  Flag to indicate that this single instance of the transform-related
+     *  effects has already started and should not be started again. If there
+     *  are several transform effects running in the same effect tree, as children
+     *  of a CompositeEffect, then they all run as part of a single instance which
+     *  is started when the first transform effect is played. The remainder
+     *  of the transform-related effects should not be separately started, since
+     *  their animation data is already handled through the single instance.
      */
     private var started:Boolean = false;

     /**
-     * @private
-     *
-     * The time that the single transform effect instance will start, relative
-     * to the top-most Effect in the effect containment hierarchy. This time
-     * is used to compare against the start time of new effects adding their
-     * MotionPath data to this single instance to make sure that all keyframes
-     * are positioned correctly relative to each other.
+     *  @private
+     *
+     *  The time that the single transform effect instance will start, relative
+     *  to the top-most Effect in the effect containment hierarchy. This time
+     *  is used to compare against the start time of new effects adding their
+     *  MotionPath data to this single instance to make sure that all keyframes
+     *  are positioned correctly relative to each other.
      */
     private var instanceStartTime:Number = 0;

     /**
-     * Default transform center used in the transform calculations when
-     * transformCenter is null.
+     *  Default transform center used in the transform calculations when
+     *  transformCenter is null.
      */
     private static var defaultTransformCenter:Vector3D = new Vector3D();

     /**
-     * Utility map used in applyValues()
+     *  Utility map used in applyValues()
      */
     private var currentValues:Object = {rotationX:NaN, rotationY:NaN, rotationZ:NaN,
                                         scaleX:NaN, scaleY:NaN, scaleZ:NaN,
@@ -97,7 +113,7 @@
                                         _translationX:NaN, _translationY:NaN, _translationZ:NaN};

     /**
-     * Utility structures used in applyValues()
+     *  Utility structures used in applyValues()
      */
     private static var scale:Vector3D = new Vector3D();
     private static var rotation:Vector3D = new Vector3D();
@@ -110,19 +126,31 @@
     //--------------------------------------------------------------------------

     /**
-     * Flag to indicate that this single instance of the transform-related effects
-     * has already been initialized. This flag is used by AnimateTransform to
-     * prevent duplicate initialization of the instance when there are multiple
-     * transform effects feeding into this single instance.
+     *  If true, this single instance of the transform-related effects
+     *  has already been initialized. This property is used by AnimateTransform to
+     *  prevent duplicate initialization of the instance when there are multiple
+     *  transform effects feeding into this single instance.
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var initialized:Boolean = false;

     /**
-     * The center around which the transformations in this effect
-     * occur. In particular, rotations will rotate around this point,
-     * translations will move this point, and scales will scale centered
-     * around this point. If the point is not supplied, then the center
-     * of the target object is assumed.
+     *  The center around which the transformations in this effect
+     *  occur. In particular, rotations rotate around this point,
+     *  translations move this point, and scales scale centered
+     *  around this point. If the point is not supplied, then the center
+     *  of the target object is used.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var transformCenter:Vector3D;

@@ -201,11 +229,20 @@
     }

     /**
-     * Adds the given MotionPath to the set of MotionPaths in this instance, with
-     * the start time relative to the outermost parent effect.
-     * If there is already a MotionPath object for this effect instance that
-     * is acting on the same property as the new MotionPath, then the keyframes
-     * of the new MotionPath are simply added to the existing MotionPath.
+     *  Adds a MotionPath object to the set of MotionPath objects in this instance,
+     *  with the start time relative to the outermost parent effect.
+     *  If there is already a MotionPath object for this effect instance that
+     *  is acting on the same property as the new MotionPath object,
+     *  then the keyframes of the new MotionPath are simply added to the existing MotionPath.
+     *
+     *  @param newMotionPath New MotionPath object.
+     *
+     *  @param newEffectStartTime Start time, in milliseconds, of the new MotionPath object.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function addMotionPath(newMotionPath:MotionPath, newEffectStartTime:Number = 0):void
     {


Added current count using dots beneath numeric counter for total count

--- swfcat.as
+++ swfcat.as
@@ -55,8 +55,10 @@
         /* Badge with a client counter */
         [Embed(source="badge.png")]
         private var BadgeImage:Class;
-        private var client_count_tf:TextField;
-        private var client_count_fmt:TextFormat;
+        private var tot_client_count_tf:TextField;
+        private var tot_client_count_fmt:TextFormat;
+        private var cur_client_count_tf:TextField;
+        private var cur_client_count_fmt:TextFormat;

         public function puts(s:String):void
         {
@@ -66,10 +68,16 @@

         public function update_client_count():void
         {
+            /* Update total client count. */
             if (String(total_proxy_pairs).length == 1)
-                client_count_tf.text = "0" + String(total_proxy_pairs);
+                tot_client_count_tf.text = "0" + String(total_proxy_pairs);
             else
-                client_count_tf.text = String(total_proxy_pairs);
+                tot_client_count_tf.text = String(total_proxy_pairs);
+
+            /* Update current client count. */
+            cur_client_count_tf.text = "";
+            for(var i:Number=0; i<num_proxy_pairs; i++)
+                cur_client_count_tf.appendText(".");;
         }

         public function swfcat()
@@ -86,19 +94,34 @@
             output_text.textColor = 0x44cc44;

             /* Setup client counter for badge. */
-            client_count_fmt = new TextFormat();
-            client_count_fmt.color = 0xFFFFFF;
-            client_count_fmt.align = "center";
-            client_count_fmt.font = "courier-new";
-            client_count_fmt.bold = true;
-            client_count_fmt.size = 10;
-            client_count_tf = new TextField();
-            client_count_tf.width = 20;
-            client_count_tf.height = 17;
-            client_count_tf.background = false;
-            client_count_tf.defaultTextFormat = client_count_fmt;
-            client_count_tf.x=47;
-            client_count_tf.y=3;
+            tot_client_count_fmt = new TextFormat();
+            tot_client_count_fmt.color = 0xFFFFFF;
+            tot_client_count_fmt.align = "center";
+            tot_client_count_fmt.font = "courier-new";
+            tot_client_count_fmt.bold = true;
+            tot_client_count_fmt.size = 10;
+            tot_client_count_tf = new TextField();
+            tot_client_count_tf.width = 20;
+            tot_client_count_tf.height = 17;
+            tot_client_count_tf.background = false;
+            tot_client_count_tf.defaultTextFormat = tot_client_count_fmt;
+            tot_client_count_tf.x=47;
+            tot_client_count_tf.y=0;
+
+            cur_client_count_fmt = new TextFormat();
+            cur_client_count_fmt.color = 0xFFFFFF;
+            cur_client_count_fmt.align = "center";
+            cur_client_count_fmt.font = "courier-new";
+            cur_client_count_fmt.bold = true;
+            cur_client_count_fmt.size = 10;
+            cur_client_count_tf = new TextField();
+            cur_client_count_tf.width = 20;
+            cur_client_count_tf.height = 17;
+            cur_client_count_tf.background = false;
+            cur_client_count_tf.defaultTextFormat = cur_client_count_fmt;
+            cur_client_count_tf.x=47;
+            cur_client_count_tf.y=6;
+

             /* Update the client counter on badge. */
             update_client_count();
@@ -125,7 +148,8 @@
                 addChild(new BadgeImage());
                 /* Tried unsuccessfully to add counter to badge. */
                 /* For now, need two addChilds :( */
-                addChild(client_count_tf);
+                addChild(tot_client_count_tf);
+                addChild(cur_client_count_tf);
             }

             fac_spec = this.loaderInfo.parameters["facilitator"];
@@ -195,15 +219,19 @@

             num_proxy_pairs++;
             total_proxy_pairs++;
+            /* Update the client count on the badge. */
+            update_client_count();
+
             proxy_pair = new ProxyPair(this, client_addr, DEFAULT_TOR_ADDR);
             proxy_pair.addEventListener(Event.COMPLETE, function(e:Event):void {
                 proxy_pair.log("Complete.");
+
                 num_proxy_pairs--;
+                /* Update the client count on the badge. */
+                update_client_count();
             });
             proxy_pair.connect();

-            /* Update the client count on the badge. */
-            update_client_count();
         }

         /* Parse an address in the form "host:port". Returns an Object with


Fix specular color value

Fix specular color value

--- src/aerys/minko/render/shader/part/phong/contribution/AbstractContributionShaderPart.as
+++ src/aerys/minko/render/shader/part/phong/contribution/AbstractContributionShaderPart.as
@@ -162,9 +162,9 @@

 			if (meshBindings.propertyExists(PhongProperties.SPECULAR))
 			{
-				var specular	: SFloat	= meshBindings.getParameter(PhongProperties.SPECULAR, 3);
+				var specular	: SFloat	= meshBindings.getParameter(PhongProperties.SPECULAR, 4);

-				cLightSpecular = multiply(cLightSpecular, specular);
+				cLightSpecular = multiply(cLightSpecular, specular.xyz);
 			}

 			if (meshBindings.propertyExists(PhongProperties.SPECULAR_MAP))


Transferred from the Adobe Open Source Subversion Repository

Revision: 18406
Author:   smgilson@adobe.com
Date:     2010-11-02T13:51:34.338818Z

Log Message:
-----------
ASDoc updates for Transition.autoRevers and Transition.interruptionBehavior

QE notes:
Doc notes:
Bugs:
Reviewer:
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/states/Transition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/states/InterruptionBehavior.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262347 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/states/InterruptionBehavior.as
+++ frameworks/projects/framework/src/mx/states/InterruptionBehavior.as
@@ -12,21 +12,42 @@
 {
     /**
      *  The InterruptionBehavior class defines constants for use with the
-     *  interruptionBehavior property of the Transition class.
+     *  interruptionBehavior property of the mx.states.Transition class.
      *
      *  @see Transition#interruptionBehavior
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public final class InterruptionBehavior
     {
         /**
-         * Specifies that a transition that interrupts another running
-         * transition will end that other transition before starting.
+         *  Specifies that a transition that interrupts another running
+         *  transition ends that other transition before starting.
+         *  The transition ends by calling the end() method
+         *  on all effects in the transition.
+         *  The end() method causes all effects
+         *  to snap to their end state.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.5
+         *  @productversion Flex 4.5
          */
         public static const END:String = "end";

         /**
-         * Specifies that a transition that interrupts another running
-         * transition will stop that other transition in place before starting.
+         *  Specifies that a transition that interrupts another running
+         *  transition stops that other transition in place before starting.
+         *  The transition stops by calling the stop() method
+         *  on all effects in the transition.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.5
+         *  @productversion Flex 4.5
          */
         public static const STOP:String = "stop";
     }


Use either tokenServicesUrl or tokenServiceUrl when building the token service cross-domain policy file URL.

--- src/com/esri/builder/components/serviceBrowser/supportClasses/ServiceDirectoryBuilder.as
+++ src/com/esri/builder/components/serviceBrowser/supportClasses/ServiceDirectoryBuilder.as
@@ -192,7 +192,8 @@
         {
             isServiceSecured = (serverInfo.currentVersion >= 10.01
                 && serverInfo.authInfo
-                && serverInfo.authInfo.isTokenBasedSecurity);
+                && serverInfo.authInfo.isTokenBasedSecurity
+                && (serverInfo.authInfo.tokenServicesUrl || serverInfo.authInfo.tokenServiceUrl));

             if (isServiceSecured)
             {
@@ -207,7 +208,8 @@
                 }

                 const tokenServiceCrossDomainRequest:HTTPService = new HTTPService();
-                tokenServiceCrossDomainRequest.url = extractCrossDomainPolicyFileURL(serverInfo.authInfo.tokenServicesUrl);
+                const tokenServiceURL:String = serverInfo.authInfo.tokenServicesUrl || serverInfo.authInfo.tokenServiceUrl;
+                tokenServiceCrossDomainRequest.url = extractCrossDomainPolicyFileURL(tokenServiceURL);
                 tokenServiceCrossDomainRequest.resultFormat = HTTPService.RESULT_FORMAT_E4X;
                 tokenServiceCrossDomainRequest.addEventListener(ResultEvent.RESULT, tokenServiceSecurityRequest_resultHandler);
                 tokenServiceCrossDomainRequest.addEventListener(FaultEvent.FAULT, tokenServiceSecurityRequest_faultHandler);


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1264401 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as
+++ frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2011 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
 package spark.components.calendarClasses
 {
 import spark.collections.OnDemandDataProvider;


Checking for null for findFirstColumnReference

--- WeaveJS/src/weavejs/data/ColumnUtils.as
+++ WeaveJS/src/weavejs/data/ColumnUtils.as
@@ -771,6 +771,9 @@

 		private static function findFirstColumnReference(node:IWeaveTreeNode):IColumnReference
 		{
+			if (!node)
+				return null;
+
 			var ref:IColumnReference = node as IColumnReference;
 			if (ref && ref.getColumnMetadata())
 				return ref;


SpatialIndex.getKeysGeometryOverlap now passes bounds to
getSimplifiedGeometry to speed up intersection calculation.

Change-Id: I9cb40ec25e9cca8d585a629fc7f3debb00321019

--- WeaveUI/src/weave/utils/SpatialIndex.as
+++ WeaveUI/src/weave/utils/SpatialIndex.as
@@ -306,7 +306,7 @@
 						var genGeomIsPoly:Boolean = genGeom.isPolygon();
 						var genGeomIsLine:Boolean = genGeom.isLine();
 						var genGeomIsPoint:Boolean = genGeom.isPoint();
-						var simplifiedGeom:Vector.<Vector.<BLGNode>> = genGeom.getSimplifiedGeometry(minImportance);
+						var simplifiedGeom:Vector.<Vector.<BLGNode>> = genGeom.getSimplifiedGeometry(minImportance, bounds);

 						// for each part, build the vertices polygon and check for the overlap
 						for (var iPart:int = 0; iPart < simplifiedGeom.length; ++iPart)


array2note命令の高速化など(by eller)

array2note命令の高速化など(by eller)

git-svn-id: 667ccd08e5f160307f6512a0947301cac150914e@20 ceb3ebad-0e53-d446-8596-a45b2b8d79cd

--- package/common/hsp3util.as
+++ package/common/hsp3util.as
@@ -44,7 +44,7 @@
 	;	"hh:mm:ss"̌`Ŏ𓾂ĕϐɑ
 	;	gettimestr ϐ
 	;
-	_p1 = strf("%02d",gettime(4))+":"+strf("%02d",gettime(5))+":"+strf("%02d",gettime(6))
+	_p1 = strf("%02d:",gettime(4))+strf("%02d:",gettime(5))+strf("%02d",gettime(6))
 	return

 #deffunc getdatestr var _p1
@@ -52,7 +52,7 @@
 	;	"yyyy/mm/dd"̌`œt𓾂ĕϐɑ
 	;	getdatestr ϐ
 	;
-	_p1 = strf("%02d",gettime(0))+"/"+strf("%02d",gettime(1))+"/"+strf("%02d",gettime(3))
+	_p1 = strf("%02d/",gettime(0))+strf("%02d/",gettime(1))+strf("%02d",gettime(3))
 	return

 ;--------------------------------------------------------------------------------
@@ -215,8 +215,7 @@
 	;	(posŎw肵ʒuɕ\܂)
 	;
 	winobj "STATIC",_p1,0,WS_VISIBLE|WS_CHILD,_p2,_p3
-	id = stat
-	return id
+	return stat

 #deffunc statictext_set int _p1, str _p2

@@ -235,8 +234,7 @@
 	;	(posŎw肵ʒuɕ\܂)
 	;
 	winobj "SCROLLBAR","",0,WS_VISIBLE|WS_CHILD,_p1,_p2
-	id = stat
-	return id
+	return stat

 #deffunc progbar int _p1, int _p2
@@ -247,8 +245,7 @@
 	;	(posŎw肵ʒuɕ\܂)
 	;
 	winobj "msctls_progress32","",0,WS_VISIBLE|WS_CHILD,_p1,_p2
-	id = stat
-	return id
+	return stat

 #deffunc progbar_step int _p1

@@ -270,7 +267,7 @@

 ;--------------------------------------------------------------------------------

-#deffunc note2array array _p1, str _p2
+#deffunc note2array array _p1, str _p2, local mestmp

 	;
 	;	s̕sƂɔzϐɑ
@@ -278,14 +275,17 @@
 	;	(""Ŏw肵ezϐɕϊ܂)
 	;	(z͂PzɂȂ܂)
 	;
+	;	noteget𗘗pXNvggetstr𗘗p҂ɕύX
+	;	荂ɂȂ܂A1s̒̕ɐ܂B
+	;	ǂ炪ǂł傤H
 	mestmp = _p2
 	notesel mestmp
-	if notemax<=1 : _p1=_p2 : return
-	sdim _p1,64,notemax
-	repeat notemax
-	noteget _p1.cnt, cnt
-	loop
-	sdim mestmp,64			; mestmpNA
+	_notemax = notemax
+	if _notemax<=1 : _p1 = _p2 : return
+	sdim _p1, 64, _notemax
+	repeat _notemax
+		noteget _p1(cnt), cnt
+	loop
 	noteunsel
 	return

@@ -297,10 +297,18 @@
 	;	(ϐ2Ŏw肵P̔zϐϐ1(s)ɕϊ܂)
 	;	(z͂Pẑ݂ɂȂ܂)
 	;
-	if length2(_p2)>0 : dialog "array2note:error" : return
-	_p1 = ""
+	if length2(_p2) > 0 : dialog "array2note:error" : return
+
+	index = 0 : len = 1
 	foreach _p2
-	_p1+=_p2.cnt+"\n"
+		len += strlen(_p2(cnt)) + 2
+	loop
+	sdim _p1, len
+	foreach _p2
+		poke _p1, index, _p2(cnt)
+		index += strsize
+		poke _p1, index, "\n"
+		index += 2
 	loop
 	return


constructor now creates empty arguments array when null is passed

--- src/as3reflect/MetaData.as
+++ src/as3reflect/MetaData.as
@@ -42,7 +42,7 @@
 		 */
 		public function MetaData(name:String, arguments:Array = null) {
 			_name = name;
-			_arguments = arguments;
+			_arguments = (arguments == null) ? [] : arguments;
 		}

 		/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 8443
Author:   smgilson@adobe.com
Date:     2009-07-08T12:32:08.466557Z

Log Message:
-----------
Add ASDoc version info to TextFlowUtil.as, and update ASDoc for change of default layout of SkinnableContainer.as to basic

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/TextFlowUtil.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1280620 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -162,7 +162,7 @@
  *    clipAndEnableScrolling="false"
  *    creationPolicy="auto"
  *    horizontalScrollPosition="null"
- *    layout="VerticalLayout"
+ *    layout="BasicLayout"
  *    verticalScrollPosition="null"
  *
  *    Events


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1284484 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/events/CaretBoundsChangeEvent.as
+++ frameworks/projects/spark/src/spark/events/CaretBoundsChangeEvent.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package spark.events
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4944
Author:   pfarland@adobe.com
Date:     2009-02-13T01:09:09.110158Z

Log Message:
-----------
Minor update to ASDoc to correct class selector example. When referring to a class selector using the styleName attribute, the dot is not used in the styleName value. The dot is simply part of the CSS class selector syntax.

QE: No
Doc: We may want to do a check through the styles documentation examples in case this same issue is there as well.
Bugs:
SDK-16767 - Incorrect class selector examples in CSSStyleDeclaration ASDoc

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262500 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
+++ frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
@@ -40,7 +40,7 @@
  *      .redButton { color: #FF0000 }
  *

  *  affects only components whose styleName property
- *  is set to ".redButton";
+ *  is set to "redButton";
  *  a selector like .redButton is called a class selector
  *  and must start with a dot.

  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 8076
Author:   cframpto@adobe.com
Date:     2009-06-23T01:20:47.519844Z

Log Message:
-----------

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1280132 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -543,11 +543,9 @@
     /**
      *  @private
      *  True if this component sizes itself based on its actual
-     *  contents.  This happens if it's configured for autoSize, it is not
-     *  contained within a scroller and an explicit width and height are not
-     *  specified.
-     */
-    mx_internal var actuallyAutoSizing:Boolean = false;
+     *  contents.
+     */
+    mx_internal var autoSize:Boolean = false;

     //--------------------------------------------------------------------------
     //
@@ -724,6 +722,10 @@
      */
     public function set horizontalScrollPosition(value:Number):void
     {
+        // Convert NaN to 0 to keep TCM happy.
+        if (isNaN(value))
+            value = 0;
+
         if (value == _horizontalScrollPosition)
             return;

@@ -767,6 +769,10 @@
      */
     public function set verticalScrollPosition(value:Number):void
     {
+        // Convert NaN to 0 to keep TCM happy.
+        if (isNaN(value))
+            value = 0;
+
         if (value == _verticalScrollPosition)
             return;

@@ -984,7 +990,7 @@
      *  The height of the control, in lines.
      *
      *
RichEditableText's measure() method does not determine the measured
-     *   size from the text to be displayed, because a RichEditableText often
+     *  size from the text to be displayed, because a RichEditableText often
      *  starts out with no text. Instead it uses this property, and the
      *  widthInChars property to determine its measuredWidth and measuredHeight.
      *  These are similar to the cols and rows of an HTML TextArea.

@@ -1699,10 +1705,7 @@

             displayAsPasswordChanged = false;
         }
-
-        if (heightInLinesChanged || widthInCharsChanged ||
-            clipAndEnableScrollingChanged)
-
+
         if (clipAndEnableScrollingChanged)
         {
             // Not sure if there is any real difference between on and auto.
@@ -1720,7 +1723,6 @@
             clipAndEnableScrollingChanged = false;
         }

-
         if (horizontalScrollPositionChanged)
         {
             var oldHorizontalScrollPosition:Number =
@@ -1765,7 +1767,7 @@
         super.setLayoutBoundsSize(width, height, postLayoutTransform);

         // Only autoSize cares about the real measured width.
-        if (!actuallyAutoSizing)
+        if (!autoSize)
             return;

         // FIXME (egeorgie): Possible optimization - if we reflow the text
@@ -1818,36 +1820,22 @@
      */
     override protected function skipMeasure():Boolean
     {
-        // If explicit width and height then definately not autoSizing.
-        if (super.skipMeasure())
-        {
-            actuallyAutoSizing = false;
-            return true;
-        }
-
-        // FIXME (cframpto): consider moving to commitProperties()
-        if (isNaN(widthInChars) && isNaN(heightInLines))
-        {
-            // Can only autoSize if this component isn't the viewport
-            // of a scroller.  autoSize and scrolling don't play well together.
-            actuallyAutoSizing = !_clipAndEnableScrolling;
-
-            // If we're autoSizing, make sure we aren't scrolled from
-            // previously not being autoSized.
-            if (actuallyAutoSizing)
-            {
-                _textContainerManager.horizontalScrollPosition = 0;
-                _textContainerManager.verticalScrollPosition = 0;
-            }
-        }
-        else
-        {
-            actuallyAutoSizing = false;
-        }
-
-        return false;
-    }
-
+        // If any of width, height, widthInChars or heightInLines is specified
+        // we're not autoSizing.
+        autoSize = isNaN(explicitWidth) && isNaN(explicitHeight) &&
+                   isNaN(heightInLines) && isNaN(widthInChars);
+
+        // If we're autoSizing, make sure we aren't scrolled from
+        // previously not being autoSized.
+        if (autoSize)
+        {
+            _textContainerManager.horizontalScrollPosition = 0;
+            _textContainerManager.verticalScrollPosition = 0;
+        }
+
+        return super.skipMeasure();
+    }
+
     /**
      *  @private
      */
@@ -1855,7 +1843,7 @@
     {
         super.measure();

-        if (actuallyAutoSizing)
+        if (autoSize)
         {
             measureForAutoSize();
         }
@@ -1885,7 +1873,7 @@
         // values and TLF another set of values so there is room for the text
         // to grow.  The composition values for autoSize were set when the
         // text was measured.
-        if (!actuallyAutoSizing)
+        if (!autoSize)
         {
             _textContainerManager.compositionWidth = unscaledWidth;
             _textContainerManager.compositionHeight = unscaledHeight;
@@ -3071,7 +3059,7 @@
         }

         // If autoSize and text size changed, need to remeasure.
-        if (dimensionChanged && actuallyAutoSizing)
+        if (dimensionChanged && autoSize)
         {
             invalidateSize();
             invalidateDisplayList();
@@ -3341,7 +3329,7 @@
         // optionally remeasure and updateContainer.
         if (event.status == InlineGraphicElementStatus.READY)
         {
-            if (actuallyAutoSizing)
+            if (autoSize)
                 invalidateSize();

             invalidateDisplayList();


Transferred from the Adobe Open Source Subversion Repository

Revision: 13075
Author:   aharui@adobe.com
Date:     2009-12-17T22:09:56.306311Z

Log Message:
-----------
Protect against null FocusManager in RichText

QE Notes: None
Doc Notes: None
Bugs: SDK-24675
Reviewer: Corey
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/gumbo/components/TextInput, TextArea

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1280212 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -3646,6 +3646,9 @@
      */
     private function addActivateHandlers():void
     {
+        if (!focusManager)
+            return;
+
         focusManager.addEventListener(FlexEvent.FLEX_WINDOW_ACTIVATE,
             _textContainerManager.activateHandler, false, 0, true)
         focusManager.addEventListener(FlexEvent.FLEX_WINDOW_DEACTIVATE,


copy-paste typo fix

copy-paste typo fix

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5003 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/util/ArrayUtil.as
+++ src/as/com/threerings/util/ArrayUtil.as
@@ -120,10 +120,10 @@

     /**
      * Returns the first item in the array for which the predicate function returns true, or
-     * -1 if no such item was found. The predicate function should be of type:
+     * null if no such item was found. The predicate function should be of type:
      *   function (element :*) :Boolean { }
      *
-     * @return the matching element, or null if no matching element was found
+     * @return the matching element, or null if no matching element was found.
      */
     public static function findIf (arr :Array, predicate :Function) :*
     {


Using appDom here booched the thane build.
Work around my issue another way, which is in some ways smoother: if the
object is a normal object from a normal class, get the class right off
instead of even doing the by-name stuff.
The appDom stuff could conceivably still be desired in the future, but
this will cover just about everything and we can always re-add this extra
business when need it.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5230 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/util/ClassUtil.as
+++ src/as/com/threerings/util/ClassUtil.as
@@ -20,8 +20,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

 package com.threerings.util {
-
-import flash.system.ApplicationDomain;

 import flash.utils.describeType;
 import flash.utils.getQualifiedClassName;
@@ -64,9 +62,9 @@
      * Return a new instance that is the same class as the specified
      * object. The class must have a zero-arg constructor.
      */
-    public static function newInstance (obj :Object, appDom :ApplicationDomain = null) :Object
+    public static function newInstance (obj :Object) :Object
     {
-        var clazz :Class = getClass(obj, appDom);
+        var clazz :Class = getClass(obj);
         return new clazz();
     }

@@ -75,26 +73,18 @@
         return (getQualifiedClassName(obj1) == getQualifiedClassName(obj2));
     }

-    public static function getClass (obj :Object, appDom :ApplicationDomain = null) :Class
+    public static function getClass (obj :Object) :Class
     {
-        return getClassByName(getQualifiedClassName(obj), appDom);
+        if (obj.constructor is Class) {
+            return Class(obj.constructor);
+        }
+        return getClassByName(getQualifiedClassName(obj));
     }

-    public static function getClassByName (cname :String, appDom :ApplicationDomain = null) :Class
+    public static function getClassByName (cname :String) :Class
     {
         try {
-            cname = cname.replace("::", ".");
-            if (appDom != null) {
-                try {
-                    var c :Class = appDom.getDefinition(cname) as Class;
-                    if (c != null) {
-                        return c;
-                    }
-                } catch (err :Error) {
-                    // fall through
-                }
-            }
-            return (getDefinitionByName(cname) as Class);
+            return (getDefinitionByName(cname.replace("::", ".")) as Class);

         } catch (error :ReferenceError) {
             var log :Log = Log.getLog(ClassUtil);


Remove hardcoded width and height from SWF source.

Let it be completely controlled by containing HTML.

--- swfcat.as
+++ swfcat.as
@@ -1,6 +1,8 @@
 package
 {
     import flash.display.Sprite;
+    import flash.display.StageAlign;
+    import flash.display.StageScaleMode;
     import flash.text.TextField;
     import flash.net.Socket;
     import flash.events.Event;
@@ -10,7 +12,6 @@
     import flash.utils.ByteArray;
     import flash.utils.setTimeout;

-    [SWF(width="640", height="480")]
     public class swfcat extends Sprite
     {
         /* David's bridge (nickname eRYaZuvY02FpExln) that also serves a
@@ -39,9 +40,13 @@

         public function swfcat()
         {
+            // Absolute positioning.
+            stage.scaleMode = StageScaleMode.NO_SCALE;
+            stage.align = StageAlign.TOP_LEFT;
+
             output_text = new TextField();
-            output_text.width = 640;
-            output_text.height = 480;
+            output_text.width = stage.stageWidth;
+            output_text.height = stage.stageHeight;
             output_text.background = true;
             output_text.backgroundColor = 0x001f0f;
             output_text.textColor = 0x44CC44;


Added "Approve value" item to context menu

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/ui/ContextMenuBuilder.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/ui/ContextMenuBuilder.as
@@ -19,11 +19,15 @@
 	import org.openforis.collect.event.EventDispatcherFactory;
 	import org.openforis.collect.i18n.Message;
 	import org.openforis.collect.metamodel.proxy.AttributeDefinitionProxy;
+	import org.openforis.collect.metamodel.proxy.CodeAttributeDefinitionProxy;
 	import org.openforis.collect.metamodel.proxy.EntityDefinitionProxy;
 	import org.openforis.collect.model.FieldSymbol;
 	import org.openforis.collect.model.proxy.AttributeProxy;
 	import org.openforis.collect.model.proxy.EntityProxy;
+	import org.openforis.collect.model.proxy.FieldProxy;
 	import org.openforis.collect.model.proxy.NodeProxy;
+	import org.openforis.collect.model.proxy.NodeStateProxy;
+	import org.openforis.collect.model.proxy.RecordProxy$Step;
 	import org.openforis.collect.presenter.RemarksPopUpPresenter;
 	import org.openforis.collect.remoting.service.UpdateRequest;
 	import org.openforis.collect.remoting.service.UpdateRequest$Method;
@@ -89,36 +93,59 @@
 		}

 		public static function buildContextMenu(inputField:InputField):ContextMenu {
+			var step:RecordProxy$Step = Application.activeRecord.step;
 			var cm:ContextMenu = new ContextMenu();
 			var items:Array = new Array();
+
+			addValueItems(items, step, inputField);
+
+			addRowItems(items, step, inputField);
+
+			addApproveValueItems(items, step, inputField);
+
+			cm.customItems = items;
+			cm.hideBuiltInItems();
+			return cm;
+		}
+
+		private static function addValueItems(currentItems:Array, step:RecordProxy$Step, inputField:InputField):void {
 			if(inputField.isEmpty()) {
-				items.push(
+				currentItems.push(
 					BLANK_ON_FORM_MENU_ITEM,
 					DASH_ON_FORM_MENU_ITEM,
 					ILLEGIBLE_MENU_ITEM
 				);
 			}
-			items.push(EDIT_REMARKS_MENU_ITEM);
-
+			currentItems.push(EDIT_REMARKS_MENU_ITEM);
+		}
+
+		private static function addRowItems(currentItems:Array, step:RecordProxy$Step, inputField:InputField):void {
 			var def:AttributeDefinitionProxy = inputField.attributeDefinition;
-			if(def != null) {
-				if(def.multiple) {
-					items.push(DELETE_ATTRIBUTE_MENU_ITEM);
+			if(def != null && inputField.isInDataGroup) {
+				if(def.multiple && ! (def is CodeAttributeDefinitionProxy)) {
+					currentItems.push(DELETE_ATTRIBUTE_MENU_ITEM);
 				}
 				var entityDef:EntityDefinitionProxy = def.parent;
 				if(entityDef != null && entityDef.multiple) {
-					items.push(
+					currentItems.push(
 						REPLACE_BLANKS_WITH_DASH_MENU_ITEM,
 						REPLACE_BLANKS_WITH_STAR_MENU_ITEM
 					);
 					if( !entityDef.enumerated) {
-						items.push(DELETE_ENTITY_MENU_ITEM);
+						currentItems.push(DELETE_ENTITY_MENU_ITEM);
 					}
 				}
-			}
-			cm.customItems = items;
-			cm.hideBuiltInItems();
-			return cm;
+			}
+		}
+
+		private static function addApproveValueItems(currentItems:Array, step:RecordProxy$Step, inputField:InputField):void {
+			var attribute:AttributeProxy = inputField.attribute;
+			if(attribute != null) {
+				var state:NodeStateProxy = attribute.state;
+				if(step == RecordProxy$Step.ENTRY && state != null && state.hasErrors()) {
+					currentItems.push(APPROVE_ERROR_MENU_ITEM);
+				}
+			}
 		}

 		public static function menuItemSelectHandler(event:ContextMenuEvent):void {
@@ -152,6 +179,9 @@
 					case DELETE_ENTITY_MENU_ITEM:
 						AlertUtil.showConfirm("edit.confirmDeleteEntity", null, "global.confirmAlertTitle", performDeleteEntity);
 						break;
+					case APPROVE_ERROR_MENU_ITEM:
+						field.applyChanges(FieldSymbol.CONFIRMED);
+						break
 				}
 			}
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20238
Author:   rfrishbe@adobe.com
Date:     2011-02-09T17:49:16.387306Z

Log Message:
-----------
Fixing two TextInput bugs:

- When scrolling around in the TextInput, sometimes the scroll position would snap back to where the caret was.  This was because we were always setting stage.focus=textField which has that behavior.  We now only set stage.focus = textField if it's not already the TextField.
- When enabled changes on TextInput, the TextField needs to invalidate its size

QE notes: -
Doc notes:
Bugs: SDK-29403, SDK-29453
Reviewer: Glenn, Jason SZ
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1264508 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -638,7 +638,15 @@

     public function set editable(value:Boolean):void
     {
+        if (value == editable)
+            return;
+
         type = value ? TextFieldType.INPUT : TextFieldType.DYNAMIC;
+
+        // changing editability, changes size
+        invalidateTightTextHeight = true;
+        invalidateTextSizeFlag = true;
+
         dispatchEvent(new Event("editableChanged"));
     }

@@ -950,7 +958,11 @@
      */
     public function setFocus():void
     {
-        stage.focus = this;
+        // if we already have the focus, no need to set it again.
+        // if we do indeed set it again, we might end up scrolling the
+        // TextField when we don't want that to happen (SDK-29453)
+        if (stage.focus != this)
+            stage.focus = this;

         if (editable)
             requestSoftKeyboard();


FeathersListBuilder: Adds TODO comment

FeathersListBuilder: Adds TODO comment

--- impl/skein-feathers/src/skein/impl/feathers/components/builder/components/FeathersListBuilder.as
+++ impl/skein-feathers/src/skein/impl/feathers/components/builder/components/FeathersListBuilder.as
@@ -23,6 +23,12 @@

 public class FeathersListBuilder extends FeathersBuilder implements ListBuilder
 {
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
     public function FeathersListBuilder(host:Object, generator:Class=null)
     {
         super();
@@ -270,6 +276,7 @@
         return this;
     }

+    // TODO: Consider support for binding
     public function renderer(value:Object):ListBuilder
     {
         if (value is Function)


Transferred from the Adobe Open Source Subversion Repository

Revision: 19737
Author:   jasonsj@adobe.com
Date:     2011-01-12T22:13:58.979077Z

Log Message:
-----------
SDK-28851 Symbol was added twice when changing enabled state
SDK-28159 Account for empty and null title in ActionBar

Removed unused textAlign code in ButtonSkinBase
Removed B-feature code for focusColor in MobileSkin

QE notes: None
Doc notes:
Bugs:
SDK-28851 CheckBox icon not properly updated when iconPlacement=right, checkbox is disabled and style changed
SDK-28159 ActionBar titleDisplay should measure the same for null and empty title
Reviewer: jszeto
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1265949 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as
@@ -147,7 +147,18 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public var symbolIcon:Object;
+    private var _symbolIcon:DisplayObject;
+
+    /**
+     *  Read-only button symbol graphic. Use commitCurrentState() to specify
+     *  a symbol graphic per-state.
+     *
+     *  @see #commitCurrentState()
+     */
+    public function get symbolIcon():DisplayObject
+    {
+        return _symbolIcon;
+    }

     //--------------------------------------------------------------------------
     //
@@ -215,11 +226,7 @@
             setIcon(currentStateIconClass);

             // swap symbol based on selection state
-            var symbolObj:DisplayObject = (symbolIcon && (symbolIcon is DisplayObject))
-                ? DisplayObject(symbolIcon) : null;
-            var hasSymbol:Boolean = (symbolObj) && contains(symbolObj);
-
-            symbolIcon = null;
+            var hasSymbol:Boolean = (_symbolIcon) && contains(_symbolIcon);

             // remove the old symbol
             if (hasSymbol)
@@ -227,20 +234,27 @@
                 // no current symbol exists
                 // or is existing symbol different than the current symbol
                 if ((currentSymbolClass == null)
-                    || !(symbolObj is currentSymbolClass))
+                    || !(_symbolIcon is currentSymbolClass))
                 {
-                    removeChild(DisplayObject(symbolObj));
+                    removeChild(_symbolIcon);
+                    _symbolIcon = null;
+
                     invalidateDisplayList();
                 }
             }

             // add the current symbol
-            if (currentSymbolClass != null)
-            {
-                symbolIcon = new currentSymbolClass();
-                addChild(DisplayObject(symbolIcon));
+            if ((_symbolIcon == null) && (currentSymbolClass != null))
+            {
+                var currentSymbolInstance:Object = new currentSymbolClass();

-                invalidateDisplayList();
+                if (currentSymbolInstance is DisplayObject)
+                {
+                    _symbolIcon = DisplayObject(currentSymbolInstance);
+                    addChild(_symbolIcon);
+
+                    invalidateDisplayList();
+                }
             }
         }
     }
@@ -261,10 +275,10 @@
         graphics.endFill();

         // position the symbols to align with the background "icon"
-        if (symbolIcon)
+        if (_symbolIcon)
         {
             var currentIcon:DisplayObject = getIconDisplay();
-            setElementPosition(symbolIcon, currentIcon.x, currentIcon.y);
+            setElementPosition(_symbolIcon, currentIcon.x, currentIcon.y);
         }
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1252990 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/charts/src/mx/charts/chartClasses/ChartElement.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/ChartElement.as
@@ -0,0 +1,648 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.chartClasses
+{
+
+import flash.display.DisplayObject;
+import flash.display.Sprite;
+import flash.geom.Rectangle;
+import mx.collections.ArrayCollection;
+import mx.collections.ICollectionView;
+import mx.collections.IList;
+import mx.collections.IViewCursor;
+import mx.collections.ListCollectionView;
+import mx.collections.XMLListCollection;
+import mx.core.mx_internal;
+import mx.events.CollectionEvent;
+import mx.events.CollectionEventKind;
+import mx.charts.chartClasses.ChartBase;
+import flash.geom.Point;
+
+use namespace mx_internal;
+/**
+ *  The ChartElement class is the base class for visual chart elements.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class ChartElement extends DualStyleObject implements IChartElement2
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private static var nextID:uint = 0;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private static function generateGlyphID():uint
+    {
+        return nextID++;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function ChartElement()
+    {
+        super();
+
+        _glyphID = generateGlyphID();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var _userDataProvider:Object;
+
+    /**
+     *  @private
+     */
+    private var _glyphID:uint;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  chart
+    //----------------------------------
+
+    /**
+     *  Refers to the chart component containing this element.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function get chart():ChartBase
+    {
+        var p:DisplayObject = parent;
+
+        while (!(p is ChartBase) && p)
+        {
+            p = p.parent;
+        }
+
+        return p as ChartBase;
+    }
+
+    //----------------------------------
+    //  chartDataProvider
+    //----------------------------------
+
+    [Inspectable(environment="none")]
+
+    /**
+     *  The data provider assigned to the enclosing chart.
+     *  Element types can choose to inherit the data provider
+     *  from the enclosing chart if necessary, or allow developers
+     *  to assign data providers specifically to the element.
+     *  Not all elements are necessarily driven by a data provider.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function set chartDataProvider(value:Object):void
+    {
+        if (_userDataProvider == null)
+            processNewDataProvider(value);
+    }
+
+    //----------------------------------
+    //  cursor
+    //----------------------------------
+
+    /**
+     *  Each ChartElement carries a cursor associated with their dataProvider
+     *  for their own internal use.
+     *  ChartElements have sole ownership of this cursor;
+     *  they can assume no other code will modify its position.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected var cursor:IViewCursor;
+
+    //----------------------------------
+    //  dataProvider
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _dataProvider:ICollectionView;
+
+    [Inspectable]
+
+    /**
+     *  A data provider assigned to the this specific element.
+     *  In general, elements inherit the dataProvider from the enclosing chart.
+     *  But individual elements can override with a specific dataProvider
+     *  of their own.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get dataProvider():Object
+    {
+        return _dataProvider;
+    }
+
+    /**
+     *  @private
+     */
+    public function set dataProvider(value:Object):void
+    {
+        _userDataProvider = value;
+        processNewDataProvider(value);
+    }
+
+    //----------------------------------
+    //  dataTransform
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _dataTransform:DataTransform;
+
+    [Inspectable(environment="none")]
+
+    /**
+     *  The DataTransform object that the element is associated with.
+     *  A DataTransform object represents an association between a set of elements
+     *  and a set of axis objects used to transform those elements
+     *  from data space to screen coordinates and back.
+     *  A chart element uses its associated DataTransform object to calculate
+     *  how to render its data.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get dataTransform():DataTransform
+    {
+        return _dataTransform;
+    }
+
+    /**
+     *  @private
+     */
+    public function set dataTransform(value:DataTransform):void
+    {
+        _dataTransform = value;
+		var n:int = numChildren;
+        for (var i:uint = 0; i < n; i++)
+        {
+            var g:DisplayObject = getChildAt(i);
+            if (_dataTransform && g is IChartElement)
+                IChartElement(g).dataTransform = _dataTransform;
+        }
+
+        if (_dataTransform)
+            _dataTransform.dataChanged();
+
+        invalidateDisplayList();
+    }
+
+    //----------------------------------
+    //  labelContainer
+    //----------------------------------
+
+    [Inspectable(environment="none")]
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get labelContainer():Sprite
+    {
+        return null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function addChild(child:DisplayObject):DisplayObject
+    {
+        super.addChild(child);
+
+        if (_dataTransform && child is IChartElement)
+            IChartElement(child).dataTransform = _dataTransform;
+
+        return child;
+    }
+
+    /**
+     * Adds a child DisplayObject instance to this DisplayObjectContainer
+     * instance. The child is added
+     * at the index position specified. An index of 0 represents the back (bottom)
+     * of the display list for this DisplayObjectContainer object.
+     *
+     *
If you add a child object that already has a different display object container as
+     * a parent, the object is removed from the child list of the other display object container.

+     *
+     * @return The DisplayObject instance that you pass in the
+     * child parameter.
+     *
+     * @param child The DisplayObject instance to add as a child of this
+     * DisplayObjectContainer instance.
+     *
+     * @param index The index position to which the child is added. If you specify a
+     * currently occupied index position, the child object that exists at that position and all
+     * higher positions are moved up one position in the child list.
+         *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function addChildAt(child:DisplayObject,
+                                        index:int):DisplayObject
+    {
+        super.addChildAt(child, index);
+
+        if (_dataTransform && child is IChartElement)
+            IChartElement(child).dataTransform = _dataTransform;
+
+        return child;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Called when a new dataProvider is assigned to the element.
+     *  Subclasses can override and define custom behavior
+     *  when a new dataProvider is assigned.
+     *  This method is called when either the dataProvider property
+     *  is set, or when the chartDataProvider property is set
+     *  if no specific dataProvider has been assigned directly.
+     *
+     *  @param value The data provider. This is typically an Array, ArrayCollection, XMLList, XMLListCollection,
+     *  or similar class.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function processNewDataProvider(value:Object):void
+    {
+        if (_dataProvider != null)
+        {
+            _dataProvider.removeEventListener(
+                CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+        }
+
+        if (value is Array)
+        {
+            value = new ArrayCollection(value as Array);
+        }
+        else if (value is ICollectionView)
+        {
+        }
+        else if (value is IList)
+        {
+            value = new ListCollectionView(IList(value));
+        }
+        else if (value is XMLList)
+        {
+            value = new XMLListCollection(XMLList(value));
+        }
+        else if (value != null)
+        {
+            value = new ArrayCollection([ value ]);
+        }
+        else
+        {
+            value = new ArrayCollection();
+        }
+
+        _dataProvider = ICollectionView(value);
+
+        cursor = _dataProvider.createCursor();
+
+        if (_dataProvider != null) //[Matt] not sure this would ever be null
+        {
+            // Weak listeners to collections and dataproviders.
+            _dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE,
+                collectionChangeHandler, false, 0, true);
+        }
+
+        dataChanged();
+    }
+
+    /**
+     *  Called when the mapping of one or more associated axes changes.
+     *  The DataTransform assigned to this ChartElement will call this method
+     *  when any of the axes it represents is modified in some way.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function mappingChanged():void
+    {
+    }
+
+    /**
+     *  Indicates the underlying data represented by the element has changed.
+     *  You should call this method whenever the data your series or element
+     *  is displaying changes.
+     *  It gives any associated axes a chance to update their ranges
+     *  if appropriate.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function dataChanged():void
+    {
+        invalidateDisplayList();
+        if (_dataTransform)
+            _dataTransform.dataChanged();
+    }
+
+    /**
+     *  Finds the closest data point represented by the element
+     *  under the given coordinates.
+     *
+     *
This method returns either an array of  HitData structures
+     *  describing the datapoints within range.
+     *  Individual ChartElements may choose to only return a single dataPoint
+     *  if their dataPoints are guaranteed not to overlap.

+     *
+     *  @param x The X coordinate.
+     *
+     *  @param y The Y coordinate.
+     *
+     *  @param sensitivity2 How close, in pixels, the pointer must be
+     *  to the exact coordinates to be considered "under".
+     *  This property is similar to the value of the mouseSensitivity
+     *  property of the chart control.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function findDataPoints(x:Number, y:Number,
+                                   sensitivity2:Number):Array /* of HitData */
+    {
+        var result:Array /* of HitData */ = [];
+		var n:int = numChildren;
+        for (var i:int = n - 1; i >= 0; i--)
+        {
+            var g:IChartElement = getChildAt(i) as IChartElement;
+            if (!g || g.visible == false)
+                continue;
+
+            var hds:Array /* of HitData */ = g.findDataPoints(x, y, sensitivity2);
+            if (hds.length == 0)
+                continue;
+
+            result = result.concat(hds);
+        }
+
+        return result;
+    }
+
+    /**
+     *  Returns an array of HitData of the items of all the underlying
+     *  ChartElements whose dataTips are to be shown when
+     *  showAllDataTips is set to true on
+     *  chart
+     *
+     *  @return The HitData objects describing the data points.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function getAllDataPoints():Array /* of HitData */
+    {
+        var result:Array /* of HitData */ = [];
+		var n:int = numChildren;
+        for (var i:int = n - 1; i >= 0; i--)
+        {
+            var g:IChartElement2 = getChildAt(i) as IChartElement2;
+            if (!g || g.visible == false)
+                continue;
+
+            var hds:Array /* of HitData */ = g.getAllDataPoints();
+            if (hds.length == 0)
+                continue;
+
+            result = result.concat(hds);
+        }
+
+        return result;
+    }
+
+    /**
+     *  Creates a unique id to represent the dataPoint
+     *  for comparison purposes.
+     *  Derived classes can call this function with a locally unique
+     *  data point ID to generate an ID that is unique across the application.
+     *
+     *  @param dataPointID The dataPoint's current ID.
+     *
+     *  @return An ID for the dataPoint that is unique across the application.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function createDataID(dataPointID:Number):Number
+    {
+        return (_glyphID << 16) + dataPointID;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function describeData(dimension:String,
+                                 requiredFields:uint):Array /* of BoundedValue */
+    {
+        return [];
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function chartStateChanged(oldState:uint, v:uint):void
+    {
+        var n:int = numChildren;
+        for (var i:int = 0; i < n; i++)
+        {
+            var c:IChartElement = getChildAt(i) as IChartElement;
+            if (c)
+                c.chartStateChanged(oldState, v);
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function collectTransitions(chartState:Number,
+                                       transitions:Array /* of IEffectInstance */):void
+    {
+        var n:int = numChildren;
+        for (var i:int = 0; i < n; i++)
+        {
+            var c:IChartElement = getChildAt(i) as IChartElement;
+            if (c)
+                c.collectTransitions(chartState, transitions);
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function claimStyles(styles:Array /* of Object */, firstAvailable:uint):uint
+    {
+        return firstAvailable;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function dataToLocal(... dataValues):Point
+    {
+        return null;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function localToData(pt:Point):Array /* of Object */
+    {
+        return null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private function collectionChangeHandler(event:CollectionEvent = null):void
+    {
+        if (event && event.kind == CollectionEventKind.RESET)
+            cursor = _dataProvider.createCursor();
+
+        dataChanged();
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20843
Author:   mhorn@adobe.com
Date:     2011-03-14T14:36:04.836183Z

Log Message:
-----------
merge

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262985 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
+++ frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
@@ -14,33 +14,36 @@
     import flash.events.Event;
     import flash.events.EventDispatcher;

-	/**
-	 * OnDemandEventDispatcher serves as a base class for classes that dispatch events but expect listeners
-	 * to be infrequent.  When a class extends OnDemandEventDispatcher instead of the standard EventDispatcher,
-	 * it is trading off a small overhead on every single instance for a slightly larger overhead on only the instances
-	 * that actually have listeners attached to them.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
+    /**
+     * OnDemandEventDispatcher serves as a base class for classes that dispatch events but expect listeners
+     * to be infrequent.  When a class extends OnDemandEventDispatcher instead of the standard EventDispatcher,
+     * it is trading off a small overhead on every single instance for a slightly larger overhead on only the instances
+     * that actually have listeners attached to them.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
     public class OnDemandEventDispatcher implements IEventDispatcher
     {
         private var _dispatcher:EventDispatcher;

-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
     //
     //  Constructor
     //
     //--------------------------------------------------------------------------
+        /**
+         * Constructor.
+         */
         public function OnDemandEventDispatcher()
         {
         }

     /**
-     *  @copy flash.events.EventDispatcher#addEventListener
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -58,7 +61,7 @@

     /**
-     *  @copy flash.events.EventDispatcher#dispatchEvent
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -73,7 +76,7 @@
         }

     /**
-     *  @copy flash.events.EventDispatcher#hasEventListener
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -88,7 +91,7 @@
         }

     /**
-     *  @copy flash.events.EventDispatcher#removeEventListener
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -102,7 +105,7 @@
         }

     /**
-     *  @copy flash.events.EventDispatcher#willTrigger
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 14443
Author:   sameer@adobe.com
Date:     2010-02-26T06:59:48.156260Z

Log Message:
-----------
Merge AdvancedDataGrid mirroring changes from 4.x branch to trunk - revision 14442

QE notes:
Doc notes:
Bugs:
Reviewer:
Tests run:checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/AdvancedDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/listClasses/AdvancedListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1290367 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as
@@ -87,6 +87,10 @@

             o = new UIComponent();
             addChild(DisplayObject(o));
+
+			// The drag proxy should have the same layoutDirection as the
+			// AdvancedDataGrid.
+			o.layoutDirection = advancedDataGrid.layoutDirection;

             var ww:Number = 0;


null values check

null values check

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/DateInputFieldPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/DateInputFieldPresenter.as
@@ -124,8 +124,8 @@
 				var date:DateProxy = _view.attribute.value as DateProxy;
 				if(date != null) {
 					_view.year.text = StringUtil.nullToBlank(date.year);
-					_view.year.text = StringUtil.nullToBlank(date.month);
-					_view.year.text = StringUtil.nullToBlank(date.day);
+					_view.month.text = StringUtil.nullToBlank(date.month);
+					_view.day.text = StringUtil.nullToBlank(date.day);
 				} else {
 					_view.year.text = _view.month.text = _view.day.text = "";
 				}