flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jmcl...@apache.org
Subject [17/27] git commit: [flex-sdk] [refs/heads/develop] - require that all members of a FocusManagerGroup are in the same document. This should alleviate the requirement that groupName is unique throughout the UI which will allow radiobutton templates in MX
Date Mon, 21 Oct 2013 10:33:06 GMT
require that all members of a FocusManagerGroup are in the same document.  This should alleviate
the requirement that groupName is unique throughout the UI which will allow radiobutton templates
in MXML and hopefully not break anybody's app


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

Branch: refs/heads/develop
Commit: d011a51626afcfbdf3746cbcbd5b4b013b2537b8
Parents: edd7d0c
Author: Alex Harui <aharui@apache.org>
Authored: Tue Oct 15 09:45:02 2013 -0700
Committer: Alex Harui <aharui@apache.org>
Committed: Wed Oct 16 10:10:35 2013 -0700

----------------------------------------------------------------------
 .../framework/src/mx/managers/FocusManager.as   | 33 +++++++++++++++++---
 1 file changed, 28 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/d011a516/frameworks/projects/framework/src/mx/managers/FocusManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/src/mx/managers/FocusManager.as b/frameworks/projects/framework/src/mx/managers/FocusManager.as
index 6f17a07..64d7b22 100644
--- a/frameworks/projects/framework/src/mx/managers/FocusManager.as
+++ b/frameworks/projects/framework/src/mx/managers/FocusManager.as
@@ -1397,7 +1397,8 @@ public class FocusManager extends EventDispatcher implements IFocusManager
                         if (obj is IFocusManagerGroup)
                         {
                             tg2 = IFocusManagerGroup(obj);
-                            if (tg2.groupName == tg1.groupName && isEnabledAndVisible(obj))
+                            if (tg2.groupName == tg1.groupName && isEnabledAndVisible(obj)
&&
+                                tg2["document"] == tg1["document"])
                             {
                                 if (tg2.selected) 
                                 {
@@ -1412,6 +1413,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
                     
                     if (tg1 != groupElementToFocus)
                     {
+                        var foundAnotherGroup:Boolean = false;
                         // cycle the entire focusable candidates array forward or backward,
                         // wrapping around boundaries, searching for our focus candidate
                         j = i;
@@ -1434,10 +1436,26 @@ public class FocusManager extends EventDispatcher implements IFocusManager
                             obj = focusableCandidates[j];
                             if (isEnabledAndVisible(obj))
                             {
-                                if (obj is IFocusManagerGroup)
+                                if (foundAnotherGroup)
+                                {
+                                    // we're now just trying to find a selected member of
this group
+                                    if (obj is IFocusManagerGroup)
+                                    {
+                                        tg2 = IFocusManagerGroup(obj);
+                                        if (tg2.groupName == tg1.groupName && tg2["document"]
== tg1["document"])
+                                        {
+                                            if (tg2.selected)
+                                            {
+                                                i = j;
+                                                break;
+                                            }
+                                        }
+                                    }
+                                }
+                                else if (obj is IFocusManagerGroup)
                                 {
                                     tg2 = IFocusManagerGroup(obj);
-                                    if (tg2.groupName == tg1.groupName)
+                                    if (tg2.groupName == tg1.groupName && tg2["document"]
== tg1["document"])
                                     {
                                         if (tg2 == groupElementToFocus)
                                         {
@@ -1451,9 +1469,14 @@ public class FocusManager extends EventDispatcher implements IFocusManager
                                     }
                                     else
                                     {
-                                        // element is part of another group, stop (no recursive
search)
+                                        // switch to new group and hunt for selected item
+                                        tg1 = tg2;
                                         i = j;
-                                        break;
+                                        // element is part of another group, stop if selected
+                                        if (tg2.selected)
+                                            break;
+                                        else
+                                            foundAnotherGroup = true;
                                     }
                                 }
                                 else


Mime
View raw message