Changeset 4043 for ssme/trunk/flex/Calendar/src/Calendar.mxml
- Timestamp:
- 08/15/10 14:10:00 (21 months ago)
- Files:
-
- 1 modified
-
ssme/trunk/flex/Calendar/src/Calendar.mxml (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ssme/trunk/flex/Calendar/src/Calendar.mxml
r4042 r4043 29 29 backgroundGradientAlphas="[0, 0]" 30 30 loadUserEntity="true" 31 currentState="day" 31 currentState="{ DAY_STATE }" 32 stateChanged="onStateChanged(event);" 32 33 > 33 34 34 35 <!-- ========================================================= --> 35 <components:states> 36 <components:states> 36 37 <mx:State name="day" > 37 <mx:SetProperty target="{ canvas_2 }" name="visible" value="false" />38 <mx:SetProperty target="{ canvas_3 }" name="visible" value="false" />39 <mx:SetProperty target="{ canvas_4 }" name="visible" value="false" />40 <mx:SetProperty target="{ canvas_5 }" name="visible" value="false" />41 <mx:SetProperty target="{ canvas_6 }" name="visible" value="false" />42 <mx:SetProperty target="{ canvas_7 }" name="visible" value="false" />43 <mx:SetProperty target="{ canvas_2 }" name="includeInLayout" value="false" />44 <mx:SetProperty target="{ canvas_3 }" name="includeInLayout" value="false" />45 <mx:SetProperty target="{ canvas_4 }" name="includeInLayout" value="false" />46 <mx:SetProperty target="{ canvas_5 }" name="includeInLayout" value="false" />47 <mx:SetProperty target="{ canvas_6 }" name="includeInLayout" value="false" />48 <mx:SetProperty target="{ canvas_7 }" name="includeInLayout" value="false" />49 38 </mx:State> 50 39 <mx:State name="week" > 51 <mx:SetProperty target="{ canvas_2 }" name="visible" value="true" />52 <mx:SetProperty target="{ canvas_3 }" name="visible" value="true" />53 <mx:SetProperty target="{ canvas_4 }" name="visible" value="true" />54 <mx:SetProperty target="{ canvas_5 }" name="visible" value="true" />55 <mx:SetProperty target="{ canvas_6 }" name="visible" value="true" />56 <mx:SetProperty target="{ canvas_7 }" name="visible" value="true" />57 <mx:SetProperty target="{ canvas_2 }" name="includeInLayout" value="true" />58 <mx:SetProperty target="{ canvas_3 }" name="includeInLayout" value="true" />59 <mx:SetProperty target="{ canvas_4 }" name="includeInLayout" value="true" />60 <mx:SetProperty target="{ canvas_5 }" name="includeInLayout" value="true" />61 <mx:SetProperty target="{ canvas_6 }" name="includeInLayout" value="true" />62 <mx:SetProperty target="{ canvas_7 }" name="includeInLayout" value="true" />63 40 </mx:State> 64 <mx:State name="month" /> 41 <mx:State name="month" > 42 </mx:State> 65 43 </components:states> 66 44 <!-- ========================================================= --> … … 83 61 <mx:Resize target="{ monthBox }" heightTo="{ canvasContainer.height }" /> 84 62 </mx:Parallel> 85 </mx:Transition> 63 </mx:Transition> 86 64 </components:transitions> 87 <!-- ========================================================= -->88 <mx:Fade id="fadeIn" duration="500" alphaFrom="0" alphaTo="1.0" />89 <mx:Fade id="fadeOut" duration="500" alphaFrom="1.0" alphaTo="0" />90 65 <!-- ========================================================= --> 91 92 66 <mx:Fade id="fadeIn" duration="300" alphaFrom="0" alphaTo="1.0" /> 67 <mx:Fade id="fadeOut" duration="300" alphaFrom="1.0" alphaTo="0" /> 68 <!-- ========================================================= --> 69 <mx:DateFormatter id="dateFormatter" formatString="DD.MM.YYYY" /> 70 <!-- ========================================================= --> 93 71 <mx:Style source="assets/calendar.css" /> 72 <!-- ========================================================= --> 94 73 95 74 <components:HeaderlessPanel … … 106 85 107 86 <mx:DateField id="chosenDate" 87 formatString="DD-MM-YYYY" 108 88 firstDayOfWeek="1" 109 dayNames="[ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ]" 110 formatString="DD-MM-YYYY" 89 dayNames="[ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ]" 111 90 yearNavigationEnabled="true" 112 91 editable="false" 113 92 /> 93 94 <mx:Button id="calendar_reload" 95 styleName="calendarReload" 96 click="{ loadEvents(event); }" 97 width="20" height="20" 98 useHandCursor="true" 99 mouseChildren="false" 100 enabled="true"/> 101 102 <mx:Label id="errorLabel" color="red" text="" width="100%"/> 114 103 115 104 <mx:ToggleButtonBar id="state" itemClick="{ toggleClicked(event); }"> … … 121 110 </mx:Array> 122 111 </mx:dataProvider> 123 </mx:ToggleButtonBar> 124 125 <mx:Button id="calendar_reload" 126 styleName="calendarReload" 127 click="{ loadEvents(event); }" 128 width="20" height="20" 129 useHandCursor="true" 130 mouseChildren="false" 131 enabled="true"/> 132 133 <mx:Label id="errorLabel" color="red" text="" /> 112 </mx:ToggleButtonBar> 134 113 135 114 </mx:HBox> … … 140 119 141 120 <mx:HBox id="dayBox" width="100%" height="{ canvasContainer.height }" maxHeight="{ canvasContainer.height }" paddingTop="10" paddingBottom="10" horizontalScrollPolicy="off" verticalScrollPolicy="off"> 142 143 <components:VerticalLabelsList id="v_list" 144 verticalMargin="10" showHourLabels="true" 145 width="50" height="100%" minHeight="400" 146 outerBorderThickness="1" 147 innerBorderThicknesses="2" 148 backgroundColor="0xffffff" backgroundAlpha="0" 149 visible="true" includeInLayout="true" 150 cornerRadius="0"> 151 </components:VerticalLabelsList> 152 153 <components:DayCanvas id="canvas_1" 154 verticalMargin="10" leftHorizontalMargin="5" 155 width="100%" height="100%" minHeight="400" 156 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 157 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 158 backgroundColor="0xffffff" backgroundAlpha="0" 159 rows="[ 24, 96 ]" columns="[ 1 ]" 160 visible="true" includeInLayout="true" 161 cornerRadius="0"> 162 </components:DayCanvas> 163 164 <components:DayCanvas id="canvas_2" 165 verticalMargin="10" leftHorizontalMargin="5" 166 width="100%" height="100%" minHeight="400" 167 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 168 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 169 backgroundColor="0xffffff" backgroundAlpha="0" 170 rows="[ 24, 96 ]" columns="[ 1 ]" 171 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 172 cornerRadius="0"> 173 </components:DayCanvas> 174 175 <components:DayCanvas id="canvas_3" 176 verticalMargin="10" leftHorizontalMargin="5" 177 width="100%" height="100%" minHeight="400" 178 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 179 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 180 backgroundColor="0xffffff" backgroundAlpha="0" 181 rows="[ 24, 96 ]" columns="[ 1 ]" 182 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 183 cornerRadius="0"> 184 </components:DayCanvas> 185 186 <components:DayCanvas id="canvas_4" 187 verticalMargin="10" leftHorizontalMargin="5" 188 width="100%" height="100%" minHeight="400" 189 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 190 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 191 backgroundColor="0xffffff" backgroundAlpha="0" 192 rows="[ 24, 96 ]" columns="[ 1 ]" 193 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 194 cornerRadius="0"> 195 </components:DayCanvas> 196 197 <components:DayCanvas id="canvas_5" 198 verticalMargin="10" leftHorizontalMargin="5" 199 width="100%" height="100%" minHeight="400" 200 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 201 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 202 backgroundColor="0xffffff" backgroundAlpha="0" 203 rows="[ 24, 96 ]" columns="[ 1 ]" 204 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 205 cornerRadius="0"> 206 </components:DayCanvas> 207 208 <components:DayCanvas id="canvas_6" 209 verticalMargin="10" leftHorizontalMargin="5" 210 width="100%" height="100%" minHeight="400" 211 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 212 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 213 backgroundColor="0xffffff" backgroundAlpha="0" 214 rows="[ 24, 96 ]" columns="[ 1 ]" 215 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 216 cornerRadius="0"> 217 </components:DayCanvas> 218 219 <components:DayCanvas id="canvas_7" 220 verticalMargin="10" leftHorizontalMargin="5" 221 width="100%" height="100%" minHeight="400" 222 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 223 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 224 backgroundColor="0xffffff" backgroundAlpha="0" 225 rows="[ 24, 96 ]" columns="[ 1 ]" 226 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 227 cornerRadius="0"> 228 </components:DayCanvas> 229 121 <mx:VBox id="dayBox0" width="50" height="100%" paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0" verticalGap="0"> 122 <mx:Label height="20" id="labelCanvas0" width="100%" textAlign="center" /> 123 <components:VerticalLabelsList id="v_list" 124 verticalMargin="10" showHourLabels="true" 125 width="50" height="100%" minHeight="400" 126 outerBorderThickness="1" 127 innerBorderThicknesses="2" 128 backgroundColor="0xffffff" backgroundAlpha="0" 129 visible="true" includeInLayout="true" 130 cornerRadius="0"> 131 </components:VerticalLabelsList> 132 </mx:VBox> 133 <mx:VBox id="dayBox1" width="100%" height="100%" paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0" verticalGap="0"> 134 <mx:Label height="20" id="labelCanvas1" width="100%" textAlign="center" /> 135 <components:DayCanvas id="canvas_1" 136 verticalMargin="10" leftHorizontalMargin="5" 137 width="100%" height="100%" minHeight="400" 138 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 139 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 140 backgroundColor="0xffffff" backgroundAlpha="0" 141 rows="[ 24, 96 ]" columns="[ 1 ]" 142 visible="true" includeInLayout="true" 143 cornerRadius="0"> 144 </components:DayCanvas> 145 </mx:VBox> 146 <mx:VBox id="dayBox2" width="100%" height="100%" paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0" verticalGap="0"> 147 <mx:Label height="20" id="labelCanvas2" width="100%" textAlign="center" /> 148 <components:DayCanvas id="canvas_2" 149 verticalMargin="10" leftHorizontalMargin="5" 150 width="100%" height="100%" minHeight="400" 151 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 152 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 153 backgroundColor="0xffffff" backgroundAlpha="0" 154 rows="[ 24, 96 ]" columns="[ 1 ]" 155 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 156 cornerRadius="0"> 157 </components:DayCanvas> 158 </mx:VBox> 159 <mx:VBox id="dayBox3" width="100%" height="100%" paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0" verticalGap="0"> 160 <mx:Label height="20" id="labelCanvas3" width="100%" textAlign="center" /> 161 <components:DayCanvas id="canvas_3" 162 verticalMargin="10" leftHorizontalMargin="5" 163 width="100%" height="100%" minHeight="400" 164 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 165 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 166 backgroundColor="0xffffff" backgroundAlpha="0" 167 rows="[ 24, 96 ]" columns="[ 1 ]" 168 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 169 cornerRadius="0"> 170 </components:DayCanvas> 171 </mx:VBox> 172 <mx:VBox id="dayBox4" width="100%" height="100%" paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0" verticalGap="0"> 173 <mx:Label height="20" id="labelCanvas4" width="100%" textAlign="center" /> 174 <components:DayCanvas id="canvas_4" 175 verticalMargin="10" leftHorizontalMargin="5" 176 width="100%" height="100%" minHeight="400" 177 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 178 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 179 backgroundColor="0xffffff" backgroundAlpha="0" 180 rows="[ 24, 96 ]" columns="[ 1 ]" 181 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 182 cornerRadius="0"> 183 </components:DayCanvas> 184 </mx:VBox> 185 <mx:VBox id="dayBox5" width="100%" height="100%" paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0" verticalGap="0"> 186 <mx:Label height="20" id="labelCanvas5" width="100%" textAlign="center" /> 187 <components:DayCanvas id="canvas_5" 188 verticalMargin="10" leftHorizontalMargin="5" 189 width="100%" height="100%" minHeight="400" 190 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 191 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 192 backgroundColor="0xffffff" backgroundAlpha="0" 193 rows="[ 24, 96 ]" columns="[ 1 ]" 194 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 195 cornerRadius="0"> 196 </components:DayCanvas> 197 </mx:VBox> 198 <mx:VBox id="dayBox6" width="100%" height="100%" paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0" verticalGap="0"> 199 <mx:Label height="20" id="labelCanvas6" width="100%" textAlign="center" /> 200 <components:DayCanvas id="canvas_6" 201 verticalMargin="10" leftHorizontalMargin="5" 202 width="100%" height="100%" minHeight="400" 203 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 204 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 205 backgroundColor="0xffffff" backgroundAlpha="0" 206 rows="[ 24, 96 ]" columns="[ 1 ]" 207 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 208 cornerRadius="0"> 209 </components:DayCanvas> 210 </mx:VBox> 211 <mx:VBox id="dayBox7" width="100%" height="100%" paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0" verticalGap="0"> 212 <mx:Label height="20" id="labelCanvas7" width="100%" textAlign="center" /> 213 <components:DayCanvas id="canvas_7" 214 verticalMargin="10" leftHorizontalMargin="5" 215 width="100%" height="100%" minHeight="400" 216 outerBorderColor="0x000000" outerBorderAlpha="1.0" outerBorderThickness="1" 217 innerBorderColors="[ 0x000000, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3 ]" innerBorderThicknesses="[ 2, 1 ]" 218 backgroundColor="0xffffff" backgroundAlpha="0" 219 rows="[ 24, 96 ]" columns="[ 1 ]" 220 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 221 cornerRadius="0"> 222 </components:DayCanvas> 223 </mx:VBox> 230 224 </mx:HBox> 231 225 … … 280 274 calendarConnector.addEventListener(BasicQueuedConnector.EVENT_FAULT, onCalendarGetResponse); 281 275 282 if(!userEntityLoaded) addEventListener("ssme_userLoaded", prepareCalendarList) 276 if(!userEntityLoaded) addEventListener("ssme_userLoaded", prepareCalendarList) 283 277 284 278 currentState = "day"; 285 theDayCanvas = canvas_1;279 dayCanvasLabels = [ labelCanvas1, labelCanvas2, labelCanvas3, labelCanvas4, labelCanvas5, labelCanvas6, labelCanvas7 ]; 286 280 dayCanvas = [ canvas_1, canvas_2, canvas_3, canvas_4, canvas_5, canvas_6, canvas_7 ]; 281 dayCanvasBoxes = [ dayBox1, dayBox2, dayBox3, dayBox4, dayBox5, dayBox6, dayBox7 ]; 287 282 } 288 283 … … 290 285 private const WEEK:int = 1; 291 286 private const MONTH:int = 2; 292 293 287 private function toggleClicked(event:Event):void { 294 switch( state.selectedIndex ){ 295 case DAY: currentState="day"; break; 296 case WEEK: currentState="week"; break; 297 case MONTH: currentState="month"; break; 298 } 299 loadEvents(event); 300 } 288 // setDates(); 289 // switch( state.selectedIndex ){ 290 // case DAY: currentState = DAY_STATE; break; 291 // case WEEK: currentState = WEEK_STATE; break; 292 // case MONTH: currentState = MONTH_STATE; break; 293 // } 294 loadEvents(event); 295 } 301 296 302 297 private function prepareCalendarList(event:Event):void { … … 307 302 calendarsList.sort( sortCalendars ); 308 303 calendarsList.push( { uuid:null, name: "All" } ); 309 calendarCombo.selectedIndex = -1; 304 calendarCombo.selectedIndex = -1; 310 305 } 311 306 private function sortCalendars(a:Object, b:Object):int { 312 307 return ( a.name < b.name ) ? -1 : (( a.name > b.name ) ? 1 : 0 ); 313 308 } 309 private function setDates():void { 310 currentDay = chosenDate.selectedDate; 311 weekBeginDay = (new DateUtil( currentDay )).weekBegin( 1 ).date; 312 monthBeginDay = (new DateUtil( currentDay )).monthBegin().date; 313 dayOfTheWeek = (currentDay.getDay() - weekBeginDay.getDay() + 7 ) % 7; 314 Logger.debug( "currentDay:["+currentDay+"] weekBeginDay:"+weekBeginDay+" monthBeginDay:"+monthBeginDay+" dayOfTheWeek:"+dayOfTheWeek 315 +" ("+currentDay.getDay()+":"+weekBeginDay.getDay()+")" ); 316 } 314 317 315 318 private const EVENTS_RECURSION:int = 1; … … 319 322 && chosenDate.selectedDate // date chosen 320 323 && state.selectedIndex>=0){ // state chosen 324 325 setDates(); 321 326 322 327 var date:Date = chosenDate.selectedDate; // get chosen date … … 326 331 begin = DateUtil.dayBegin(date).timestamp; 327 332 end = DateUtil.dayEnd(date).timestamp; 328 break; 333 currentState = DAY_STATE; 334 onDayStateEnter(); 335 336 // reset previous display 337 showDayEvents( true ); 338 break; 329 339 } 330 340 case WEEK: { 331 341 begin = DateUtil.weekBegin(1, date).timestamp; 332 342 end = DateUtil.weekEnd(1, date).timestamp; 343 currentState = WEEK_STATE; 344 onWeekStateEnter(); 345 346 // reset previous display 347 showWeekEvents( true ); 333 348 break; 334 349 } … … 336 351 begin = DateUtil.monthBegin(date).timestamp; 337 352 end = DateUtil.monthEnd(date).timestamp; 338 break; 353 currentState = MONTH_STATE; 354 break; 339 355 } 340 356 341 357 } 342 358 343 359 ModalSpinner.instance.showSpinner("Loading events for calendar '"+(calendarCombo.selectedItem.name)+"'...", 0x269926, panel, 0.2); 344 360 errorLabel.text = ""; … … 348 364 calendarConnector.getCalendarRange( calendarCombo.selectedItem.uuid, begin, end, params ); 349 365 } else { 350 params[Params.DATA_RECURSION] = EVENTS_RECURSION; 366 params[Params.DATA_RECURSION] = EVENTS_RECURSION; 351 367 calendarConnector.getCalendarAll( begin, end, params ); 352 368 } 353 } 369 } 354 370 } 355 371 356 372 private var calendarEntity:CalendarEntity; 357 private var currentDay:Date, weekBeginDay:Date, monthBeginDay:Date, dayOfTheWeek:int = 0; 373 [Bindable] 374 private var currentDay:Date; 375 [Bindable] 376 private var weekBeginDay:Date; 377 [Bindable] 378 private var monthBeginDay:Date; 379 [Bindable] 380 private var dayOfTheWeek:int = 0; 381 [Bindable] 382 [ArrayElementType("DayCanvas")] 383 private var dayCanvas:Array; 384 [Bindable] 385 [ArrayElementType("Label")] 386 private var dayCanvasLabels:Array; 387 [ArrayElementType("VBox")] 388 private var dayCanvasBoxes:Array; 358 389 private function onCalendarGetResponse(event:Event):void { 359 390 var result:ConnectorResult = (event as SsmeEvent).eventProperties['result']; … … 363 394 if (result.resultType == ConnectorResult.SUCCESS) { 364 395 Logger.debug( result.lastResult as String, LoggingComponentsEnum.CAL ); 365 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(); 396 calendarEntity = (new CalendarEntity()).parseJSONString( result.lastResult as String, EVENTS_RECURSION ); 370 397 switch( state.selectedIndex ){ // determine time range 371 398 case DAY: { 372 399 showDayEvents(); 400 //currentState = DAY_STATE; 373 401 break; 374 402 } 375 403 case WEEK: { 376 404 showWeekEvents(); 405 //currentState = WEEK_STATE; 377 406 break; 378 407 } 379 408 // case MONTH: { 380 409 // showMonthEvents(); 410 // currentState = MONTH_STATE; 381 411 // break; 382 412 // } 383 } 413 } 384 414 } 385 415 // error … … 397 427 } 398 428 399 private var theDayCanvas:DayCanvas; 400 private var dayCanvas:Array; 401 private function showDayEvents():void { 402 canvas_1.currentDay = currentDay; 403 canvas_1.dataProvider = calendarEntity.timeFramesEntitites; 404 //dayCanvas[ dayOfTheWeek ].currentDay = currentDay; 405 //dayCanvas[ dayOfTheWeek ].dataProvider = calendarEntity.timeFramesEntitites; 406 } 407 408 private function showWeekEvents():void { 409 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 } 429 private function showDayEvents(reset:Boolean = false):void { 430 dayCanvas[ dayOfTheWeek ].currentDay = (reset) ? new Date(-1) : currentDay; 431 dayCanvas[ dayOfTheWeek ].dataProvider = (reset) ? new HashArray() : calendarEntity.timeFramesEntitites; 432 dayCanvas[ dayOfTheWeek ].setStyle("backgroundAlpha", (reset) ? 0 : 0.3); 433 dayCanvasLabels[ dayOfTheWeek ].text = (reset) ? "" : dateFormatter.format( currentDay ); 434 } 435 436 private function showWeekEvents(reset:Boolean = false):void { 437 438 if(!reset){ 439 // create data structure 440 var dataProviders:Array = [ ], i:int, timeFrame:TimeFrameEntity; 441 for(i=0; i<7; i++) dataProviders.push( new HashArray() ); 442 443 // divide events among days 444 var fromDay:int, toDay:int; 445 for each( timeFrame in calendarEntity.timeFramesEntitites ){ 446 fromDay = (timeFrame.from.getDay() + 6)%7; 447 toDay = (timeFrame.to.getDay() + 6)%7; 448 if( fromDay == toDay ){ 449 // starts and ends in the same day 450 dataProviders[ fromDay ].put( timeFrame.UUID, timeFrame ); 451 } else { 452 // splitted over more than one days, so add it to all of them 453 for(i=fromDay; i<=toDay;i++){ 454 dataProviders[ i ].put( timeFrame.UUID, timeFrame ); 455 } 456 } 424 457 } 425 458 } … … 428 461 var weekBegin:DateUtil = new DateUtil( weekBeginDay ); 429 462 for(i=0; i<7; i++){ 430 (dayCanvas[ i ] as DayCanvas).currentDay = weekBegin.date; 431 (dayCanvas[ i ] as DayCanvas).dataProvider = dataProviders[ i ]; 463 dayCanvas[ i ].currentDay = (reset) ? new Date(-1) : weekBegin.date; 464 dayCanvas[ i ].dataProvider = (reset) ? new HashArray() : dataProviders[ i ]; 465 dayCanvas[ i ].setStyle("backgroundAlpha", 0); 466 dayCanvasLabels[ i ].text = (reset) ? "" : dateFormatter.format( weekBegin.date ); 432 467 weekBegin.add( DateProperty.DATE, 1 ); 433 468 } 434 } 469 dayCanvas[ dayOfTheWeek ].setStyle("backgroundAlpha", (reset) ? 0 : 0.3); 470 471 } 435 472 436 473 private function onTimeFrameGetResponse(event:Event):void { … … 442 479 443 480 481 //----------------------------------------------------- 482 // states layout management 483 private const DAY_STATE:String = "day"; 484 private const WEEK_STATE:String = "week"; 485 private const MONTH_STATE:String = "month"; 486 private function onDayStateEnter():void { 487 var i:int; 488 for(i=0; i<7; i++){ 489 dayCanvasBoxes[ i ].visible = dayCanvasBoxes[ i ].includeInLayout = (i == dayOfTheWeek); 490 } 491 } 492 private function onWeekStateEnter():void { 493 var i:int; 494 for(i=0; i<7; i++){ 495 dayCanvasBoxes[ i ].visible = dayCanvasBoxes[ i ].includeInLayout = true; 496 } 497 } 498 private function onStateChanged(event:Event):void { 499 500 // if(currentState == DAY_STATE){ 501 // 502 // } else if(currentState == WEEK_STATE){ 503 // 504 // } else if(currentState == MONTH_STATE){ 505 // 506 // } 507 } 508 //----------------------------------------------------- 444 509 445 510
