- Timestamp:
- 08/19/10 13:46:02 (21 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
ssme/trunk/flex/Calendar/src/com/kh/ssme/components/DayEventsField.as
r4044 r4045 27 27 import com.kh.ssme.util.HashArray; 28 28 29 import mx.containers.VBox; 30 import mx.controls.Label; 29 import flash.display.DisplayObject; 30 31 import mx.containers.VBox; 32 import mx.controls.Button; 33 import mx.controls.Label; 31 34 import mx.formatters.DateFormatter; 32 35 … … 34 37 public class DayEventsField extends RoundedCornerContainer { 35 38 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 36 46 public function DayEventsField() { 37 47 super(); … … 44 54 container_.percentHeight = 100; 45 55 this.addChild( container_ ); 56 46 57 title_ = new Label(); 47 58 title_.percentWidth = 100; 59 title_.height = 20; 48 60 title_.setStyle("textAlign", "center"); 49 61 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_ ); 50 74 51 75 dateFormatter.formatString = "DD MMMM"; 76 timeFormatter.formatString = "JJ:NN"; 52 77 53 78 this.toolTip = ""; … … 69 94 } 70 95 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; 76 98 public function set dataProvider(value:HashArray):void{ 77 99 dataProvider_ = value; 78 100 title_.text = dateFormatter.format( currentDay ); 101 bottomTitle_.text = "+"+value.size; 79 102 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(); 86 123 } 87 124 public function get dataProvider():HashArray{ 88 125 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; 89 132 } 90 133 … … 97 140 container_.height = this.height - this.borderThickness_*2; 98 141 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); 99 151 } 100 152
