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;