Hi Harbs,

You are right : it is really two different cases.

Why not "viewAdded" (when view is assigned to view manager) and "viewChanged" 
(or selectedViewChanged) ?

(and maybe "viewRemoved" ?)

If a view is added *and* triggers a "active" view change, both events should 
fire.

Hope this helps

Nicolas Granon



> -----Message d'origine-----
> De : Harbs [mailto:harbs.li...@gmail.com]
> Envoyé : lundi 27 novembre 2017 12:40
> À : dev@royale.apache.org
> Objet : Re: [royale-asjs] branch develop updated: Fixed event
> dispatching on tba view change
> 
> I’m not sure that viewChanged is the best event to be dispatching here.
> 
> It turns out that viewChanged is dispatched in two unrelated cases:
> 1. When the IViewManagerView is assigned to the ViewManagerBase.
> 2. When the current view is set by the IViewManagerView.
> 
> The way it is, it’s currently difficult to differentiate between the
> two cases.
> 
> It feels like the correct event to be dispatching for case 2 is
> “currentViewChanged” or “activeViewChanged” or “selectedViewChanged”.
> 
> Thoughts?
> 
> Harbs
> 
> > On Nov 27, 2017, at 1:17 PM, ha...@apache.org wrote:
> >
> > This is an automated email from the ASF dual-hosted git repository.
> >
> > harbs pushed a commit to branch develop in repository
> > https://gitbox.apache.org/repos/asf/royale-asjs.git
> >
> >
> > The following commit(s) were added to refs/heads/develop by this
> push:
> >     new 6711a8d  Fixed event dispatching on tba view change 6711a8d
> is
> > described below
> >
> > commit 6711a8d137ecca2d4dfaa48f1c0689282157df47
> > Author: Harbs <ha...@in-tools.com>
> > AuthorDate: Mon Nov 27 13:17:42 2017 +0200
> >
> >    Fixed event dispatching on tba view change
> >
> >    Removed an extra layoutNeeded
> >    Dispatch viewChanged
> > ---
> > .../org/apache/royale/mobile/beads/TabbedViewManagerView.as      | 9
> +++++++--
> > 1 file changed, 7 insertions(+), 2 deletions(-)
> >
> > diff --git
> >
> a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/
> > beads/TabbedViewManagerView.as
> >
> b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/
> > beads/TabbedViewManagerView.as
> > index 64c7b80..bef33ee 100644
> > ---
> >
> a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/
> > beads/TabbedViewManagerView.as
> > +++
> b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mob
> > +++ ile/beads/TabbedViewManagerView.as
> > @@ -104,6 +104,11 @@ package org.apache.royale.mobile.beads
> >
> >             private var _currentView:IViewManagerView;
> >
> > +           /**
> > +            * @royaleignorecoercion org.apache.royale.core.UIBase
> > +            * @royaleignorecoercion
> org.apache.royale.mobile.IViewManagerView
> > +            * @royaleignorecoercion
> org.apache.royale.mobile.IViewManager
> > +            */
> >             protected function showViewByIndex(index:int):void
> >             {
> >                     var model:ViewManagerModel =
> _strand.getBeadByType(IBeadModel) as
> > ViewManagerModel; @@ -117,9 +122,8 @@ package
> > org.apache.royale.mobile.beads
> >
> >                     COMPILE::JS {
> >                             if (_currentView) {
> > -                                   
> > UIBase(_currentView).element.style["flex-
> grow"] = "1";
> > +                                   (_currentView as
> UIBase).element.style["flex-grow"] = "1";
> >                             }
> > -                           getHost().dispatchEvent(new
> Event("layoutNeeded"));
> >                     }
> >                     COMPILE::SWF {
> >                             if (UIBase(_currentView).style == null) { @@ -
> 131,6 +135,7 @@
> > package org.apache.royale.mobile.beads
> >
> >                     // Now that the view has changed, refresh the layout
> on this component.
> >                     getHost().dispatchEvent(new Event("layoutNeeded"));
> > +                   getHost().dispatchEvent(new Event("viewChanged"));
> >             }
> >             protected function
> insertCurrentView(view:IViewManagerView):void{
> >                     getHost().addElementAt(view,(navigationBar ? 1 : 0));
> >
> > --
> > To stop receiving notification emails like this one, please contact
> > ['"comm...@royale.apache.org" <comm...@royale.apache.org>'].


Reply via email to