You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@royale.apache.org by Maria Jose Esteve <mj...@iest.com> on 2021/10/06 09:25:20 UTC

RE: crux not injecting model in view

@roman, ¿has podido solucionar esto? ¿te funciona el binding? ¿podrías compartirlo?


De: Roman Isitua <ro...@gmail.com>
Enviado el: martes, 21 de septiembre de 2021 9:40
Para: users@royale.apache.org
Asunto: Re: crux not injecting model in view

Interesting investigation. I have studied the examples to see if there is a difference in configuration between the example and my code. For now I am yet to see a difference. When I re implemented the code on royale 0.9.7 it worked. I agree further analysis is required.





On Tue, Sep 21, 2021 at 1:32 AM Maria Jose Esteve <mj...@iest.com>> wrote:
Hi,
I have compiled the examples with SDK 0.9.9-SNAPSHOT, SDK 0.9.8 and SDK 0.9.7 and the binding works in all three (There is some anomaly in CruxGitHubCommitLogViewer but I didn't think it was relevant for these tests).

Hiedra.

De: Maria Jose Esteve <mj...@iest.com>>
Enviado el: lunes, 20 de septiembre de 2021 12:30
Para: users@royale.apache.org<ma...@royale.apache.org>
Asunto: RE: crux not injecting model in view

Hi Roman,
If you compile and run the crux SDK examples, does the binding work in 0.9.8? (I can't test it now)
If it works, maybe the problem requires further analysis.

Hiedra

De: Roman Isitua <ro...@gmail.com>>
Enviado el: lunes, 20 de septiembre de 2021 12:23
Para: users@royale.apache.org<ma...@royale.apache.org>
Asunto: Re: crux not injecting model in view


I have logged the issue here

https://github.com/apache/royale-asjs/issues/1151



On Sun, Sep 19, 2021 at 7:21 AM Yishay Weiss <yi...@hotmail.com>> wrote:
Can you please report [1] that bug?

[1] Issues (github.com)<https://github.com/issues>

From: Roman Isitua<ma...@gmail.com>
Sent: Saturday, September 18, 2021 11:21 PM
To: users@royale.apache.org<ma...@royale.apache.org>
Subject: Re: crux not injecting model in view

I got it to work on royale version 0.9.7.

I corrected a mistake I was making as follows

 // [Inject( source = "lovController.lovBO._lovs2", bind = "true" )]
        [Inject( source = "lovController.genericLovs", bind = "true" )]


I was  using

[Inject( source = "lovController.lovBO._lovs2", bind = "true" )]

instead of

 [Inject( source = "lovController.genericLovs", bind = "true" )]




However, I must add that the above change does not work on royale 0.9.8. I tested it again. it still does not work.

I will have to port my work from royale 0.9.8 to 0.9.7.


Regards,

On Sat, Sep 18, 2021 at 8:37 PM Roman Isitua <ro...@gmail.com>> wrote:
Just an update on this issue. I implemented the above using royale 0.9.8.

I decided to try the same thing on royale 0.9.7. It is still working however I can see a log message that is not available when running on 0.9.8

Here it is

warning: no describeType entry for 'lovBO' on non-dynamic type 'LovController'

What is the meaning of this warning ?  From the log below it is clear the setter injection failed. Hence the reason the dropdown is not being populated.


Language.as:254 InjectProcessor set up [Inject( source="logInController.logInParams", bind="true" )] on Bean{ source: [object Object], name: null }
Language.as:254 warning: no describeType entry for 'lovBO' on non-dynamic type 'LovController'
InjectProcessor.as:385 Uncaught Error: Unexpected result
    at org.apache.royale.crux.processors.InjectProcessor.addPropertyBinding (InjectProcessor.as:385)
    at org.apache.royale.crux.processors.InjectProcessor.setUpMetadataTag (InjectProcessor.as:139)
    at org.apache.royale.crux.processors.InjectProcessor.org.apache.royale.crux.processors.BaseMetadataProcessor.setUpMetadataTags (BaseMetadataProcessor.as:81)
    at org.apache.royale.crux.BeanFactory.setUpBean (BeanFactory.as:378)
    at Function.org.apache.royale.crux.CruxManager.setUpView (CruxManager.as:106)
    at Function.org.apache.royale.crux.CruxManager.setUp (CruxManager.as:88)
    at org.apache.royale.crux.BeanFactory.setUpEventHandler (BeanFactory.as:517)
    at FrontEnd.org.apache.royale.events.EventDispatcher.fireListeners (EventDispatcher.as:139)
    at Function.goog.events.EventTarget.dispatchEventInternal_ (eventtarget.js:372)
    at org.apache.royale.crux.beads.JSStageEvents.org_apache_royale_crux_beads_JSStageEvents_mutationDetected (JSStageEvents.as:209)


I have attached the complete log to this mail

On Sat, Sep 18, 2021 at 7:44 PM Roman Isitua <ro...@gmail.com>> wrote:
Thanks for helping out.

I forgot to attach the GenericLOV source code.

Find attached to this email.


On Sat, Sep 18, 2021 at 6:48 PM Maria Jose Esteve <mj...@iest.com>> wrote:
Hi Roman,
I saw your previous code and now I will see this one you attach. I will try to help you BUT I don't know if I will be able to because although I use Crux and amf my implementation is different from yours and I don't control all the concepts (my original project was set up by a Royale expert company).

I'll let you know if I get something.
Hiedra.

De: Roman Isitua <ro...@gmail.com>>
Enviado el: sábado, 18 de septiembre de 2021 18:37
Para: users@royale.apache.org<ma...@royale.apache.org>
Asunto: crux not injecting model in view

I intend to populate a jewel drop down with data from the server. I have configured the controller and service in the Beans.xml file.
From the logs injection happens.

However, I have observed that the model is not injected into the view.

Any ideas ?

My code is implemented as follows

LovBO

 public class LovBO
   {

      /**
         * The [Dispatcher] metadata tag instructs Crux to inject an event dispatcher.
         * Event's dispatched via this dispatcher can trigger event mediators.
         */
        [Dispatcher]
        public var dispatcher : IEventDispatcher;

      [Inject( "lovService" )]
      public var lovService:RemoteObject;

      [Inject]
      public var serviceHelper:ServiceHelper;

       [Bindable]
      public var _lovs:Array;

       [Bindable]
      public var _lovs2:ArrayList;

LovController

 public class LovController
   {
         [Inject]
         public var lovBO:LovBO;

       //  [Bindable]
         public var genericLovs:ArrayList;

       public function LovController()
       {
           trace('  -- LovController -- ');
       }

       /**
         * [PostConstruct] methods are invoked after all dependencies are injected.
         * In this example, we set up a default user after the bean is created.
         */
        [PostConstruct]
        public function fetchLovs() : void
        {

            trace(' -- [PostConstruct] fetch lovs country prefix  -- ');

            //genericLovs = lovBO.lov2;

            lovBO.lov2;
        }

Beans.xml
  <services:LovBO id="lovBO"/>
         <controllers:LovController id="lovController"/>


The application.mxml



<j:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
            xmlns:js="library://ns.apache.org/royale/basic<http://ns.apache.org/royale/basic>"
            xmlns:j="library://ns.apache.org/royale/jewel<http://ns.apache.org/royale/jewel>"
            xmlns:crux="library://ns.apache.org/royale/crux<http://ns.apache.org/royale/crux>"
            xmlns:config="com.spacio.fm.client2.config.*"
            xmlns:views="com.spacio.fm.client2.views.*"
            initialize="setUp;initApp(event);">

    <!-- <fx:Style source="../../main/resources/default.css"/> -->
       <fx:Script>
             <![CDATA[

                   public function setUp():void
                  {
                             tracer('application setUp stub');
                  }

                       private function initApp(event:Event): void
                       {
                           trace("  -- initApp -- ");




                           trace(" -- end of init app -- ");
                       }

              ]]>
      </fx:Script>

    <j:valuesImpl>
        <js:SimpleCSSValuesImpl />
    </j:valuesImpl>



<j:beads>
        <crux:JSStageEvents packageExclusionFilter="_default_"/>
        <crux:Crux>
            <crux:beanProviders>
                <config:Beans/>
            </crux:beanProviders>
            <crux:config>
                <crux:CruxConfig
                    eventPackages="com.spacio.fm.client2.events.*"
                    viewPackages="com.spacio.fm.client2.views.*"
                    />
            </crux:config>
        </crux:Crux>
         <js:ClassAliasBead />
    </j:beads>

    <j:initialView>
        <views:MainView width="100%" height="100%"/>
    </j:initialView>

</j:Application>

MainView.mxml ( I have attached the complete source for the MainView.xml. and the other classes)


<j:View xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:j="library://ns.apache.org/royale/jewel<http://ns.apache.org/royale/jewel>"
    xmlns:js="library://ns.apache.org/royale/basic<http://ns.apache.org/royale/basic>"
    xmlns:html="library://ns.apache.org/royale/html<http://ns.apache.org/royale/html>"
    initComplete="initCompleteHandler(event)"
    xmlns:views="com.spacio.fm.client2.views.*"
    >

    <j:beads>
        <js:SimpleStatesImpl/>
        <js:ViewDataBinding/>
     <!-- <js:ContainerDataBinding/> -->
    </j:beads>

       <j:states>
              <js:State name="joinus" />
              <js:State name="registerFM" />
              <js:State name="loggedIn" />
       </j:states>

     <!-- xmlns:binding="org.apache.royale.binding.*"  xmlns:models="com.spacio.fm.client2.model.*"  xmlns:models="com.spacio.fm.client2.service.*"

       <fx:Script source="MainBean.as">
       </fx:Script> -->
        <fx:Script>
             <![CDATA[
                      import org.apache.royale.jewel.PopUp;
                       import org.apache.royale.events.CloseEvent;
                     import org.apache.royale.jewel.Button;
                     import org.apache.royale.events.MouseEvent;
                     import org.apache.royale.collections.ArrayList;

[Bindable]
      public var genericLovs:ArrayList;

 //example of setter style binding Injection
        [Inject( source = "lovController.lovBO._lovs2", bind = "true" )]
        public function setGenericLovs(val:ArrayList):void
        {
             trace("injected lov array list. hurray !! ");

            this.genericLovs = val;

            trace(" generic lov has been set ! ");
        }

// the dropdown defined as follows



 <j:DropDownList id="phoneCountryPrefix" width="30%" labelField="description" dataProvider="{genericLovs}">
 </j:DropDownList>






RE: crux not injecting model in view

Posted by Maria Jose Esteve <mj...@iest.com>.
Forgive me Roman, I'm going so fast that I didn't realise I hadn't translated.

Hiedra.

De: Roman Isitua <ro...@gmail.com>
Enviado el: miércoles, 6 de octubre de 2021 11:38
Para: users@royale.apache.org
Asunto: Re: crux not injecting model in view

Hi Maria,

Unfortunately, I don't read Spanish yet. 😁

To work around this issue I had to revert to version 0.9.7. I did not use the maven archetype. I used the attached maven pom template that Piotr gave me a while ago. Since then I have not had issues with crux or databinding.


Regards,


On Wed, Oct 6, 2021 at 10:25 AM Maria Jose Esteve <mj...@iest.com>> wrote:
@roman, ¿has podido solucionar esto? ¿te funciona el binding? ¿podrías compartirlo?


De: Roman Isitua <ro...@gmail.com>>
Enviado el: martes, 21 de septiembre de 2021 9:40
Para: users@royale.apache.org<ma...@royale.apache.org>
Asunto: Re: crux not injecting model in view

Interesting investigation. I have studied the examples to see if there is a difference in configuration between the example and my code. For now I am yet to see a difference. When I re implemented the code on royale 0.9.7 it worked. I agree further analysis is required.





On Tue, Sep 21, 2021 at 1:32 AM Maria Jose Esteve <mj...@iest.com>> wrote:
Hi,
I have compiled the examples with SDK 0.9.9-SNAPSHOT, SDK 0.9.8 and SDK 0.9.7 and the binding works in all three (There is some anomaly in CruxGitHubCommitLogViewer but I didn't think it was relevant for these tests).

Hiedra.

De: Maria Jose Esteve <mj...@iest.com>>
Enviado el: lunes, 20 de septiembre de 2021 12:30
Para: users@royale.apache.org<ma...@royale.apache.org>
Asunto: RE: crux not injecting model in view

Hi Roman,
If you compile and run the crux SDK examples, does the binding work in 0.9.8? (I can't test it now)
If it works, maybe the problem requires further analysis.

Hiedra

De: Roman Isitua <ro...@gmail.com>>
Enviado el: lunes, 20 de septiembre de 2021 12:23
Para: users@royale.apache.org<ma...@royale.apache.org>
Asunto: Re: crux not injecting model in view


I have logged the issue here

https://github.com/apache/royale-asjs/issues/1151



On Sun, Sep 19, 2021 at 7:21 AM Yishay Weiss <yi...@hotmail.com>> wrote:
Can you please report [1] that bug?

[1] Issues (github.com)<https://github.com/issues>

From: Roman Isitua<ma...@gmail.com>
Sent: Saturday, September 18, 2021 11:21 PM
To: users@royale.apache.org<ma...@royale.apache.org>
Subject: Re: crux not injecting model in view

I got it to work on royale version 0.9.7.

I corrected a mistake I was making as follows

 // [Inject( source = "lovController.lovBO._lovs2", bind = "true" )]
        [Inject( source = "lovController.genericLovs", bind = "true" )]


I was  using

[Inject( source = "lovController.lovBO._lovs2", bind = "true" )]

instead of

 [Inject( source = "lovController.genericLovs", bind = "true" )]




However, I must add that the above change does not work on royale 0.9.8. I tested it again. it still does not work.

I will have to port my work from royale 0.9.8 to 0.9.7.


Regards,

On Sat, Sep 18, 2021 at 8:37 PM Roman Isitua <ro...@gmail.com>> wrote:
Just an update on this issue. I implemented the above using royale 0.9.8.

I decided to try the same thing on royale 0.9.7. It is still working however I can see a log message that is not available when running on 0.9.8

Here it is

warning: no describeType entry for 'lovBO' on non-dynamic type 'LovController'

What is the meaning of this warning ?  From the log below it is clear the setter injection failed. Hence the reason the dropdown is not being populated.


Language.as:254 InjectProcessor set up [Inject( source="logInController.logInParams", bind="true" )] on Bean{ source: [object Object], name: null }
Language.as:254 warning: no describeType entry for 'lovBO' on non-dynamic type 'LovController'
InjectProcessor.as:385 Uncaught Error: Unexpected result
    at org.apache.royale.crux.processors.InjectProcessor.addPropertyBinding (InjectProcessor.as:385)
    at org.apache.royale.crux.processors.InjectProcessor.setUpMetadataTag (InjectProcessor.as:139)
    at org.apache.royale.crux.processors.InjectProcessor.org.apache.royale.crux.processors.BaseMetadataProcessor.setUpMetadataTags (BaseMetadataProcessor.as:81)
    at org.apache.royale.crux.BeanFactory.setUpBean (BeanFactory.as:378)
    at Function.org.apache.royale.crux.CruxManager.setUpView (CruxManager.as:106)
    at Function.org.apache.royale.crux.CruxManager.setUp (CruxManager.as:88)
    at org.apache.royale.crux.BeanFactory.setUpEventHandler (BeanFactory.as:517)
    at FrontEnd.org.apache.royale.events.EventDispatcher.fireListeners (EventDispatcher.as:139)
    at Function.goog.events.EventTarget.dispatchEventInternal_ (eventtarget.js:372)
    at org.apache.royale.crux.beads.JSStageEvents.org_apache_royale_crux_beads_JSStageEvents_mutationDetected (JSStageEvents.as:209)


I have attached the complete log to this mail

On Sat, Sep 18, 2021 at 7:44 PM Roman Isitua <ro...@gmail.com>> wrote:
Thanks for helping out.

I forgot to attach the GenericLOV source code.

Find attached to this email.


On Sat, Sep 18, 2021 at 6:48 PM Maria Jose Esteve <mj...@iest.com>> wrote:
Hi Roman,
I saw your previous code and now I will see this one you attach. I will try to help you BUT I don't know if I will be able to because although I use Crux and amf my implementation is different from yours and I don't control all the concepts (my original project was set up by a Royale expert company).

I'll let you know if I get something.
Hiedra.

De: Roman Isitua <ro...@gmail.com>>
Enviado el: sábado, 18 de septiembre de 2021 18:37
Para: users@royale.apache.org<ma...@royale.apache.org>
Asunto: crux not injecting model in view

I intend to populate a jewel drop down with data from the server. I have configured the controller and service in the Beans.xml file.
From the logs injection happens.

However, I have observed that the model is not injected into the view.

Any ideas ?

My code is implemented as follows

LovBO

 public class LovBO
   {

      /**
         * The [Dispatcher] metadata tag instructs Crux to inject an event dispatcher.
         * Event's dispatched via this dispatcher can trigger event mediators.
         */
        [Dispatcher]
        public var dispatcher : IEventDispatcher;

      [Inject( "lovService" )]
      public var lovService:RemoteObject;

      [Inject]
      public var serviceHelper:ServiceHelper;

       [Bindable]
      public var _lovs:Array;

       [Bindable]
      public var _lovs2:ArrayList;

LovController

 public class LovController
   {
         [Inject]
         public var lovBO:LovBO;

       //  [Bindable]
         public var genericLovs:ArrayList;

       public function LovController()
       {
           trace('  -- LovController -- ');
       }

       /**
         * [PostConstruct] methods are invoked after all dependencies are injected.
         * In this example, we set up a default user after the bean is created.
         */
        [PostConstruct]
        public function fetchLovs() : void
        {

            trace(' -- [PostConstruct] fetch lovs country prefix  -- ');

            //genericLovs = lovBO.lov2;

            lovBO.lov2;
        }

Beans.xml
  <services:LovBO id="lovBO"/>
         <controllers:LovController id="lovController"/>


The application.mxml



<j:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
            xmlns:js="library://ns.apache.org/royale/basic<http://ns.apache.org/royale/basic>"
            xmlns:j="library://ns.apache.org/royale/jewel<http://ns.apache.org/royale/jewel>"
            xmlns:crux="library://ns.apache.org/royale/crux<http://ns.apache.org/royale/crux>"
            xmlns:config="com.spacio.fm.client2.config.*"
            xmlns:views="com.spacio.fm.client2.views.*"
            initialize="setUp;initApp(event);">

    <!-- <fx:Style source="../../main/resources/default.css"/> -->
       <fx:Script>
             <![CDATA[

                   public function setUp():void
                  {
                             tracer('application setUp stub');
                  }

                       private function initApp(event:Event): void
                       {
                           trace("  -- initApp -- ");




                           trace(" -- end of init app -- ");
                       }

              ]]>
      </fx:Script>

    <j:valuesImpl>
        <js:SimpleCSSValuesImpl />
    </j:valuesImpl>



<j:beads>
        <crux:JSStageEvents packageExclusionFilter="_default_"/>
        <crux:Crux>
            <crux:beanProviders>
                <config:Beans/>
            </crux:beanProviders>
            <crux:config>
                <crux:CruxConfig
                    eventPackages="com.spacio.fm.client2.events.*"
                    viewPackages="com.spacio.fm.client2.views.*"
                    />
            </crux:config>
        </crux:Crux>
         <js:ClassAliasBead />
    </j:beads>

    <j:initialView>
        <views:MainView width="100%" height="100%"/>
    </j:initialView>

</j:Application>

MainView.mxml ( I have attached the complete source for the MainView.xml. and the other classes)


<j:View xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:j="library://ns.apache.org/royale/jewel<http://ns.apache.org/royale/jewel>"
    xmlns:js="library://ns.apache.org/royale/basic<http://ns.apache.org/royale/basic>"
    xmlns:html="library://ns.apache.org/royale/html<http://ns.apache.org/royale/html>"
    initComplete="initCompleteHandler(event)"
    xmlns:views="com.spacio.fm.client2.views.*"
    >

    <j:beads>
        <js:SimpleStatesImpl/>
        <js:ViewDataBinding/>
     <!-- <js:ContainerDataBinding/> -->
    </j:beads>

       <j:states>
              <js:State name="joinus" />
              <js:State name="registerFM" />
              <js:State name="loggedIn" />
       </j:states>

     <!-- xmlns:binding="org.apache.royale.binding.*"  xmlns:models="com.spacio.fm.client2.model.*"  xmlns:models="com.spacio.fm.client2.service.*"

       <fx:Script source="MainBean.as">
       </fx:Script> -->
        <fx:Script>
             <![CDATA[
                      import org.apache.royale.jewel.PopUp;
                       import org.apache.royale.events.CloseEvent;
                     import org.apache.royale.jewel.Button;
                     import org.apache.royale.events.MouseEvent;
                     import org.apache.royale.collections.ArrayList;

[Bindable]
      public var genericLovs:ArrayList;

 //example of setter style binding Injection
        [Inject( source = "lovController.lovBO._lovs2", bind = "true" )]
        public function setGenericLovs(val:ArrayList):void
        {
             trace("injected lov array list. hurray !! ");

            this.genericLovs = val;

            trace(" generic lov has been set ! ");
        }

// the dropdown defined as follows



 <j:DropDownList id="phoneCountryPrefix" width="30%" labelField="description" dataProvider="{genericLovs}">
 </j:DropDownList>






Re: crux not injecting model in view

Posted by Roman Isitua <ro...@gmail.com>.
Hi Maria,

Unfortunately, I don't read Spanish yet. 😁

To work around this issue I had to revert to version 0.9.7. I did not use
the maven archetype. I used the attached maven pom template that Piotr gave
me a while ago. Since then I have not had issues with crux or databinding.


Regards,


On Wed, Oct 6, 2021 at 10:25 AM Maria Jose Esteve <mj...@iest.com> wrote:

> @roman, ¿has podido solucionar esto? ¿te funciona el binding? ¿podrías
> compartirlo?
>
>
>
>
>
> *De:* Roman Isitua <ro...@gmail.com>
> *Enviado el:* martes, 21 de septiembre de 2021 9:40
> *Para:* users@royale.apache.org
> *Asunto:* Re: crux not injecting model in view
>
>
>
> Interesting investigation. I have studied the examples to see if there is
> a difference in configuration between the example and my code. For now I am
> yet to see a difference. When I re implemented the code on royale 0.9.7 it
> worked. I agree further analysis is required.
>
>
>
>
>
>
>
>
>
>
>
> On Tue, Sep 21, 2021 at 1:32 AM Maria Jose Esteve <mj...@iest.com>
> wrote:
>
> Hi,
>
> I have compiled the examples with SDK 0.9.9-SNAPSHOT, SDK 0.9.8 and SDK
> 0.9.7 and the binding works in all three (There is some anomaly in
> CruxGitHubCommitLogViewer but I didn't think it was relevant for these
> tests).
>
>
>
> Hiedra.
>
>
>
> *De:* Maria Jose Esteve <mj...@iest.com>
> *Enviado el:* lunes, 20 de septiembre de 2021 12:30
> *Para:* users@royale.apache.org
> *Asunto:* RE: crux not injecting model in view
>
>
>
> Hi Roman,
>
> If you compile and run the crux SDK examples, does the binding work in
> 0.9.8? (I can't test it now)
>
> If it works, maybe the problem requires further analysis.
>
>
>
> Hiedra
>
>
>
> *De:* Roman Isitua <ro...@gmail.com>
> *Enviado el:* lunes, 20 de septiembre de 2021 12:23
> *Para:* users@royale.apache.org
> *Asunto:* Re: crux not injecting model in view
>
>
>
>
>
> I have logged the issue here
>
>
>
> https://github.com/apache/royale-asjs/issues/1151
>
>
>
>
>
>
>
> On Sun, Sep 19, 2021 at 7:21 AM Yishay Weiss <yi...@hotmail.com>
> wrote:
>
> Can you please report [1] that bug?
>
>
>
> [1] Issues (github.com) <https://github.com/issues>
>
>
>
> *From: *Roman Isitua <ro...@gmail.com>
> *Sent: *Saturday, September 18, 2021 11:21 PM
> *To: *users@royale.apache.org
> *Subject: *Re: crux not injecting model in view
>
>
>
> I got it to work on *royale version 0.9.7*.
>
>
>
> I corrected a mistake I was making as follows
>
>
>
>  // [Inject( source = "lovController.lovBO._lovs2", bind = "true" )]
>
>         [Inject( source = "lovController.genericLovs", bind = "true" )]
>
>
>
>
>
> I was  using
>
>
>
> [Inject( source = "lovController.lovBO._lovs2", bind = "true" )]
>
>
>
> instead of
>
>
>
>  [Inject( source = "lovController.genericLovs", bind = "true" )]
>
>
>
>
>
>
>
>
>
> However, I must add that the above change does not work on *royale 0.9.8*.
> I tested it again. it still does not work.
>
>
>
> I will have to port my work from royale 0.9.8 to 0.9.7.
>
>
>
>
>
> Regards,
>
>
>
> On Sat, Sep 18, 2021 at 8:37 PM Roman Isitua <ro...@gmail.com>
> wrote:
>
> Just an update on this issue. I implemented the above using royale 0.9.8.
>
>
>
> I decided to try the same thing on royale 0.9.7. It is still working
> however I can see a log message that is not available when running on 0.9.8
>
>
>
> Here it is
>
>
>
> *warning: no describeType entry for 'lovBO' on non-dynamic type
> 'LovController'*
>
>
>
> What is the meaning of this warning ?  From the log below it is clear the
> setter injection failed. Hence the reason the dropdown is not being
> populated.
>
>
>
>
>
> Language.as:254 InjectProcessor set up [Inject(
> source="logInController.logInParams", bind="true" )] on Bean{ source:
> [object Object], name: null }
>
> *Language.as:254 warning: no describeType entry for 'lovBO' on non-dynamic
> type 'LovController' InjectProcessor.as:385 Uncaught Error: Unexpected
> result*
>     at
> org.apache.royale.crux.processors.InjectProcessor.addPropertyBinding
> (InjectProcessor.as:385)
>     at org.apache.royale.crux.processors.InjectProcessor.setUpMetadataTag
> (InjectProcessor.as:139)
>     at
> org.apache.royale.crux.processors.InjectProcessor.org.apache.royale.crux.processors.BaseMetadataProcessor.setUpMetadataTags
> (BaseMetadataProcessor.as:81)
>     at org.apache.royale.crux.BeanFactory.setUpBean (BeanFactory.as:378)
>     at Function.org.apache.royale.crux.CruxManager.setUpView
> (CruxManager.as:106)
>     at Function.org.apache.royale.crux.CruxManager.setUp
> (CruxManager.as:88)
>     at org.apache.royale.crux.BeanFactory.setUpEventHandler
> (BeanFactory.as:517)
>     at FrontEnd.org.apache.royale.events.EventDispatcher.fireListeners
> (EventDispatcher.as:139)
>     at Function.goog.events.EventTarget.dispatchEventInternal_
> (eventtarget.js:372)
>     at
> org.apache.royale.crux.beads.JSStageEvents.org_apache_royale_crux_beads_JSStageEvents_mutationDetected
> (JSStageEvents.as:209)
>
>
>
>
>
> I have attached the complete log to this mail
>
>
>
> On Sat, Sep 18, 2021 at 7:44 PM Roman Isitua <ro...@gmail.com>
> wrote:
>
> Thanks for helping out.
>
>
>
> I forgot to attach the GenericLOV source code.
>
>
>
> Find attached to this email.
>
>
>
>
>
> On Sat, Sep 18, 2021 at 6:48 PM Maria Jose Esteve <mj...@iest.com>
> wrote:
>
> Hi Roman,
>
> I saw your previous code and now I will see this one you attach. I will
> try to help you BUT I don't know if I will be able to because although I
> use Crux and amf my implementation is different from yours and I don't
> control all the concepts (my original project was set up by a Royale expert
> company).
>
>
>
> I'll let you know if I get something.
>
> Hiedra.
>
>
>
> *De:* Roman Isitua <ro...@gmail.com>
> *Enviado el:* sábado, 18 de septiembre de 2021 18:37
> *Para:* users@royale.apache.org
> *Asunto:* crux not injecting model in view
>
>
>
> I intend to populate a jewel drop down with data from the server. I have
> configured the controller and service in the Beans.xml file.
>
> From the logs injection happens.
>
>
>
> However, I have observed that the model is not injected into the view.
>
>
>
> Any ideas ?
>
>
>
> My code is implemented as follows
>
>
>
> LovBO
>
>
>
>  public class LovBO
>
>    {
>
>
>
>       /**
>
>
>          * The [Dispatcher] metadata tag instructs Crux to inject an event dispatcher.
>
>
>          * Event's dispatched via this dispatcher can trigger event mediators.
>
>          */
>
>         [Dispatcher]
>
>         public var dispatcher : IEventDispatcher;
>
>
>
>       [Inject( "lovService" )]
>
>       public var lovService:RemoteObject;
>
>
>
>       [Inject]
>
>       public var serviceHelper:ServiceHelper;
>
>
>
>        [Bindable]
>
>       public var _lovs:Array;
>
>
>
>        [Bindable]
>
>       public var _lovs2:ArrayList;
>
>
>
> LovController
>
>
>
>  public class LovController
>
>    {
>
>          [Inject]
>
>          public var lovBO:LovBO;
>
>
>
>        //  [Bindable]
>
>          public var genericLovs:ArrayList;
>
>
>
>        public function LovController()
>
>        {
>
>            trace('  -- LovController -- ');
>
>        }
>
>
>
>        /**
>
>
>          * [PostConstruct] methods are invoked after all dependencies are injected.
>
>
>          * In this example, we set up a default user after the bean is created.
>
>          */
>
>         [PostConstruct]
>
>         public function fetchLovs() : void
>
>         {
>
>
>
>             trace(' -- [PostConstruct] fetch lovs country prefix  -- ');
>
>
>
>             //genericLovs = lovBO.lov2;
>
>
>
>             lovBO.lov2;
>
>         }
>
>
>
> Beans.xml
>
>   <services:LovBO id="lovBO"/>
>
>          <controllers:LovController id="lovController"/>
>
>
>
>
>
> The application.mxml
>
>
>
>
>
>
>
> <j:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
>
>             xmlns:js="library://ns.apache.org/royale/basic"
>
>             xmlns:j="library://ns.apache.org/royale/jewel"
>
>             xmlns:crux="library://ns.apache.org/royale/crux"
>
>             xmlns:config="com.spacio.fm.client2.config.*"
>
>             xmlns:views="com.spacio.fm.client2.views.*"
>
>             initialize="setUp;initApp(event);">
>
>
>
>     <!-- <fx:Style source="../../main/resources/default.css"/> -->
>
>        <fx:Script>
>
>              <![CDATA[
>
>
>
>                    public function setUp():void
>
>                   {
>
>                              tracer('application setUp stub');
>
>                   }
>
>
>
>                        private function initApp(event:Event): void
>
>                        {
>
>                            trace("  -- initApp -- ");
>
>
>
>
>
>
>
>
>
>                            trace(" -- end of init app -- ");
>
>                        }
>
>
>
>               ]]>
>
>       </fx:Script>
>
>
>
>     <j:valuesImpl>
>
>         <js:SimpleCSSValuesImpl />
>
>     </j:valuesImpl>
>
>
>
>
>
>
>
> <j:beads>
>
>         <crux:JSStageEvents packageExclusionFilter="_default_"/>
>
>         <crux:Crux>
>
>             <crux:beanProviders>
>
>                 <config:Beans/>
>
>             </crux:beanProviders>
>
>             <crux:config>
>
>                 <crux:CruxConfig
>
>                     eventPackages="com.spacio.fm.client2.events.*"
>
>                     viewPackages="com.spacio.fm.client2.views.*"
>
>                     />
>
>             </crux:config>
>
>         </crux:Crux>
>
>          <js:ClassAliasBead />
>
>     </j:beads>
>
>
>
>     <j:initialView>
>
>         <views:MainView width="100%" height="100%"/>
>
>     </j:initialView>
>
>
>
> </j:Application>
>
>
>
> MainView.mxml ( I have attached the complete source for the MainView.xml.
> and the other classes)
>
>
>
>
>
> <j:View xmlns:fx="http://ns.adobe.com/mxml/2009"
>
>     xmlns:j="library://ns.apache.org/royale/jewel"
>
>     xmlns:js="library://ns.apache.org/royale/basic"
>
>     xmlns:html="library://ns.apache.org/royale/html"
>
>     initComplete="initCompleteHandler(event)"
>
>     xmlns:views="com.spacio.fm.client2.views.*"
>
>     >
>
>
>
>     <j:beads>
>
>         <js:SimpleStatesImpl/>
>
>         <js:ViewDataBinding/>
>
>      <!-- <js:ContainerDataBinding/> -->
>
>     </j:beads>
>
>
>
>        <j:states>
>
>               <js:State name="joinus" />
>
>               <js:State name="registerFM" />
>
>               <js:State name="loggedIn" />
>
>        </j:states>
>
>
>
>
> <!-- xmlns:binding="org.apache.royale.binding.*"  xmlns:models="com.spacio.fm.client2.model.*"  xmlns:models="com.spacio.fm.client2.service.*"
>
>
>
>        <fx:Script source="MainBean.as">
>
>        </fx:Script> -->
>
>         <fx:Script>
>
>              <![CDATA[
>
>                       import org.apache.royale.jewel.PopUp;
>
>                        import org.apache.royale.events.CloseEvent;
>
>                      import org.apache.royale.jewel.Button;
>
>                      import org.apache.royale.events.MouseEvent
> ;
>
>                      import org.apache.royale.collections.ArrayList;
>
>
>
> [Bindable]
>
>       public var genericLovs:ArrayList;
>
>
>
>  //example of setter style binding Injection
>
>         [Inject( source = "lovController.lovBO._lovs2", bind = "true" )]
>
>         public function setGenericLovs(val:ArrayList):void
>
>         {
>
>              trace("injected lov array list. hurray !! ");
>
>
>
>             this.genericLovs = val;
>
>
>
>             trace(" generic lov has been set ! ");
>
>         }
>
>
>
> // the dropdown defined as follows
>
>
>
>
>
>
>
>  <j:DropDownList id="phoneCountryPrefix" width="30%" labelField=
> "description" dataProvider="{genericLovs}">
>
>  </j:DropDownList>
>
>
>
>
>
>
>
>
>
>
>
>