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

calendar, one-week display
fixes

Files:
1 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