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>'].