Changeset 4046
- Timestamp:
- 08/23/10 12:21:43 (21 months ago)
- Location:
- ssme/trunk
- Files:
-
- 2 added
- 5 modified
-
flex/Calendar/src/com/kh/ssme/components/DayEventsField.as (modified) (8 diffs)
-
flex/Calendar/src/com/kh/ssme/components/EventBox.mxml (added)
-
flex/Calendar/src/com/kh/ssme/components/EventField.as (modified) (3 diffs)
-
flex/Calendar/src/com/kh/ssme/components/EventTooltip.mxml (added)
-
flex/Calendar/src/com/kh/ssme/components/MonthCanvas.as (modified) (3 diffs)
-
flex/Common/src/com/kh/ssme/entity/TimeFrameEntity.as (modified) (1 diff)
-
web/flex/Calendar.swf (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
-
ssme/trunk/flex/Calendar/src/com/kh/ssme/components/DayEventsField.as
r4045 r4046 23 23 package com.kh.ssme.components { 24 24 25 import com.kh.ssme.entity.TimeFrameEntity; 25 import com.kh.ssme.components.EventTooltip; 26 import com.kh.ssme.entity.TimeFrameEntity; 26 27 import com.kh.ssme.util.DayEventsFieldTypeEnum; 27 28 import com.kh.ssme.util.HashArray; … … 32 33 import mx.controls.Button; 33 34 import mx.controls.Label; 35 import mx.events.ToolTipEvent; 34 36 import mx.formatters.DateFormatter; 35 37 … … 48 50 this.visible = this.includeInLayout = true; 49 51 setStyle("borderThickness", 2); 50 setStyle("borderColor", 0xBBBBFF); 52 setStyle("borderColor", 0xBBBBFF); 53 this.verticalScrollPolicy = "off"; 54 this.horizontalScrollPolicy = "off"; 51 55 52 56 container_ = new VBox(); 53 57 container_.percentWidth = 100; 54 58 container_.percentHeight = 100; 59 container_.setStyle("verticalGap",0); 60 container_.setStyle("textAlign","center"); 61 container_.verticalScrollPolicy = "off"; 62 container_.horizontalScrollPolicy = "off"; 55 63 this.addChild( container_ ); 56 64 … … 64 72 innerContainer_.percentWidth = 100; 65 73 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"; 67 80 container_.addChild( innerContainer_ ); 68 81 … … 76 89 timeFormatter.formatString = "JJ:NN"; 77 90 78 this.toolTip = "";79 91 } 80 92 … … 106 118 var timeframe:TimeFrameEntity, o:Object, tempButton:Button; 107 119 for each(o in dataProviderArray_){ 108 timeframe = (o.value Ofas TimeFrameEntity);120 timeframe = (o.value as TimeFrameEntity); 109 121 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; 117 127 innerContainer_.addChild( tempButton ); 118 128 } … … 126 136 } 127 137 private function sortTimeFrames(a:Object, b:Object):int { 138 var result:Number = 0; 128 139 if(a && b && a.value && b.value && a.value is TimeFrameEntity && b.value is TimeFrameEntity){ 129 re turn(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; 130 141 } 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; 132 150 } 133 151 152 134 153 protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 135 154 super.updateDisplayList( unscaledWidth, unscaledHeight ); … … 145 164 sumHeight += button.height; 146 165 button.visible = button.includeInLayout = sumHeight < unscaledHeight; 166 button.width = unscaledWidth - 8;//Math.max( 0, unscaledWidth-button.width/2 ); 147 167 if(sumHeight < unscaledHeight) displayed++; 148 168 } 149 150 bottomTitle_.text = "+"+(dataProvider_.size - displayed); 169 bottomTitle_.text = (dataProvider_.size > displayed) ? "+"+(dataProvider_.size - displayed) : ""; 151 170 } 152 171 -
ssme/trunk/flex/Calendar/src/com/kh/ssme/components/EventField.as
r4043 r4046 39 39 this.addChild( container_ ); 40 40 41 this.toolTip = ""; 41 this.toolTip = " "; 42 this.addEventListener(ToolTipEvent.TOOL_TIP_CREATE, createEventTooltip); 42 43 } 43 44 … … 93 94 public var leftPosition:int; 94 95 96 95 97 protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 96 98 super.updateDisplayList( unscaledWidth, unscaledHeight ); … … 107 109 } 108 110 111 private function createEventTooltip(event:ToolTipEvent):void { 112 event.toolTip = new EventTooltip(); 113 (event.toolTip as EventTooltip).data = (data) ? data : null; 114 } 115 109 116 } 110 117 -
ssme/trunk/flex/Calendar/src/com/kh/ssme/components/MonthCanvas.as
r4045 r4046 92 92 monthBeginDay = (new DateUtil(value)).monthBegin(); 93 93 var nextMonthBegin:DateUtil = monthBeginDay.clone().add(DateProperty.MONTH, 1); 94 monthEndDay = nextMonthBegin.clone(). sub(DateProperty.DATE, 1);94 monthEndDay = nextMonthBegin.clone().dayEnd(); 95 95 96 96 numberOfDays = nextMonthBegin.diff( monthBeginDay, DateProperty.DAY ); … … 98 98 numberOfWeeks = Math.ceil((7 - ((monthBeginDay.getProperty(DateProperty.DAY)+7)%7) + numberOfDays) / 7.0 ); 99 99 } 100 101 102 // toolTip = "currentDay: "+currentDay_+"; numberOfDays:"+numberOfDays+"; numberOfWeeks:"+numberOfWeeks+"; " +103 // "monthBeginDay:"+(monthBeginDay.toString())+"; monthEndDay:"+(monthEndDay.toString());104 100 } 105 101 public function get currentDay():Date{ … … 144 140 145 141 // 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); 148 148 } 149 149 } 150 150 } 151 151 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 156 153 // create DayEventsField instance for each day in month 154 var ev:DayEventsField; 157 155 var monthIter:DateUtil = monthBeginDay.clone(); 158 156 var complement:int = ((monthBeginDay.getProperty(DateProperty.DAY)+6)%7); 159 157 for(i=1; i<=numberOfDays; i++, monthIter.add( DateProperty.DATE, 1 )) { 160 161 158 162 159 ev = new DayEventsField(); -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/TimeFrameEntity.as
r4037 r4046 84 84 protected static const meetingRequests_field:String = 'meetingRequests'; 85 85 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 } 86 129 87 130 public override function parseJSONObject(json:Object, recursive:int = 0):* {
