Changeset 4046

Show
Ignore:
Timestamp:
08/23/10 12:21:43 (21 months ago)
Author:
mszopinski
Message:

calendar, month display

Location:
ssme/trunk
Files:
2 added
5 modified

Legend:

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

    r4045 r4046  
    2323package com.kh.ssme.components { 
    2424 
    25     import com.kh.ssme.entity.TimeFrameEntity; 
     25import com.kh.ssme.components.EventTooltip; 
     26import com.kh.ssme.entity.TimeFrameEntity; 
    2627    import com.kh.ssme.util.DayEventsFieldTypeEnum; 
    2728    import com.kh.ssme.util.HashArray; 
     
    3233import mx.controls.Button; 
    3334import mx.controls.Label; 
     35import mx.events.ToolTipEvent; 
    3436import mx.formatters.DateFormatter; 
    3537 
     
    4850            this.visible = this.includeInLayout = true; 
    4951            setStyle("borderThickness", 2); 
    50             setStyle("borderColor", 0xBBBBFF);             
     52            setStyle("borderColor", 0xBBBBFF); 
     53            this.verticalScrollPolicy = "off"; 
     54            this.horizontalScrollPolicy = "off"; 
    5155 
    5256            container_ = new VBox(); 
    5357            container_.percentWidth = 100; 
    5458            container_.percentHeight = 100; 
     59            container_.setStyle("verticalGap",0); 
     60            container_.setStyle("textAlign","center");                
     61            container_.verticalScrollPolicy = "off"; 
     62            container_.horizontalScrollPolicy = "off";             
    5563            this.addChild( container_ ); 
    5664 
     
    6472            innerContainer_.percentWidth = 100; 
    6573            innerContainer_.percentHeight = 100; 
    66             innerContainer_.setStyle( "backgroundColor", 0x880000 ); 
     74            innerContainer_.setStyle("verticalGap",1); 
     75            innerContainer_.setStyle("paddingLeft",2); 
     76            innerContainer_.setStyle("paddingRight",2); 
     77            innerContainer_.setStyle("textAlign","center");             
     78            innerContainer_.verticalScrollPolicy = "off"; 
     79            innerContainer_.horizontalScrollPolicy = "off";             
    6780            container_.addChild( innerContainer_ ); 
    6881 
     
    7689            timeFormatter.formatString = "JJ:NN"; 
    7790 
    78             this.toolTip = "";                
    7991        } 
    8092 
     
    106118            var timeframe:TimeFrameEntity, o:Object, tempButton:Button; 
    107119            for each(o in dataProviderArray_){ 
    108                 timeframe = (o.valueOf as TimeFrameEntity); 
     120                timeframe = (o.value as TimeFrameEntity); 
    109121                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 ); 
     122                    tempButton = new EventBox(); 
     123                    tempButton.height = 15; 
     124                    tempButton.width = 120; 
     125                    tempButton.label = timeFormatter.format( timeframe.from )+" - "+timeFormatter.format( timeframe.to )+" "+timeframe.description; 
     126                    tempButton.data = timeframe; 
    117127                    innerContainer_.addChild( tempButton ); 
    118128                } 
     
    126136        } 
    127137        private function sortTimeFrames(a:Object, b:Object):int { 
     138            var result:Number = 0; 
    128139            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; 
     140                result = (a.value as TimeFrameEntity).from.time - (b.value as TimeFrameEntity).from.time; 
    130141            } 
    131             return 0; 
     142            if(result == 0){ 
     143                return (a.value as TimeFrameEntity).to.time - (b.value as TimeFrameEntity).to.time; 
     144            } 
     145            return result; 
     146        } 
     147        private function createEventTooltip(event:ToolTipEvent, timeframe:TimeFrameEntity):void { 
     148            event.toolTip = new EventTooltip(); 
     149            (event.toolTip as EventTooltip).data = timeframe; 
    132150        } 
    133151 
     152     
    134153        protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 
    135154            super.updateDisplayList( unscaledWidth, unscaledHeight ); 
     
    145164                sumHeight += button.height; 
    146165                button.visible = button.includeInLayout = sumHeight < unscaledHeight; 
     166                button.width = unscaledWidth - 8;//Math.max( 0, unscaledWidth-button.width/2 ); 
    147167                if(sumHeight < unscaledHeight)  displayed++; 
    148168            } 
    149  
    150             bottomTitle_.text = "+"+(dataProvider_.size - displayed);               
     169            bottomTitle_.text = (dataProvider_.size > displayed) ? "+"+(dataProvider_.size - displayed) : "";               
    151170        }         
    152171 
  • ssme/trunk/flex/Calendar/src/com/kh/ssme/components/EventField.as

    r4043 r4046  
    3939            this.addChild( container_ ); 
    4040 
    41             this.toolTip = "";             
     41            this.toolTip = " "; 
     42            this.addEventListener(ToolTipEvent.TOOL_TIP_CREATE, createEventTooltip); 
    4243        } 
    4344 
     
    9394        public var leftPosition:int; 
    9495 
     96         
    9597        protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 
    9698            super.updateDisplayList( unscaledWidth, unscaledHeight ); 
     
    107109        } 
    108110 
     111        private function createEventTooltip(event:ToolTipEvent):void { 
     112            event.toolTip = new EventTooltip(); 
     113            (event.toolTip as EventTooltip).data = (data) ? data : null; 
     114        } 
     115 
    109116    } 
    110117 
  • ssme/trunk/flex/Calendar/src/com/kh/ssme/components/MonthCanvas.as

    r4045 r4046  
    9292                monthBeginDay = (new DateUtil(value)).monthBegin(); 
    9393                var nextMonthBegin:DateUtil = monthBeginDay.clone().add(DateProperty.MONTH, 1); 
    94                 monthEndDay = nextMonthBegin.clone().sub(DateProperty.DATE, 1); 
     94                monthEndDay = nextMonthBegin.clone().dayEnd(); 
    9595 
    9696                numberOfDays = nextMonthBegin.diff( monthBeginDay, DateProperty.DAY ); 
     
    9898                numberOfWeeks = Math.ceil((7 - ((monthBeginDay.getProperty(DateProperty.DAY)+7)%7) + numberOfDays) / 7.0 ); 
    9999            } 
    100  
    101  
    102 //            toolTip = "currentDay: "+currentDay_+"; numberOfDays:"+numberOfDays+"; numberOfWeeks:"+numberOfWeeks+"; " + 
    103 //                      "monthBeginDay:"+(monthBeginDay.toString())+"; monthEndDay:"+(monthEndDay.toString()); 
    104100        } 
    105101        public function get currentDay():Date{ 
     
    144140 
    145141                        // splitted over more than one days, so add it to all corresponding dataProviders 
    146                         for (i = startDay.getDate(); i <= endDay.getDate(); i++) { 
    147                             dataProviders[ i ].put(timeFrame.UUID, timeFrame); 
     142                        var innerTimeFrame:TimeFrameEntity, iter:DateUtil = (new DateUtil( startDay )).dayBegin(); 
     143                        for (i = startDay.getDate(); i <= endDay.getDate(); i++, iter.add( DateProperty.DATE, 1 )) { 
     144                            innerTimeFrame = timeFrame.clone(); 
     145                            if(i>startDay.getDate())  innerTimeFrame.from = iter.dayBegin().date;                             
     146                            if(i<endDay.getDate())  innerTimeFrame.to = iter.dayEnd().date; 
     147                            dataProviders[ i ].put(innerTimeFrame.UUID, innerTimeFrame); 
    148148                        }                         
    149149                    } 
    150150                } 
    151151 
    152                 var ev:DayEventsField;                 
    153                 //var i:int = 0,  
    154 //                        var timeBegin:int, timeEnd:int; 
    155 //                var from:DateUtil, to:DateUtil, current:DateUtil = (new DateUtil(currentDay)).dayBegin(); 
     152 
    156153                // create DayEventsField instance for each day in month 
     154                var ev:DayEventsField;                  
    157155                var monthIter:DateUtil = monthBeginDay.clone(); 
    158156                var complement:int = ((monthBeginDay.getProperty(DateProperty.DAY)+6)%7); 
    159157                for(i=1; i<=numberOfDays; i++, monthIter.add( DateProperty.DATE, 1 )) { 
    160  
    161158 
    162159                    ev = new DayEventsField(); 
  • ssme/trunk/flex/Common/src/com/kh/ssme/entity/TimeFrameEntity.as

    r4037 r4046  
    8484        protected static const meetingRequests_field:String = 'meetingRequests'; 
    8585        protected static const priority_field:String = 'priority'; 
     86 
     87        public function clone():TimeFrameEntity{ 
     88            var newTF:TimeFrameEntity = new TimeFrameEntity(); 
     89 
     90            // plain 
     91            newTF.from = new Date(from.time); 
     92            newTF.to = new Date(to.time); 
     93            newTF.repeatTypeUUID = new String( repeatTypeUUID ); 
     94            newTF.repeatTypeName = new String( repeatTypeName ); 
     95            newTF.repeatTypeEntity = new String( repeatTypeEntity ); 
     96            newTF.title = new String( title ); 
     97            newTF.description = new String( description ); 
     98 
     99            // enums 
     100            newTF.type = type; 
     101            newTF.priority = priority; 
     102 
     103            // entities 
     104            newTF.eventPlaceUUID = new String( eventPlaceUUID ); 
     105            newTF.eventPlaceName = new String( eventPlaceName ); 
     106            newTF.eventPlaceEntity = eventPlaceEntity; //  TODO:.clone(); 
     107            newTF.travelFromUUID = new String( travelFromUUID ); 
     108            newTF.travelFromName = new String( travelFromName ); 
     109            newTF.travelFromEntity = travelFromEntity; //  TODO:.clone(); 
     110            newTF.travelToUUID = new String( travelToUUID ); 
     111            newTF.travelToName = new String( travelToName ); 
     112            newTF.travelToEntity = travelToEntity; //  TODO:.clone(); 
     113            newTF.stayPlaceUUID = new String( stayPlaceUUID ); 
     114            newTF.stayPlaceName = new String( stayPlaceName ); 
     115            newTF.stayPlaceEntity = stayPlaceEntity; //  TODO:.clone(); 
     116            newTF.calendarUUID = new String( calendarUUID ); 
     117            newTF.calendarName = new String( calendarName ); 
     118            newTF.calendarEntity = calendarEntity; //  TODO:.clone(); 
     119            newTF.suggestedTimeStateUUID = new String( suggestedTimeStateUUID ); 
     120            newTF.suggestedTimeStateName = new String( suggestedTimeStateName ); 
     121            newTF.suggestedTimeStateEntity = suggestedTimeStateEntity; //  TODO:.clone(); 
     122 
     123            // arrays 
     124            newTF.meetingRequestsEntites = (meetingRequestsEntites) ? meetingRequestsEntites.clone() : null; 
     125            newTF.meetingRequestsNames = (meetingRequestsNames) ? meetingRequestsNames.clone() : null; 
     126             
     127            return newTF; 
     128        } 
    86129 
    87130        public override function parseJSONObject(json:Object, recursive:int = 0):* {