nihavend opened a new issue #755: Binding function is called after the static 
function in component
URL: https://github.com/apache/royale-asjs/issues/755
 
 
   ImageContainer.resolveStatus(data) is called before the data is bind.
   
   Break points : 
   
   
![image](https://user-images.githubusercontent.com/5983818/76455794-25250600-63e7-11ea-8b2a-3b804a3db7ec.png)
   
   
   First pause for breakpoint :
   
   
![image](https://user-images.githubusercontent.com/5983818/76455825-30783180-63e7-11ea-93a5-dfe6cf041fc7.png)
   
   Call stack : 
   
   
![image](https://user-images.githubusercontent.com/5983818/76455864-3e2db700-63e7-11ea-9fdd-e805593b3cc7.png)
   
   
   Second pause for breakpoint :
   
   
![image](https://user-images.githubusercontent.com/5983818/76455907-4dad0000-63e7-11ea-9dc1-f498980f894d.png)
   
   Call Stack : 
   
   
![image](https://user-images.githubusercontent.com/5983818/76455966-5a315880-63e7-11ea-9d5b-3a3887e05d17.png)
   
   Image is not displayed :
   
   
![image](https://user-images.githubusercontent.com/5983818/76456291-cf049280-63e7-11ea-8a81-357005249d85.png)
   
   
   
![image](https://user-images.githubusercontent.com/5983818/76456220-bf854980-63e7-11ea-92e9-0370ec9bf81d.png)
   
   
   Here are three sources :
   
   FindBug.xml
   
        <?xml version="1.0" encoding="latin5" ?>
   
        <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"
                           height="600" width="800"
                           currentState="anaSayfaState"
                           xmlns:jobdetail="main.mtest.*" 
                           
creationComplete="group1_creationCompleteHandler(event)">
   
        <fx:Metadata>
                [ResourceBundle("messages")]
        </fx:Metadata>
        
        <fx:Script>
                <![CDATA[
                        import mx.collections.ArrayCollection;
                        
                        public var jobListXml:XML = 
                                <jobList netTreeEnablable="false" 
netTreeDisablable="false" >
                                        <genericJob  Id="1" 
groupId="iot-insights">
                                                <visualParams>
                                                        <statu>9</statu>
                                                </visualParams>
                                        </genericJob>
                                </jobList>;
                        
                        import mx.events.FlexEvent;
                        import mx.collections.XMLListCollection;
                        import 
mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
   
                        
                        [Bindable]
                        public var jobListXmlCollection:XMLListCollection = new 
XMLListCollection();
                        
                        protected function 
group1_creationCompleteHandler(event:FlexEvent):void {
                                jobListXmlCollection.source = 
jobListXml.children();
                        }
                ]]>
        </fx:Script>
        
        <mx:Panel title="AdvancedDataGrid Control Example"
                          paddingBottom="10" paddingTop="10" paddingLeft="10" 
paddingRight="10"
                          height="100%" width="100%">
                
                <mx:AdvancedDataGrid id="pinaraJobList" width="100%" 
height="100%" dataProvider="{jobListXmlCollection}">        
     
                        <mx:columns>
                                <mx:AdvancedDataGridColumn 
headerText="{resourceManager.getString('messages', 'stateGrid')}" 
width="{this.pinaraJobList.width * 0.10}">
                                        <mx:itemRenderer>
                                                <fx:Component>
                                                        
<s:MXAdvancedDataGridItemRenderer>
                                                                <s:layout>
                                                                        
<s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
                                                                </s:layout>
                                                                
<jobdetail:StateImageItem id="stateImageItem" data="{data}"/>
                                                        
</s:MXAdvancedDataGridItemRenderer>
                                                </fx:Component>
                                        </mx:itemRenderer>
                                </mx:AdvancedDataGridColumn>
                        </mx:columns>
   
                </mx:AdvancedDataGrid>
                
                
        </mx:Panel>
        
        </s:Application>
   
   
   StateImageItem.mxml
   
   
           <?xml version="1.0" encoding="utf-8"?>
           <s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"; 
                  xmlns:s="library://ns.apache.org/royale/spark" 
                  xmlns:mx="library://ns.apache.org/royale/mx">
                  <fx:Declarations>
                 <!-- Place non-visual elements (e.g., services, value objects) 
here -->
                 </fx:Declarations>
                 <fx:Script>
                        <![CDATA[
                                    [Bindable]
                                    public var data:Object;
                        ]]>
                  </fx:Script>
                  <s:Image source="{ImageContainer.resolveStatus(data)}"/>
            </s:VGroup>
   
   
   ImageContainer.as
   
   
           package main.mtest
           {
                import mx.collections.ArrayList;
        
                public class ImageContainer {
                
                private static var statuImageList:ArrayList;
                
                // Liste için statu ikonları
                
                private static var _clock1:String = '/images/clock1.png';
                private static var _kilit:String = '/images/kilit.png';
                private static var _kosu2:String = '/images/kosu2.png';
                private static var _ok2:String = '/images/ok2.png';
                private static var _error:String = '/images/error.png';
                private static var _timeout:String = '/images/timeout.png';
                private static var _skip:String = '/images/skip.png';
                private static var _stop:String = '/images/stop.png';
                private static var _pause:String = '/images/pause.png';
                private static var _disabled:String = '/images/disabled.png';
                private static var _warning:String = '/images/warning.png';
                
                public static function getStatuImage(statuCode:Number):String { 
                        
                        if(statuImageList == null || statuImageList.length == 
0) {
                                
                                statuImageList = new ArrayList();
                                
                                statuImageList.addItem(clock1)
                                statuImageList.addItem(kilit)
                                statuImageList.addItem(kosu2)
                                statuImageList.addItem(ok2)
                                statuImageList.addItem(error)
                                statuImageList.addItem(timeout)
                                statuImageList.addItem(skip)
                                statuImageList.addItem(stop)
                                statuImageList.addItem(pause)
                                statuImageList.addItem(disabled)
                                statuImageList.addItem(warning)
                        }
                        
                        return statuImageList.getItemAt(statuCode) as String;
                }
                
                public static function resolveStatus(data:Object):String {
                        
                        var statu:int = XML(data).visualParams.statu;
                        
                        // Alert.show("Vparams : " + data.visualParams);
                        // Alert.show("statu:" + statu + " image:" + 
imageList.getItemAt(statu));
                        
                        return statuImageList.getItemAt(statu) as String;
                }
                
                public static function get clock1():String
                {
                        return _clock1;
                }
                public static function set clock1(clock1:String):void
                {
                        _clock1 = clock1;
                }       
                
                public static function get kilit():String
                {
                        return _kilit;
                }
                public static function set kilit(kilit:String):void
                {
                        _kilit = kilit;
                }       
                
                public static function get kosu2():String
                {
                        return _kosu2;
                }
                public static function set kosu2(kosu2:String):void
                {
                        _kosu2 = kosu2;
                }       
                
                public static function get ok2():String
                {
                        return _ok2;
                }
                public static function set ok2(ok2:String):void
                {
                        _ok2 = ok2;
                }       
                
                public static function get error():String
                {
                        return _error;
                }
                public static function set error(error:String):void
                {
                        _error = error;
                }       
                
                public static function get timeout():String
                {
                        return _timeout;
                }
                public static function set timeout(timeout:String):void
                {
                        _timeout = timeout;
                }       
                
                public static function get skip():String
                {
                        return _skip;
                }
                public static function set skip(skip:String):void
                {
                        _skip = skip;
                }       
                
                public static function get stop():String
                {
                        return _stop;
                }
                public static function set stop(stop:String):void
                {
                        _stop = stop;
                }       
                
                public static function get pause():String
                {
                        return _pause;
                }
                public static function set pause(pause:String):void
                {
                        _pause = pause;
                }       
                
                public static function get disabled():String
                {
                        return _disabled;
                }
                public static function set disabled(disabled:String):void
                {
                        _disabled = disabled;
                }       
                
                public static function get warning():String
                {
                        return _warning;
                }
                public static function set warning(warning:String):void
                {
                        _warning = warning;
                }       
                
                
                private static var _disableJob:String = 
'/images/disableJob.png';
   
                public static function get disableJob():String
                {
                        return _disableJob;
                }
   
                public static function set disableJob(value:String):void
                {
                        _disableJob = value;
                }
   
                private static var _startJob:String = '/images/startJob.png';
   
                public static function get startJob():String
                {
                        return _startJob;
                }
   
                public static function set startJob(value:String):void
                {
                        _startJob = value;
                }
   
                private static var _pauseJob:String = '/images/pauseJob.png';
   
                public static function get pauseJob():String
                {
                        return _pauseJob;
                }
   
                public static function set pauseJob(value:String):void
                {
                        _pauseJob = value;
                }
   
                private static var _enableJob:String = '/images/enableJob.png';
   
                public static function get enableJob():String
                {
                        return _enableJob;
                }
   
                public static function set enableJob(value:String):void
                {
                        _enableJob = value;
                }
   
                private static var _retryJob:String = '/images/retryJob.png';
   
                public static function get retryJob():String
                {
                        return _retryJob;
                }
   
                public static function set retryJob(value:String):void
                {
                        _retryJob = value;
                }
   
                private static var _setSuccessJob:String = 
'/images/setSuccessJob.png';
   
                public static function get setSuccessJob():String
                {
                        return _setSuccessJob;
                }
   
                public static function set setSuccessJob(value:String):void
                {
                        _setSuccessJob = value;
                }
   
                private static var _skipJob:String = '/images/skipJob.png';
   
                public static function get skipJob():String
                {
                        return _skipJob;
                }
   
                public static function set skipJob(value:String):void
                {
                        _skipJob = value;
                }
   
                private static var _stopJob:String = '/images/stopJob.png';
   
                public static function get stopJob():String
                {
                        return _stopJob;
                }
   
                public static function set stopJob(value:String):void
                {
                        _stopJob = value;
                }
   
                private static var _resumeJob:String = '/images/resumeJob.png';
   
                public static function get resumeJob():String
                {
                        return _resumeJob;
                }
   
                public static function set resumeJob(value:String):void
                {
                        _resumeJob = value;
                }
                
                }
                }
   
   
   

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


With regards,
Apache Git Services

Reply via email to