implement containerRoot

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

Branch: refs/heads/tlf
Commit: 54a9fea2f879e8a74399f1f33434b156ec6b2d20
Parents: 8268248
Author: Alex Harui <[email protected]>
Authored: Fri Jun 16 20:56:05 2017 -0700
Committer: Alex Harui <[email protected]>
Committed: Fri Jun 16 22:08:44 2017 -0700

----------------------------------------------------------------------
 .../textLayout/container/ContainerController.as | 85 ++++++++------------
 1 file changed, 34 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/54a9fea2/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
 
b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
index 8baca14..047d497 100644
--- 
a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
+++ 
b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
@@ -215,7 +215,7 @@ package org.apache.flex.textLayout.container
                
                private var _shapeChildren:Array;
                                
-               private var _containerRoot:IParentIUIBase;
+               private var _containerRoot:IEventDispatcher;
                
                /* Controller have a non-zero default width and height so that 
if you construct a text example with a container and don't
                * specify width and height you will still see some text so that 
you can then have a clue what to do to correct its appearance.
@@ -279,29 +279,16 @@ package org.apache.flex.textLayout.container
                        return _rootElement ? 
_rootElement.computedFormat.blockProgression : BlockProgression.TB;
                }
 
-//TODO we probably need platform specific methods to attach events to the root 
        
                /** @private  Determine containerRoot in case the stage is not 
accessible. Normally the root is the stage. */
-//             public function getContainerRoot():DisplayObject
-//             {
-//                     // safe to test for stage existence
-//                     if (_containerRoot == null && _container && 
_container.stage)
-//                     {
-//                             // if the stage is accessible lets use it.
-//                             // trace("BEFORE COMPUTING CONTAINERROOT");
-//                             try
-//                             {
-//                                     var x:int = 
_container.stage.numChildren;
-//                                     _containerRoot = _container.stage;
-//                             }
-//                             catch(e:Error)
-//                             {
-//                                     // TODO: some way to find the highest 
level accessible root???
-//                                     _containerRoot = _container.root;
-//                             }
-//                             // trace("AFTER COMPUTING CONTAINERROOT");
-//                     }
-//                     return _containerRoot;
-//             }
+               public function getContainerRoot():IEventDispatcher
+               {
+                       // safe to test for stage existence
+                       if (_containerRoot == null && _container) // && 
_container.stage)
+                       {
+                _containerRoot = _container.topMostEventDispatcher;            
                
+                       }
+                       return _containerRoot;
+               }
                
                /** 
                 * Returns the flow composer object that composes and 
highlights text into the container that this 
@@ -1810,11 +1797,10 @@ package org.apache.flex.textLayout.container
                 _scrollTimer.stop();
                 _scrollTimer.removeEventListener(Timer.TIMER, 
scrollTimerHandler);
 
-//TODO fix this for FlexJS
-//                if(!containerRoot)
-//                {
-//                    containerRoot = getContainerRoot();
-//                }
+                if(!containerRoot)
+                {
+                    containerRoot = getContainerRoot();
+                }
 
                 if(containerRoot)
                 {
@@ -1958,15 +1944,14 @@ package org.apache.flex.textLayout.container
                        // we need a timer so that the mouse doesn't have to 
continue moving when the mouse is outside the content area
                        if (scrollDirection != 0 && !_scrollTimer) 
                        {
-//TODO deal with platform specific events
-//                             _scrollTimer = new 
Timer(textFlow.configuration.scrollDragDelay);       // 35 ms is the default 
auto-repeat interval for ScrollBars.
-//                             _scrollTimer.addEventListener(Timer.TIMER, 
scrollTimerHandler, false, 0, true);
+                               _scrollTimer = new 
Timer(textFlow.configuration.scrollDragDelay);       // 35 ms is the default 
auto-repeat interval for ScrollBars.
+                               _scrollTimer.addEventListener(Timer.TIMER, 
scrollTimerHandler); // , false, 0, true);
 
-//                             if (getContainerRoot())
-//                             {
-//                                     
getContainerRoot().addEventListener(MouseEvent.MOUSE_UP, scrollTimerHandler, 
false, 0, true);
+                               if (getContainerRoot())
+                               {
+                                       
getContainerRoot().addEventListener(MouseEvent.MOUSE_UP, scrollTimerHandler); 
// , false, 0, true);
 //                                     beginMouseCapture(); // TELL CLIENTS WE 
WANT mouseUpSomewhere events
-//                             }
+                               }
                                _scrollTimer.start();
                        }
                        
@@ -2192,18 +2177,17 @@ package org.apache.flex.textLayout.container
                {
                        if (!_selectListenersAttached)
                        {
-//TODO fix root events
-//                             var containerRoot:DisplayObject = 
getContainerRoot();
-//                             if (containerRoot)
-//                             {
-//                                     
containerRoot.addEventListener(MouseEvent.MOUSE_MOVE, rootMouseMoveHandler, 
false, 0, true); 
-//                                     
containerRoot.addEventListener(MouseEvent.MOUSE_UP,   rootMouseUpHandler, 
false, 0, true);
-//                                     
+                               var containerRoot:IEventDispatcher = 
getContainerRoot();
+                               if (containerRoot)
+                               {
+                                       
containerRoot.addEventListener(MouseEvent.MOUSE_MOVE, rootMouseMoveHandler); // 
, false, 0, true); 
+                                       
containerRoot.addEventListener(MouseEvent.MOUSE_UP,   rootMouseUpHandler); //, 
false, 0, true);
+                                       
 //                                     beginMouseCapture(); // TELL CLIENTS 
THAT WE WANT moueUpSomewhere EVENTS
-//                                     
-//                                     
-//                                     _selectListenersAttached = true;
-//                             }
+                                       
+                                       
+                                       _selectListenersAttached = true;
+                               }
                        }
                        getInteractionHandler().mouseDownHandler(event); 
                }
@@ -2240,12 +2224,11 @@ package org.apache.flex.textLayout.container
                {       
                        if (_selectListenersAttached)
                        {
-//TODO fix root events
-//                             CONFIG::debug { assert(getContainerRoot() != 
null,"No container root"); }
-//                             
getContainerRoot().removeEventListener(MouseEvent.MOUSE_MOVE, 
rootMouseMoveHandler);                                    
-//                             
getContainerRoot().removeEventListener(MouseEvent.MOUSE_UP,   
rootMouseUpHandler);
+                               CONFIG::debug { assert(getContainerRoot() != 
null,"No container root"); }
+                               
getContainerRoot().removeEventListener(MouseEvent.MOUSE_MOVE, 
rootMouseMoveHandler);                                    
+                               
getContainerRoot().removeEventListener(MouseEvent.MOUSE_UP,   
rootMouseUpHandler);
 //                             endMouseCapture(); // TELL CLIENTS WE NO LONGER 
WANT mouseUpSomewhere EVENTS
-//                             _selectListenersAttached = false;
+                               _selectListenersAttached = false;
                        }
                }
                

Reply via email to