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 <yishayj...@hotmail.com> wrote:

> Can you please report [1] that bug?
>
>
>
> [1] Issues (github.com) <https://github.com/issues>
>
>
>
> *From: *Roman Isitua <romanisi...@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 <romanisi...@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 <romanisi...@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 <mjest...@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 <romanisi...@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>
>
>
>
>
>
>
>
>
>
>
>

Reply via email to