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 <[email protected]> wrote:

> @roman, ¿has podido solucionar esto? ¿te funciona el binding? ¿podrías
> compartirlo?
>
>
>
>
>
> *De:* Roman Isitua <[email protected]>
> *Enviado el:* martes, 21 de septiembre de 2021 9:40
> *Para:* [email protected]
> *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 <[email protected]>
> 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 <[email protected]>
> *Enviado el:* lunes, 20 de septiembre de 2021 12:30
> *Para:* [email protected]
> *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 <[email protected]>
> *Enviado el:* lunes, 20 de septiembre de 2021 12:23
> *Para:* [email protected]
> *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 <[email protected]>
> wrote:
>
> Can you please report [1] that bug?
>
>
>
> [1] Issues (github.com) <https://github.com/issues>
>
>
>
> *From: *Roman Isitua <[email protected]>
> *Sent: *Saturday, September 18, 2021 11:21 PM
> *To: *[email protected]
> *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 <[email protected]>
> 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 <[email protected]>
> 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 <[email protected]>
> 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 <[email protected]>
> *Enviado el:* sábado, 18 de septiembre de 2021 18:37
> *Para:* [email protected]
> *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>
>
>
>
>
>
>
>
>
>
>
>
>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd";>
  <modelVersion>4.0.0</modelVersion>

  <groupId>{some.domain - ex org.apache}</groupId>
  <artifactId>{projectartifactname}</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>swf</packaging>

  <name>{project title}</name>

 <properties>
  <royale.framework.version>0.9.9-SNAPSHOT</royale.framework.version>
	<royale.compiler.version>0.9.9-SNAPSHOT</royale.compiler.version>
	<royale.typedefs.version>0.9.9-SNAPSHOT</royale.typedefs.version>

  <royale.showbindingWarnings>-compiler.show-binding-warnings=false;</royale.showbindingWarnings>
  <royale.sourceMapSettings>-source-map=false;</royale.sourceMapSettings>
  <royale.jsDefaultInitializers>-js-default-initializers=true;</royale.jsDefaultInitializers>
  <royale.jsDynamicAccessUnknownMembers>-js-dynamic-access-unknown-members=true;</royale.jsDynamicAccessUnknownMembers>

  <royale.targets>JSRoyale</royale.targets>

  <royale.debug>true</royale.debug>

	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<!--
  If you are using some injection framework
  <royale.keepAS3MetaData>-keep-as3-metadata+=
	 Inject,
	 Dispatcher,
	 EventHandler,
	 PostConstruct,
	 PreDestroy,
	 ViewAdded,
	 ViewRemoved,
	 Bindable,
	 Transient
 </royale.keepAS3MetaData>-->
	<local.config>
	      <!---keep-code-with-metadata=Inject;
	      -compiler.exclude-defaults-css-files=MXRoyale-0.9.9-SNAPSHOT-js.swc:defaults.css;-->
      ${royale.showbindingWarnings}
      ${royale.sourceMapSettings}
      ${royale.jsDefaultInitializers}
      ${royale.jsDynamicAccessUnknownMembers}
		  <!--${royale.keepAS3MetaData}-->
    </local.config>
  </properties>
  <build>
    <sourceDirectory>src</sourceDirectory>
	<resources>
	   <resource>
	      <directory>${basedir}/src/resources</directory>
	      <filtering>true</filtering>
	   </resource>
	</resources>
    <plugins>
      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>royale-maven-plugin</artifactId>
 		<version>${royale.compiler.version}</version>
        <extensions>true</extensions>
        <configuration>
          <mainClass>{mainfile.mxml}</mainClass>
          <targets>${royale.targets}</targets>
          <debug>${royale.debug}</debug>
          <htmlTemplate>${basedir}/src/resources/jewel-index-template.html</htmlTemplate>
		      <allowSubclassOverrides>true</allowSubclassOverrides>
          <additionalCompilerOptions>
			         ${local.config}
		      </additionalCompilerOptions>
        </configuration>
		<dependencies>
			  <dependency>
				<groupId>org.apache.royale.compiler</groupId>
				<artifactId>compiler-jx</artifactId>
				<version>${royale.compiler.version}</version>
			  </dependency>
		</dependencies>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Jewel</artifactId>
      <version>${royale.typedefs.version}</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>HTML</artifactId>
      <version>${royale.typedefs.version}</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>JewelTheme</artifactId>
      <version>${royale.typedefs.version}</version>
      <type>swc</type>
      <scope>theme</scope>
      <classifier>js</classifier>
    </dependency>
  </dependencies>

</project>

Reply via email to