Changeset 4042

Show
Ignore:
Timestamp:
08/14/10 12:54:49 (21 months ago)
Author:
mszopinski
Message:

calendar, one-week display
fixes

Location:
ssme/trunk
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • ssme/trunk/flex/Calendar/src/Calendar.mxml

    r4040 r4042  
    251251        import com.kh.ssme.entity.CalendarEntity; 
    252252        import com.kh.ssme.entity.ErrorMessageEntity; 
     253        import com.kh.ssme.entity.TimeFrameEntity; 
     254        import com.kh.ssme.util.DateProperty; 
    253255        import com.kh.ssme.util.DateUtil; 
     256        import com.kh.ssme.util.HashArray; 
    254257        import com.kh.ssme.util.Logger; 
    255258 
     
    280283 
    281284            currentState = "day"; 
    282  
     285            theDayCanvas = canvas_1; 
     286            dayCanvas = [ canvas_1, canvas_2, canvas_3, canvas_4, canvas_5, canvas_6, canvas_7 ]; 
    283287        } 
    284288 
     
    351355 
    352356        private var calendarEntity:CalendarEntity; 
     357        private var currentDay:Date, weekBeginDay:Date, monthBeginDay:Date, dayOfTheWeek:int = 0;  
    353358        private function onCalendarGetResponse(event:Event):void { 
    354359            var result:ConnectorResult = (event as SsmeEvent).eventProperties['result']; 
     
    359364                    Logger.debug( result.lastResult as String, LoggingComponentsEnum.CAL ); 
    360365                    calendarEntity = (new CalendarEntity()).parseJSONString( result.lastResult as String, EVENTS_RECURSION ); 
     366                    currentDay = chosenDate.selectedDate; 
     367                    weekBeginDay = (new DateUtil( currentDay )).weekBegin( 0 ).date; 
     368                    monthBeginDay = (new DateUtil( currentDay )).monthBegin().date; 
     369                    dayOfTheWeek = currentDay.getDay() - weekBeginDay.getDay(); 
    361370                    switch( state.selectedIndex ){  // determine time range 
    362371                        case DAY: { 
     
    388397        } 
    389398 
    390         private var theDayCanvas:DayCanvas = canvas_1; 
    391         private var dayCanvas:Array = [ canvas_1, canvas_2, canvas_3, canvas_4, canvas_5, canvas_6, canvas_7 ]; 
     399        private var theDayCanvas:DayCanvas; 
     400        private var dayCanvas:Array; 
    392401        private function showDayEvents():void { 
    393             canvas_1.currentDay = chosenDate.selectedDate;  
     402            canvas_1.currentDay = currentDay; 
    394403            canvas_1.dataProvider = calendarEntity.timeFramesEntitites; 
     404            //dayCanvas[ dayOfTheWeek ].currentDay = currentDay; 
     405            //dayCanvas[ dayOfTheWeek ].dataProvider = calendarEntity.timeFramesEntitites; 
    395406        } 
    396407 
    397408        private function showWeekEvents():void { 
    398409 
     410            // create data structure 
     411            var dataProviders:Array = [  ], i:int, timeFrame:TimeFrameEntity; 
     412            for(i=0; i<7; i++)  dataProviders.push( new HashArray() ); 
     413 
     414            // divide events among days             
     415            for each( timeFrame in calendarEntity.timeFramesEntitites ){ 
     416                if( timeFrame.from.getDay() == timeFrame.to.getDay() ){ 
     417                    // starts and ends in the same day 
     418                    dataProviders[ timeFrame.from.getDay() ].put( timeFrame.UUID, timeFrame );     
     419                } else { 
     420                    // split over some days so add it to all of them 
     421                    for(i=timeFrame.from.getDay(); i<=timeFrame.to.getDay();i++){ 
     422                        dataProviders[ i ].put( timeFrame.UUID, timeFrame );           
     423                    }                     
     424                } 
     425            } 
     426 
     427            // set dataProviders 
     428            var weekBegin:DateUtil = new DateUtil( weekBeginDay ); 
     429            for(i=0; i<7; i++){ 
     430                (dayCanvas[ i ] as DayCanvas).currentDay = weekBegin.date; 
     431                (dayCanvas[ i ] as DayCanvas).dataProvider = dataProviders[ i ]; 
     432                weekBegin.add( DateProperty.DATE, 1 ); 
     433            } 
    399434        }         
    400435 
  • ssme/trunk/flex/Calendar/src/com/kh/ssme/components/DayCanvas.as

    r4040 r4042  
    2424 
    2525    import com.kh.ssme.entity.TimeFrameEntity; 
    26 import com.kh.ssme.util.DateUtil; 
    27 import com.kh.ssme.util.HashArray; 
    28  
    29 import flash.display.DisplayObject; 
    30  
    31 import mx.containers.Canvas; 
    32 import mx.controls.Label; 
    33 import mx.controls.TextArea; 
    34  
    35 public class DayCanvas extends GridCanvas { 
     26    import com.kh.ssme.util.DateUtil; 
     27    import com.kh.ssme.util.HashArray; 
     28 
     29import com.kh.ssme.util.Logger; 
     30import com.kh.ssme.util.Logger; 
     31 
     32    public class DayCanvas extends GridCanvas { 
    3633 
    3734        public function DayCanvas() { 
     
    4138        public var currentDay:Date; 
    4239 
     40        private var oldWidth:Number, oldHeight:Number; 
    4341        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 
    4442 
    45             if(visible){    // repaint only if visible 
     43            if(visible){    // necessary only if visible 
     44 
    4645                // call first in order to get grid drawn correctly 
    47                 super.updateDisplayList(unscaledWidth, unscaledHeight); 
     46                super.updateDisplayList(unscaledWidth, unscaledHeight);                 
     47 
     48                // call repaint only if dimensions were changed 
     49                if((unscaledWidth+unscaledHeight) - (oldWidth+oldHeight)){ 
     50                    oldWidth = unscaledWidth; 
     51                    oldHeight = unscaledHeight; 
     52                    repaint();     
     53                } 
    4854            } 
    4955        } 
     
    5157        [ArrayElementType("com.kh.ssme.entity.TimeFrameEntity")] 
    5258        private var dataProvider_:HashArray; 
     59        private var eventsMap:HashArray = new HashArray(); 
     60 
    5361        public function set dataProvider(value:HashArray):void{ 
     62            dataProviderAvailable = false; 
     63            eventFieldsUpToDate = false; 
     64            recreateEvents = true; 
    5465            dataProvider_ = value; 
    5566             
     
    5768                if( eventsMap.getValueAt(i) ){ 
    5869                    this.removeChild( eventsMap.getValueAt(i) );                     
    59                     trace( "REMOVE : "+eventsMap.getValueAt(i).data+" - ["+eventsMap.getValueAt(i).data.UUID+"] " ); 
    6070                } 
    6171            } 
    6272            eventsMap.clear(); 
    63              
    64             createEvents(); 
     73            dataProviderAvailable = true;             
     74 
     75            repaint(); 
    6576            validateNow(); 
    6677        } 
     
    6980        }     
    7081 
    71         private var eventsMap:HashArray = new HashArray(); 
    72         public function createEvents():void{ 
    73  
    74             // prepare additional data about events 
    75              
    76  
    77             // create events 
     82        private var dataProviderAvailable:Boolean = false; 
     83        private var recreateEvents:Boolean = false;         
     84        private var eventFieldsUpToDate:Boolean = false; 
     85        public function repaint():void{ 
     86            if(dataProviderAvailable){ 
     87                createEvents(); 
     88                repaintEvents(); 
     89            } 
     90        } 
     91 
     92        /** 
     93         * Create display object for each TimeFrameEntity in dataProvider 
     94         */ 
     95        protected function createEvents():void{ 
     96 
     97            // in order to save time we recreate EventFields 
     98            // only if it is necessary 
     99            if(recreateEvents){ 
     100 
     101                // create events 
     102                var ev:EventField; 
     103                var i:int = 0, timeBegin:int, timeEnd:int; 
     104                var from:DateUtil, to:DateUtil, current:DateUtil = (new DateUtil(currentDay)).dayBegin(); 
     105                for each(var json:TimeFrameEntity in dataProvider_){ 
     106                    ev = new EventField(); 
     107                    eventsMap.put(json.UUID, ev); 
     108 
     109                    ev.eventInfo = new SimpleEventDisplay(); 
     110                    ev.data = json; 
     111                    ev.name = json.UUID; 
     112 
     113                    // event boundaries, index 
     114                    timeBegin = (json.from.getHours() * 4) + ((json.from.getMinutes() as int)/15); 
     115                    timeEnd = (json.to.getHours() * 4) + ((json.to.getMinutes() as int)/15); 
     116                    // check if event exceed current day 
     117                    from = (new DateUtil(json.from)).dayBegin(); 
     118                    to = (new DateUtil(json.to)).dayBegin(); 
     119                    if( current.compare(from) > 0 )    timeBegin = 0; 
     120                    if( current.compare(to) < 0 )       timeEnd = rowsPosition[1].length - 1; 
     121                    // store for future use 
     122                    ev.beginIndex = timeBegin; 
     123                    ev.endIndex = timeEnd; 
     124 
     125                    ev.setStyle("borderThickness", 5); 
     126                    ev.setStyle("cornerRadius", 20); 
     127 
     128                    addChild( ev ); 
     129                } 
     130 
     131                recreateEvents = false; 
     132            } 
     133        } 
     134 
     135        // used by repaint 
     136        private var clusterOfEventsMap:HashArray = new HashArray();         
     137        /** 
     138         * Calculates rank and coordinates for each TimeFrame display object   
     139         */ 
     140        protected function repaintEvents():void{ 
    78141            var ev:EventField; 
    79             var i:int = 0; 
    80             for each(var json:TimeFrameEntity in dataProvider_){                 
    81                 ev = new EventField(); 
    82                 eventsMap.put(json.UUID, ev); 
     142            var countArray:Array; 
     143            var i:int, j:int = 0; 
     144 
     145            // in order to save time we recalculate ranks, clusters etc. 
     146            // only if it is necessary 
     147            if(!eventFieldsUpToDate){ 
     148                //------------------------------------------------ 
     149                // "rank" events 
     150                // count number of events for each quarter 
     151                countArray = new Array(96); 
     152                for each(ev in eventsMap){ 
     153                    for(i=ev.beginIndex; i<ev.endIndex; i++){ 
     154                        if(countArray[i]<0 || isNaN(countArray[i]))     countArray[i]=0; 
     155                        countArray[i]++; 
     156                    } 
     157                } 
     158 
     159                // calculate rank and number of neighbours for each event 
     160                var neighbours:int; 
     161                for each(ev in eventsMap){ 
     162                    neighbours = 0; 
     163                    for(i=ev.beginIndex; i<ev.endIndex; i++)   neighbours = Math.max( neighbours, countArray[i] ); 
     164                    ev.neighbours = neighbours - 1; 
     165                    ev.rank = neighbours*10000 + (ev.endIndex - ev.beginIndex)*100 + ev.beginIndex; 
     166                } 
     167                //------------------------------------------------ 
     168 
     169 
     170                //------------------------------------------------ 
     171                //clustering events into separated groups which don't intersect each other 
     172                var clusterIndex:Array = new Array(96); 
     173                var helpMap:HashArray, lastCreatedClusterID:int = 1; 
     174                var trace:String = ""; 
     175 
     176                // clear old clusters 
     177                clusterOfEventsMap.clear(); 
    83178                 
    84                 ev.eventInfo = new SimpleEventDisplay(); 
    85                 ev.data = json; 
    86                 ev.name = json.UUID; 
    87                 ev.setStyle("borderThickness", 5); 
    88                 ev.setStyle("cornerRadius", 20); 
    89                 trace( "ADD : "+ev.data+" - ["+ev.data.UUID+"] " );                      
    90  
    91                 addChild( ev ); 
    92                 sizeEvent( ev, i ); 
    93                 i += 100; 
    94  
    95             } 
    96  
    97         } 
    98  
    99         private function sizeEvent(ev:EventField, i:int):void{ 
     179                // for each of the events 
     180                for each(ev in eventsMap){ 
     181                    helpMap = new HashArray(); 
     182 
     183                    // check the time span of current event 
     184                    // if there were already clusters defined for this span then collect their ids 
     185                    for(i=ev.beginIndex; i<ev.endIndex; i++){ 
     186                        if(clusterIndex[i]<0 || isNaN(clusterIndex[i]))     clusterIndex[i]=0; 
     187                        if(!helpMap.containsKey(clusterIndex[i]) && clusterIndex[i]>0){ 
     188                            helpMap.put(clusterIndex[i], clusterIndex[i]); 
     189                        } 
     190                    } 
     191 
     192                    if(helpMap.size == 0){  //  helpMap.size == #clusters 
     193                        // there were no clusters so far for this span, 
     194                        // so we 'book' the span and create new cluster on the base of current event 
     195                        for(i=ev.beginIndex; i<ev.endIndex; i++)    clusterIndex[i] = lastCreatedClusterID; 
     196                        clusterOfEventsMap.put(lastCreatedClusterID, [ ev ]); 
     197                        lastCreatedClusterID++; 
     198                    } 
     199                    if(helpMap.size == 1){ 
     200                        // there was one cluster for this span 
     201                        // so we just join current event to cluster we found 
     202                        var currentCluster:int = helpMap.getKeyAt(0); 
     203                        for(i=ev.beginIndex; i<ev.endIndex; i++)    clusterIndex[i] = currentCluster; 
     204                        clusterOfEventsMap[currentCluster].push( ev ); 
     205                    } 
     206                    if(helpMap.size > 1){ 
     207                        // there was more than one cluster for this span 
     208                        // we join cluster we found into new single one 
     209                        // so we just join current event to cluster we found 
     210                        var temp:Array = [ ev ]; 
     211                        var minIndex:int = ev.beginIndex, maxIndex:int = ev.endIndex; 
     212                        for each(var value:* in helpMap){ 
     213                            for each(var clusterElement:EventField in clusterOfEventsMap[value]){ 
     214                                temp.push( clusterElement ); // add to new cluster 
     215                                minIndex = Math.min(minIndex, clusterElement.beginIndex ); 
     216                                maxIndex = Math.max(maxIndex, clusterElement.beginIndex ); 
     217                            } 
     218                            clusterOfEventsMap.deleteWithKey(value); 
     219                        } 
     220                        for(i=minIndex; i<maxIndex; i++)    clusterIndex[i] = lastCreatedClusterID; 
     221                        clusterOfEventsMap.put(lastCreatedClusterID, temp); 
     222                        lastCreatedClusterID++; 
     223                    } 
     224 
     225                } 
     226 
     227                for (var key:String in clusterOfEventsMap){ 
     228                    trace = ""; 
     229                    var el:EventField; 
     230                    for each(el in clusterOfEventsMap[key])  trace+= (el.data as TimeFrameEntity).UUID.substr(0, 3)+"|"; 
     231                    Logger.debug( "~("+key+") -> ["+trace+"]" ); 
     232                } 
     233                //------------------------------------------------ 
     234 
     235                eventFieldsUpToDate = true; 
     236            } 
     237 
     238 
     239            //------------------------------------------------ 
     240            // for each cluster size it's events 
     241            j = 0; 
     242            var placeArray:Array = new Array(96); 
     243            var minPosition:int = 0, numberOfPositions:int = 0; 
     244            for each(var eventsArray:Array in clusterOfEventsMap){ 
     245                // sort events by rank 
     246                eventsArray.sort( sortEventsByRank ); 
     247 
     248                // calculate sub-optimal position within cluster 
     249                // surely there's a better algorithm :) 
     250                numberOfPositions = 0;                 
     251                for each(ev in eventsArray){ 
     252                    minPosition = 0; 
     253                    // find minimal possible position (maximum of available position in span) 
     254                    for(i=ev.beginIndex; i<ev.endIndex; i++){ 
     255                        if(placeArray[i]<0 || isNaN(placeArray[i]))     placeArray[i]=0; 
     256                        minPosition = Math.max( minPosition, placeArray[i] ); 
     257                    } 
     258                    // store information in event 
     259                    ev.leftPosition = minPosition; 
     260                    //update position availability array for current span 
     261                    for(i=ev.beginIndex; i<ev.endIndex; i++){ 
     262                        placeArray[i] = minPosition + 1; 
     263                    } 
     264                    numberOfPositions = Math.max( numberOfPositions, minPosition ); 
     265                }                 
     266 
     267                // size events 
     268                for each(ev in eventsArray){ 
     269                    sizeEvent( ev, eventsArray.length, numberOfPositions, j ); 
     270                    j += 100; 
     271                } 
     272            } 
     273            //------------------------------------------------         
     274        } 
     275        private function sortEventsByRank(a:EventField, b:EventField):int { 
     276            return ( a.rank < b.rank ) ? -1 : (( a.rank > b.rank ) ? 1 : 0 ); 
     277        }     
     278 
     279        private function sizeEvent(ev:EventField, clusterSize:int, numberOfPositions:int, i:int):void{ 
    100280            var data:TimeFrameEntity = ev.eventInfo.eventData; 
    101281            if(data){ 
    102                 var timeBegin:int = (data.from.getHours() * 4) + ((data.from.getMinutes() as int)/15); 
    103                 var timeEnd:int = (data.to.getHours() * 4) + ((data.to.getMinutes() as int)/15); 
    104  
    105                 // if event exceed current day 
    106                 var from:DateUtil = (new DateUtil(data.from)).dayBegin(); 
    107                 var current:DateUtil = (new DateUtil(currentDay)).dayBegin(); 
    108                 var to:DateUtil = (new DateUtil(data.to)).dayBegin(); 
    109             
    110                 if( current.compare(from) > 0 ){ 
    111                     timeBegin = 0; 
    112                 } 
    113                 if( current.compare(to) < 0 ){ 
    114                     timeEnd = rowsPosition[1].length - 1; 
    115                 } 
    116         
    117                 ev.width = 200;//XXX 
    118                 ev.height = rowsPosition[1][timeEnd] - rowsPosition[1][timeBegin];                 
    119                 ev.x = 50+i;//XXX 
    120                 ev.y = rowsPosition[1][timeBegin]; 
     282                var availableWidth:Number = this.width - this.leftHorizontalMargin_ - this.rightHorizontalMargin_; 
     283                ev.width = availableWidth * (2 / (numberOfPositions+2)); 
     284                ev.height = rowsPosition[1][ev.endIndex] - rowsPosition[1][ev.beginIndex]; 
     285                ev.x = this.leftHorizontalMargin_ + ((availableWidth / (numberOfPositions+2)) * ev.leftPosition); 
     286                ev.y = rowsPosition[1][ev.beginIndex]; 
     287                this.setChildIndex( ev, 0 ); 
    121288                ev.invalidateSize(); 
    122289                ev.invalidateDisplayList(); 
  • ssme/trunk/flex/Calendar/src/com/kh/ssme/components/EventField.as

    r4040 r4042  
    2424 
    2525import com.kh.ssme.entity.TimeFrameEntity; 
    26  
    27 import flash.display.DisplayObject; 
    28  
     26    
    2927    import mx.binding.utils.BindingUtils; 
    30     import mx.binding.utils.ChangeWatcher; 
    31     import mx.controls.TextArea; 
    3228    import mx.core.Container; 
    3329    import mx.core.UIComponent; 
     30    import mx.events.ToolTipEvent; 
     31    import mx.managers.ToolTipManager; 
    3432 
    3533    public class EventField extends RoundedCornerContainer { 
     
    4038            container_.visible = container_.includeInLayout = true; 
    4139            this.addChild( container_ ); 
     40 
     41            this.toolTip = "";             
    4242        } 
    4343 
     
    6868        } 
    6969 
     70        /** 
     71         * Index of beginning quarter 
     72         */ 
     73        public var beginIndex:int; 
     74 
     75        /** 
     76         * Index of ending quarter 
     77         */ 
     78        public var endIndex:int; 
     79 
     80        /** 
     81         * number of neighbour events 
     82         */ 
     83        public var neighbours:int; 
     84 
     85        /** 
     86         * Component position rank 
     87         */ 
     88        public var rank:int; 
     89 
     90        /** 
     91         * Component left alignment 
     92         */ 
     93        public var leftPosition:int; 
    7094 
    7195        protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 
     
    7599            container_.y = this.borderThickness_; 
    76100            container_.width = this.width - this.borderThickness_*2; 
    77             container_.height = this.height - this.borderThickness_*2;             
     101            container_.height = this.height - this.borderThickness_*2; 
     102 
     103            this.toolTip = "Indexes : ["+beginIndex+" - "+endIndex+"]\n" + 
     104                            "neighbours: "+neighbours+"; rank:"+rank+"\n" + 
     105                            "x: "+x+"; y:"+y+"; width:"+width+"; height:"+height+ 
     106                            "UUID:"+data.UUID; 
    78107        } 
    79108 
  • ssme/trunk/flex/Calendar/src/com/kh/ssme/components/SimpleEventDisplay.as

    r4040 r4042  
    5050                this.text += eventData_.description+"\n"; 
    5151 
    52                 this.toolTip = this.text; 
     52                //this.toolTip = this.text; 
    5353            } 
    5454        } 
  • ssme/trunk/flex/Common/src/com/kh/ssme/components/GridCanvas.as

    r4040 r4042  
    7878        } 
    7979        public function get outerBorderThickness_():Number{ 
    80             return this.getStyle("outerBorderThickness"); 
     80            return this.getStyle_("outerBorderThickness", 1); 
    8181        } 
    8282        public function set outerBorderColor_(value:uint):void{ 
     
    8484        } 
    8585        public function get outerBorderColor_():uint{ 
    86             return this.getStyle("outerBorderColor"); 
     86            return this.getStyle_("outerBorderColor", 0x000000); 
    8787        } 
    8888        public function set outerBorderAlpha_(value:Number):void{ 
     
    9090        } 
    9191        public function get outerBorderAlpha_():Number{ 
    92             return this.getStyle("outerBorderAlpha"); 
     92            return this.getStyle_("outerBorderAlpha", 1.0); 
    9393        } 
    9494        public function set innerBorderThicknesses_(value:Array):void{ 
    9595            this.setStyle("innerBorderThicknesses", value); 
    9696        } 
     97        [ArrayElementType("int")]         
    9798        public function get innerBorderThicknesses_():Array{ 
    98             return this.getStyle("innerBorderThicknesses"); 
     99            return this.getStyle_("innerBorderThicknesses", [ 0 ]); 
    99100        } 
    100101        public function set innerBorderColors_(value:Array):void{ 
    101102            this.setStyle("innerBorderColors", value); 
    102103        } 
     104        [ArrayElementType("uint")]         
    103105        public function get innerBorderColors_():Array{ 
    104             return this.getStyle("innerBorderColors"); 
     106            return this.getStyle_("innerBorderColors", [ 0x000000 ]); 
    105107        } 
    106108        public function set innerBorderAlphas_(value:Array):void{ 
    107109            this.setStyle("innerBorderAlphas", value); 
    108110        } 
     111        [ArrayElementType("Number")]         
    109112        public function get innerBorderAlphas_():Array{ 
    110             return this.getStyle("innerBorderAlphas"); 
    111         } 
    112  
     113            return this.getStyle_("innerBorderAlphas", [1.0]); 
     114        } 
     115        public function set cornerRadius_(value:Number):void{ 
     116            this.setStyle("cornerRadius", value); 
     117        } 
     118        public function get cornerRadius_():Number{ 
     119            return this.getStyle_("cornerRadius", 0); 
     120        } 
    113121        public function set verticalMargin_(value:Number):void{ 
    114122            this.setStyle("verticalMargin", value); 
    115123        } 
    116124        public function get verticalMargin_():Number{ 
    117             return this.getStyle("verticalMargin"); 
     125            return this.getStyle_("verticalMargin", 0); 
    118126        } 
    119127        public function set leftHorizontalMargin_(value:Number):void{ 
     
    121129        } 
    122130        public function get leftHorizontalMargin_():Number{ 
    123             return this.getStyle("leftHorizontalMargin"); 
     131            return this.getStyle_("leftHorizontalMargin", 0); 
    124132        } 
    125133        public function set rightHorizontalMargin_(value:Number):void{ 
     
    127135        } 
    128136        public function get rightHorizontalMargin_():Number{ 
    129             return this.getStyle("rightHorizontalMargin"); 
     137            return this.getStyle_("rightHorizontalMargin", 0); 
    130138        } 
    131139        //--------------------------------------------- 
     
    137145         */ 
    138146        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 
    139             var outBorderThickness:Number = getStyle_("outerBorderThickness", 1); 
    140             var outBorderColor:uint = getStyle_("outerBorderColor", 0x000000); 
    141             var outBorderAlpha:Number = getStyle_("outerBorderAlpha", 1.0); 
    142             [ArrayElementType("int")] 
    143             var inBorderThicknesses:Array = getStyle_("innerBorderThicknesses", [ 0 ]); 
    144             [ArrayElementType("uint")] 
    145             var inBorderColors:Array = getStyle_("innerBorderColors", [ 0x000000 ]); 
    146             [ArrayElementType("Number")] 
    147             var inBorderAlphas:Array = getStyle_("innerBorderAlphas", [ 1.0 ]); 
    148             var cornerRadius:Number = getStyle_("cornerRadius", 0.0); 
    149             var verticalMargin:Number = getStyle_("verticalMargin",0); 
    150             var leftHorizontalMargin:Number = getStyle_("leftHorizontalMargin",0); 
    151             var rightHorizontalMargin:Number = getStyle_("rightHorizontalMargin",0);             
     147            var outBorderThickness:Number = outerBorderThickness_; 
     148            var outBorderColor:uint = outerBorderColor_; 
     149            var outBorderAlpha:Number = outerBorderAlpha_; 
     150 
     151            var inBorderThicknesses:Array = innerBorderThicknesses_; 
     152            var inBorderColors:Array = innerBorderColors_; 
     153            var inBorderAlphas:Array = innerBorderAlphas_; 
     154 
     155            var cornerRadius:Number = cornerRadius_; 
     156            var verticalMargin:Number = verticalMargin_; 
     157            var leftHorizontalMargin:Number = leftHorizontalMargin_; 
     158            var rightHorizontalMargin:Number = rightHorizontalMargin_; 
    152159 
    153160 
  • ssme/trunk/flex/Common/src/com/kh/ssme/components/RoundedCornerContainer.as

    r4031 r4042  
    7272        // OVERRIDE 
    7373        protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 
     74 
    7475            var borderThickness:Number = getStyle_("borderThickness", 10); 
    7576            var borderColor:uint = getStyle_("borderColor", 0x000000); 
    7677            var borderAlpha:Number = 1.0; 
    7778            var cornerRadius:Number = getStyle_("cornerRadius", 10); 
    78             var backgroundAlpha = getStyle_("backgroundAlpha", 1.0); 
     79            var backgroundAlpha:Number = getStyle_("backgroundAlpha", 1.0); 
    7980 
    8081 
     
    9394 
    9495            //border 
    95             if (borderThickness > 0) 
    96             { 
     96            if (borderThickness > 0){ 
    9797                graphics.lineStyle(borderThickness, 
    9898                                   borderColor,