Hi maria,

>From what you shared I think the only difference is the modal property.

I will have to confirm this. I will revert.



On Tue, 23 Nov 2021, 10:04 Maria Jose Esteve, <mjest...@iest.com> wrote:

> Hi guys,
>
> Maybe we are missing something and, perhaps, it would be "interesting" to
> investigate a bit more "when we have time to dedicate to it".....
>
> First I want to say that "there was a time" when this was happening to me:
> crux did not work directly in a PopPup and I had to activate and deactivate
> it manually, as Brian says, BUT at a certain point "it started to work" and
> nowadays it still works for me ☹
>
>
>
> I briefly describe the components and the calling method:
>
>
>
>    - Component to display in the PopUp (= SomePopupContent, from Brian's
>    example):
>       - <j:SectionContent>
>
>
>
>    - <j:beads> <ContainerDataBinding/> </j:beads>
>
>
>
>    - I define injections as follows:
>
>
>
>                                                [Bindable]
>
>
> [Inject(source="shellModel", required="true")]
>
>                                                public var
> shellModel:ShellModel;
>
>
>
>                … source="shellModel", Corresponds to the localId of the
> model defined in the BeanProvider, inside App.mxml
>
>
>
>                                                <crux:BeanProvider>
>
>
> <wp:ShellModel id="shellModel"/>
>
>
> <wp:ShellController/>
>
>                                                </crux:BeanProvider>
>
>
>
>    - Example of Call (the view from where the call is made also has
>    injected models)
>
>
>
>             private var popupAux:PopUp;
>
>             public function showPopUpForm():void
>
>             {
>
>                     var contentPopup:PermissionsPopUp;
>
>                     contentPopup = new PermissionsPopUp();
>
>                     contentPopup.id = "vContentXX";
>
>                     contentPopup.description = "Level: " + tCodigo.text +
> " - " + tDescription.text;
>
>
>
>                     if(_currentResponsiveSize == ResponsiveSizes.PHONE)
>
>                         contentPopup.percentWidth = 80;
>
>                     else
>
>                         contentPopup.width = 500;
>
>                     contentPopup.percentHeight = 80;
>
>                     contentPopup.readOnly = (primaryModel.currentGrState
> != UtilConstants.GRSTATE_EDITING);
>
>                     contentPopup.addEventListener("closePopUp",
> onPopUpClose);
>
>
>
>                     if(!popupAux)
>
>                     {
>
>                         popupAux = new PopUp();
>
>                         popupAux.modal = true;
>
>                         popupAux.content = contentPopup;
>
>                         addElement(popupAux);
>
>                     }
>
>                     else
>
>                     {
>
>                         popupAux.content = contentPopup;
>
>                     }
>
>                 }
>
>
>
>                 if(!popupAux.open)
>
>                     popupAux.open = true;
>
>             }
>
>
>
> Why does it work? I don't know ☹... Roman could you compare this example
> with your completed code?
>
>
>
> Hiedra
>
> *De:* Brian Raymes <brian.ray...@teotech.com>
> *Enviado el:* lunes, 22 de noviembre de 2021 23:29
> *Para:* users@royale.apache.org
> *Asunto:* RE: [EXTERNAL] Re: Crux - ItemRenderer
>
>
>
> To make Crux work within popups, simply dispatch the ADD_BEAN event for
> the content before opening it. For example:
>
>
>
> var somePopupContent:SomePopupContent = new SomePopupContent();
>
> dispatchEvent(new BeanEvent(BeanEvent.ADD_BEAN, somePopupContent));
>
>
>
> var popup:PopUp = new PopUp();
>
> popup.modal = true;
>
> popup.content = somePopupContent;
>
>
>
> addElement(popup);
>
>
>
> popup.open = true;
>
>
>
> Then, before closing, remove it:
>
>
>
> dispatchEvent(new BeanEvent(BeanEvent.REMOVE_BEAN, this));
>
> dispatchEvent(new Event('closePopUp'));
>
>
>
> Hope this helps.
>
>
>
> Brian
>
>
>
>
>
> *From:* Roman Isitua <romanisi...@gmail.com>
> *Sent:* Monday, November 22, 2021 12:33 PM
> *To:* users@royale.apache.org
> *Subject:* [EXTERNAL] Re: Crux - ItemRenderer
>
>
>
> I can confirm that crux setter injection does not work inside pop up. The
> work around I have come up with is to do the setter injection in the parent
> view then pass the variable to my pop.
>
>
>
> By setter injection I mean,
>
>
>
>  [Inject( source = "acctController.estateSearchList", bind = "true" )]
>
>         public function setEstateSearchList(val:ArrayList):void
>
>         {
>
>              trace(" injected estateSearchList. hurray !! ");
>
>
>
>             this.estateSearchList = val;
>
>
>
>             trace(" estateSearchList has been set ! ");
>
>         }
>
>
>
>
>
> However, I have noticed this style of injection works
>
>
>
>   [Inject]
>
>         public var configData:ConfigData;
>
>
>
>
>
> Regards,
>
>
>
>
>
>
>
> On Sun, Nov 21, 2021 at 1:07 AM Greg Dove <greg.d...@gmail.com> wrote:
>
> I can't say for certain Maria, because it's been some time since I used
> Crux.
>
>
>
> Are your renderers in the main app, or are they in a popup? Crux may not
> work inside a popup, without some tweaking and tuning for JSStageEvents,
> iirc.
>
>
> Beyond that I think Crux is not particularly suitable for ItemRenderers.
> At least I would personally try to avoid using it in this case, unless the
> renderer count is always relatively low.
>
>
>
> One of the key differences between the JS implementation vs. the Flash
> implementation is when the bean setup is run to support processing the
> view. This is triggered by 'addedToStage' event, which does not have
> directly comparable support in the browser.
>
> JSStageEvents bead creates a simulated 'addedToStage' event. But the way
> that works is asynchronous (delayed) compared to the way it works in flash
> (which is synchronous) as soon as the renderer is added to the stage. So
> that is one possible reason for things not working the same, because often
> the code that is creating the renderers is also explicitly running code in
> the newly created renderer instance (like setting data and possibly other
> calls). It might be doing this after it has been 'addedToStage' and there
> is no chance for the PostConstruct method to run first, because it would be
> delayed. But if PostConstruct is never running at all then it could be
> related to use in a Popup.
>
> Another thing to check is to make sure the package filtering on the
> JSStageEvents is not excluding your renderers from having the simulated
> events being created.
>
>
>
>
>
>
>
>
>
>
>
> On Sun, Nov 21, 2021 at 11:51 AM Maria Jose Esteve <mjest...@iest.com>
> wrote:
>
> Hi, Is there any explanation for the fact that "[PostConstruct]" does not
> work in the itemrenderers?
>
>
>
> Thx.
>
> Hiedra
>
>

Reply via email to