Show
Ignore:
Timestamp:
08/19/10 13:46:02 (21 months ago)
Author:
mszopinski
Message:

calendar, updating month display

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ssme/trunk/flex/Calendar/src/com/kh/ssme/components/DayEventsField.as

    r4044 r4045  
    2727    import com.kh.ssme.util.HashArray; 
    2828 
    29     import mx.containers.VBox; 
    30     import mx.controls.Label; 
     29import flash.display.DisplayObject; 
     30 
     31import mx.containers.VBox; 
     32import mx.controls.Button; 
     33import mx.controls.Label; 
    3134import mx.formatters.DateFormatter; 
    3235 
     
    3437public class DayEventsField extends RoundedCornerContainer { 
    3538 
     39        private var container_:VBox; 
     40        private var title_:Label; 
     41        private var innerContainer_:VBox; 
     42        private var bottomTitle_:Label; 
     43        private var dateFormatter:DateFormatter = new DateFormatter(); 
     44        private var timeFormatter:DateFormatter = new DateFormatter();     
     45     
    3646        public function DayEventsField() { 
    3747            super(); 
     
    4454            container_.percentHeight = 100; 
    4555            this.addChild( container_ ); 
     56 
    4657            title_ = new Label(); 
    4758            title_.percentWidth = 100; 
     59            title_.height = 20; 
    4860            title_.setStyle("textAlign", "center"); 
    4961            container_.addChild( title_ ); 
     62             
     63            innerContainer_ = new VBox(); 
     64            innerContainer_.percentWidth = 100; 
     65            innerContainer_.percentHeight = 100; 
     66            innerContainer_.setStyle( "backgroundColor", 0x880000 ); 
     67            container_.addChild( innerContainer_ ); 
     68 
     69            bottomTitle_ = new Label(); 
     70            bottomTitle_.percentWidth = 100; 
     71            bottomTitle_.height = 20; 
     72            bottomTitle_.setStyle("textAlign", "center"); 
     73            container_.addChild( bottomTitle_ ); 
    5074 
    5175            dateFormatter.formatString = "DD MMMM"; 
     76            timeFormatter.formatString = "JJ:NN"; 
    5277 
    5378            this.toolTip = "";                
     
    6994        } 
    7095 
    71         private var container_:VBox; 
    72         private var title_:Label; 
    73         private var dateFormatter:DateFormatter = new DateFormatter();         
    74  
    75         private var dataProvider_:HashArray;     
     96        private var dataProvider_:HashArray; 
     97        private var dataProviderArray_:Array; 
    7698        public function set dataProvider(value:HashArray):void{ 
    7799            dataProvider_ = value; 
    78100            title_.text = dateFormatter.format( currentDay ); 
     101            bottomTitle_.text = "+"+value.size;             
    79102 
    80 //            var ttp:String = "x: "+x+"; y:"+y+"; width:"+width+"; height:"+height; 
    81 //            ttp += "; dayOfWeek:"+dayOfWeek+"; weekOfMonth:"+weekOfMonth+"; " 
    82 //            for each(var timeFrame:TimeFrameEntity in dataProvider_){ 
    83 //                ttp += "UUID: "+timeFrame.UUID+"; desc:"+timeFrame.description+"; "; 
    84 //            } 
    85 //            this.toolTip = ttp; 
     103            innerContainer_.removeAllChildren(); 
     104            dataProviderArray_ = value.getAsArray(); 
     105            dataProviderArray_.sort( sortTimeFrames ); 
     106            var timeframe:TimeFrameEntity, o:Object, tempButton:Button; 
     107            for each(o in dataProviderArray_){ 
     108                timeframe = (o.valueOf as TimeFrameEntity); 
     109                if(timeframe){ 
     110                    tempButton = new Button(); 
     111                    tempButton.height = 20; 
     112                    tempButton.setStyle( "highlightAlphas",  [0, 0]); 
     113                    tempButton.setStyle( "fillAlphas",  [0.6, 0.4, 0.6, 0.4]); 
     114                    tempButton.setStyle( "fillColors",  [0xffffff, 0x999999, 0xffffff, 0x999999]); 
     115                    tempButton.setStyle( "themeColor",  0x0000cc ); 
     116                    tempButton.label = timeFormatter.format( timeframe.from )+" - "+timeFormatter.format( timeframe.to ); 
     117                    innerContainer_.addChild( tempButton ); 
     118                } 
     119            } 
     120 
     121            invalidateDisplayList(); 
     122            innerContainer_.invalidateDisplayList(); 
    86123        } 
    87124        public function get dataProvider():HashArray{ 
    88125            return dataProvider_; 
     126        } 
     127        private function sortTimeFrames(a:Object, b:Object):int { 
     128            if(a && b && a.value && b.value && a.value is TimeFrameEntity && b.value is TimeFrameEntity){ 
     129                return (a.value as TimeFrameEntity).from.time - (b.value as TimeFrameEntity).from.time; 
     130            } 
     131            return 0; 
    89132        } 
    90133 
     
    97140            container_.height = this.height - this.borderThickness_*2; 
    98141 
     142            var i:int = 0, displayed:int = 0, sumHeight:Number=(title_.height + bottomTitle_.height), button:Button; 
     143            for(i=0; i<innerContainer_.numChildren; i++){ 
     144                button = innerContainer_.getChildAt( i ) as Button; 
     145                sumHeight += button.height; 
     146                button.visible = button.includeInLayout = sumHeight < unscaledHeight; 
     147                if(sumHeight < unscaledHeight)  displayed++; 
     148            } 
     149 
     150            bottomTitle_.text = "+"+(dataProvider_.size - displayed);               
    99151        }         
    100152