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>
MainView.mxml
Description: Binary data
Beans.mxml
Description: Binary data
LovController.as
Description: Binary data
LovBO.as
Description: Binary data
application.mxml
Description: Binary data
