You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2016/05/10 20:19:18 UTC

[1/3] git commit: [flex-asjs] [refs/heads/develop] - sortOn

Repository: flex-asjs
Updated Branches:
  refs/heads/develop 7a9b582c6 -> 893f0e59e


sortOn


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/7d79ffd8
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/7d79ffd8
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/7d79ffd8

Branch: refs/heads/develop
Commit: 7d79ffd86ec9720106f0d262bbd45374405b39cf
Parents: 1149ba7
Author: matrix3d <40...@qq.com>
Authored: Sat May 7 16:59:58 2016 +0800
Committer: matrix3d <40...@qq.com>
Committed: Sat May 7 16:59:58 2016 +0800

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/utils/Language.as | 59 ++++++++++++++++++++
 1 file changed, 59 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7d79ffd8/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
index 2586e77..0bbe9db 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
@@ -41,6 +41,15 @@ package org.apache.flex.utils
 		//   Static Property
 		//--------------------------------------
 
+		
+		/**
+		 * Helper var for sortOn
+		 */
+		static private var sortNames:Array;
+		static private var sortNamesOne:Array = [];
+		static private var muler:Number;
+		static private var zeroStr:String = String.fromCharCode(0);
+		
 		//--------------------------------------
 		//   Static Function
 		//--------------------------------------
@@ -361,5 +370,55 @@ package org.apache.flex.utils
             return boundMethod;
         };
 
+		/**
+		 * @author lizhi
+		 * @param	arr
+		 * @param	names
+		 * @param	opt
+		 */
+		public static function sortOn(arr:Array,names:Object,opt:int=0):void{
+			if (names is Array){
+				sortNames = names as Array;
+			}else{
+				sortNamesOne[0] = names;
+				sortNames = sortNamesOne;
+			}
+			muler = (Array.DESCENDING & opt) > 0?-1: 1;
+			if(opt&Array.NUMERIC){
+				arr.sort(compareNumber);
+			}else if (opt&Array.CASEINSENSITIVE){
+				arr.sort(compareStringCaseinsensitive);
+			}else{
+				arr.sort(compareString);
+			}
+		}
+		private static function compareStringCaseinsensitive(a:Object, b:Object):int{
+			for each(var n:String in sortNames){
+				var v:int = (a[n]||zeroStr).toString().toLowerCase().localeCompare((b[n]||zeroStr).toString().toLowerCase());
+				if (v != 0){
+					return v*muler;
+				}
+			}
+			return 0;
+		}
+		private static function compareString(a:Object, b:Object):int{
+			for each(var n:String in sortNames){
+				var v:int = (a[n]||zeroStr).toString().localeCompare((b[n]||zeroStr).toString());
+				if (v != 0){
+					return v*muler;
+				}
+			}
+			return 0;
+		}
+		
+		private static function compareNumber(a:Object, b:Object):int{
+			for each(var n:String in sortNames){
+				var v:int = a[n] - b[n];
+				if (v!=0){
+					return v*muler;
+				}
+			}
+			return 0;
+		}
 	}
 }


[3/3] git commit: [flex-asjs] [refs/heads/develop] - Merge branch 'develop' of https://github.com/matrix3d/flex-asjs into develop

Posted by ha...@apache.org.
Merge branch 'develop' of https://github.com/matrix3d/flex-asjs into develop

# By matrix3d
# Via matrix3d
* 'develop' of https://github.com/matrix3d/flex-asjs:
  sorton float number
  sortOn

This closes #5


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/893f0e59
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/893f0e59
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/893f0e59

Branch: refs/heads/develop
Commit: 893f0e59e2744db6e0fdb155a389e8fa61bd12f0
Parents: 7a9b582 7713fc0
Author: Harbs <ha...@in-tools.com>
Authored: Tue May 10 23:19:13 2016 +0300
Committer: Harbs <ha...@in-tools.com>
Committed: Tue May 10 23:19:13 2016 +0300

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/utils/Language.as | 60 ++++++++++++++++++++
 1 file changed, 60 insertions(+)
----------------------------------------------------------------------



[2/3] git commit: [flex-asjs] [refs/heads/develop] - sorton float number

Posted by ha...@apache.org.
sorton float number


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/7713fc04
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/7713fc04
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/7713fc04

Branch: refs/heads/develop
Commit: 7713fc04754ef5067f2aeaf220e2e433d82a4b79
Parents: 7d79ffd
Author: matrix3d <40...@qq.com>
Authored: Sat May 7 17:24:59 2016 +0800
Committer: matrix3d <40...@qq.com>
Committed: Sat May 7 17:24:59 2016 +0800

----------------------------------------------------------------------
 .../Core/src/main/flex/org/apache/flex/utils/Language.as      | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7713fc04/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
index 0bbe9db..70560cd 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
@@ -413,9 +413,10 @@ package org.apache.flex.utils
 		
 		private static function compareNumber(a:Object, b:Object):int{
 			for each(var n:String in sortNames){
-				var v:int = a[n] - b[n];
-				if (v!=0){
-					return v*muler;
+				if (a[n]>b[n]){
+					return muler;
+				}else if (a[n]<b[n]){
+					return -muler;
 				}
 			}
 			return 0;