You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@royale.apache.org by GitBox <gi...@apache.org> on 2019/10/22 19:12:30 UTC

[GitHub] [royale-asjs] nihavend opened a new issue #527: Nested states are not behave as expected

nihavend opened a new issue #527: Nested states are not behave as expected
URL: https://github.com/apache/royale-asjs/issues/527
 
 
   "button1" in the source below should never be shown until the state is set to "jobDetailState" 
   but, it looks like the parent container excludeFrom tag overwrites the nested state condition includeIn and when the state changed to "loggedInState" "button1" is shown.
   
   At the bottom the "nevershown" button which has the same state condition with "button1" is never shown as expected because it is not a nested component.
   
   
   	<?xml version="1.0" encoding="utf-8"?>
   	<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
   				   xmlns:s="library://ns.apache.org/royale/spark"
   				   xmlns:mx="library://ns.apache.org/royale/mx"
   				   paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0"
   				   height="100%" width="100%" 
   				   creationComplete="onCreationComplete()"
   				   >
   		
   		<fx:Metadata>
   		</fx:Metadata>
   		
   		<s:states>
   			<s:State name="loggedOutState"/>
   			<s:State name="loggedInState"/>
   			<s:State name="jobDetailState"/>
   		</s:states>
   		
   		<fx:Script>
   			<![CDATA[
   				
   				import mx.formatters.DateFormatter;
   				import org.apache.royale.utils.Timer;
   				
   				[Bindable] 
   				var time:String;
   				
   				private var ticker:Timer;
   				
   				[Bindable]
   				private var counter:Number = 0;
   				
   				protected function button_clickHandler(event:MouseEvent):void {
   					if(currentState == "loggedOutState") {
   						currentState = "loggedInState";
   					} else if(currentState == "loggedInState") {
   						currentState = "loggedOutState";
   					}				
   				}
   				
   				public function showTime():void {
   					ticker = new Timer(1,1);
   					ticker.addEventListener(Timer.TIMER, onTimerComplete);
   					ticker.start();
   					
   					COMPILE::JS
   						{
   							var d = new Date();
   							time = d.toLocaleTimeString() + ' ' + d.toLocaleDateString();
   							
   						}
   				}
   				
   				public function onCreationComplete():void {
   					showTime();
   				}
   				
   				public function onTimerComplete(event:Timer):void {
   					showTime();
   					counter ++;
   				} 
   				
   				
   			]]>
   		</fx:Script>
   		
   		<fx:Declarations>
   		</fx:Declarations>	
   		
   		<s:layout>
   			<s:VerticalLayout gap="10" paddingRight="10" paddingLeft="10" paddingTop="10" paddingBottom="20" />
   		</s:layout>
   		
   		<s:Button id="button" width="200" label="Show/Hide" click="button_clickHandler(event)"/>
   		
   		<mx:Panel title="Form Container Example"
   				  paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10"
   				  height="100%" width="100%">
   			
   			<mx:Text width="100%"
   					 text="Moving from one form field to another triggers the validator."/>
   			
   			<mx:Form width="100%" height="100%" excludeFrom="loggedOutState" >
   				<mx:FormHeading label="Enter values into the form."/>
   				
   				<mx:FormItem label="First name" >
   					<mx:TextInput id="fname" width="200"/>
   				</mx:FormItem>
   				
   				<mx:FormItem label="Date of birth (mm/dd/yyyy)">
   					<mx:TextInput id="dob" width="200"/>
   				</mx:FormItem>
   				
   				<mx:FormItem includeIn="jobDetailState" >
   					<s:Button id="button1" width="200" label="Time : {time}" />
   				</mx:FormItem>			
   				
   				
   			</mx:Form>
   			
   		</mx:Panel>
   		
   		<s:Button id="nevershown" includeIn="jobDetailState" label="Never Shown Button" />
   		
   	</s:Application>
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services