Hi Roman,
I created a Jewel+crux project with the sdk archetypes [1]. Then, I added your 
files and completed with some other...
The truth is that with all your tests it was complicated for me to know what I 
was doing 😝 so I isolated a small MVC.

I couldn't finish the tests because I still can't connect to the backend you 
sent me in a previous query (http://132...:8080/messagebroker/websocket-amf). 
Could you download the project and make a first check with your localhost?

Let me know what results you get and we'll continue from this point.

[1] 
https://github.com/mjesteve/royale-examples/tree/laboratory/romanisitua/RomanIsitua/ASimpleRoyaleTestApp

Hiedra.

De: Maria Jose Esteve <mjest...@iest.com>
Enviado el: sábado, 18 de septiembre de 2021 19:48
Para: users@royale.apache.org
Asunto: RE: crux not injecting model in view

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<mailto:romanisi...@gmail.com>>
Enviado el: sábado, 18 de septiembre de 2021 18:37
Para: users@royale.apache.org<mailto: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<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>




Reply via email to