Changeset 4037
- Timestamp:
- 08/09/10 10:51:45 (22 months ago)
- Location:
- ssme/trunk/flex
- Files:
-
- 7 added
- 19 modified
-
Calendar/src/assets (added)
-
Calendar/src/assets/calendar.css (added)
-
Calendar/src/assets/refresh_active.png (added)
-
Calendar/src/assets/refresh_over.png (added)
-
Calendar/src/Calendar.mxml (modified) (5 diffs)
-
Calendar/src/com/kh/ssme/components/DayCanvas.as (modified) (6 diffs)
-
Calendar/src/com/kh/ssme/components/HourVLine.as (added)
-
Calendar/src/com/kh/ssme/components/VerticalLabelsList.as (added)
-
Common/src/com/kh/ssme/components/GridCanvas.as (modified) (9 diffs)
-
Common/src/com/kh/ssme/components/SSMEApplication.as (modified) (2 diffs)
-
Common/src/com/kh/ssme/connector/BasicQueuedConnector.as (modified) (1 diff)
-
Common/src/com/kh/ssme/connector/CalendarConnector.as (modified) (1 diff)
-
Common/src/com/kh/ssme/connector/Params.as (added)
-
Common/src/com/kh/ssme/entity/CalendarEntity.as (modified) (1 diff)
-
Common/src/com/kh/ssme/entity/ErrorMessageEntity.as (modified) (1 diff)
-
Common/src/com/kh/ssme/entity/GroupEntity.as (modified) (2 diffs)
-
Common/src/com/kh/ssme/entity/LocationEntity.as (modified) (1 diff)
-
Common/src/com/kh/ssme/entity/RepeatTypeEntity.as (modified) (1 diff)
-
Common/src/com/kh/ssme/entity/RoleEntity.as (modified) (2 diffs)
-
Common/src/com/kh/ssme/entity/StayPlaceEntity.as (modified) (1 diff)
-
Common/src/com/kh/ssme/entity/TimeFrameEntity.as (modified) (1 diff)
-
Common/src/com/kh/ssme/entity/TimeFrameStateEntity.as (modified) (1 diff)
-
Common/src/com/kh/ssme/entity/UserEntity.as (modified) (5 diffs)
-
Common/src/com/kh/ssme/util/DateUtil.as (modified) (2 diffs)
-
Common/src/com/kh/ssme/util/HashArray.as (modified) (2 diffs)
-
Common/src/com/kh/ssme/util/LoggingComponentsEnum.as (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ssme/trunk/flex/Calendar/src/Calendar.mxml
r4036 r4037 29 29 backgroundGradientAlphas="[0, 0]" 30 30 loadUserEntity="true" 31 currentState="day" 31 32 > 32 33 34 <!-- ========================================================= --> 35 <components:states> 36 <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 </mx:State> 50 <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 </mx:State> 64 <mx:State name="month" /> 65 </components:states> 66 <!-- ========================================================= --> 67 <components:transitions> 68 <mx:Transition fromState="month" toState="day"> 69 <mx:Parallel duration="500"> 70 <mx:Resize target="{ dayBox }" heightTo="{ canvasContainer.height }"/> 71 <mx:Resize target="{ monthBox }" heightTo="0" /> 72 </mx:Parallel> 73 </mx:Transition> 74 <mx:Transition fromState="month" toState="week"> 75 <mx:Parallel duration="500"> 76 <mx:Resize target="{ dayBox }" heightTo="{ canvasContainer.height }"/> 77 <mx:Resize target="{ monthBox }" heightTo="0" /> 78 </mx:Parallel> 79 </mx:Transition> 80 <mx:Transition fromState="*" toState="month"> 81 <mx:Parallel duration="500"> 82 <mx:Resize target="{ dayBox }" heightTo="0"/> 83 <mx:Resize target="{ monthBox }" heightTo="{ canvasContainer.height }" /> 84 </mx:Parallel> 85 </mx:Transition> 86 </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 <!-- ========================================================= --> 91 92 93 <mx:Style source="assets/calendar.css" /> 94 33 95 <components:HeaderlessPanel 34 id="panel" width="100%" height=" 100%" dropShadowEnabled="true"96 id="panel" width="100%" height="98%" dropShadowEnabled="true" 35 97 horizontalAlign="left" verticalAlign="top" 36 98 backgroundAlpha="0.4" 37 layout="vertical"> 38 39 <mx:HBox width="100%"> 99 layout="vertical" 100 horizontalScrollPolicy="off" verticalScrollPolicy="off" 101 > 102 103 <mx:HBox width="100%" id="select" height="35" backgroundColor="red" verticalAlign="middle"> 40 104 41 <mx:ComboBox id="calendarCombo" dataProvider="{ calendarsList }" labelField="name" change="calendarSelected(event);"/>42 43 <mx:DateField id="cho osenDate"105 <mx:ComboBox id="calendarCombo" dataProvider="{ calendarsList }" labelField="name" /> 106 107 <mx:DateField id="chosenDate" 44 108 firstDayOfWeek="1" 45 dayNames="[ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ]"109 dayNames="[ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ]" 46 110 formatString="DD-MM-YYYY" 47 111 yearNavigationEnabled="true" 48 editable="false" /> 49 50 <mx:ToggleButtonBar id="state"> 112 editable="false" 113 /> 114 115 <mx:ToggleButtonBar id="state" itemClick="{ toggleClicked(event); }"> 51 116 <mx:dataProvider> 52 117 <mx:Array> … … 58 123 </mx:ToggleButtonBar> 59 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="" /> 134 60 135 </mx:HBox> 61 136 62 63 <components:DayCanvas id="canvas" 64 width="100%" height="100%" 65 outerBorderColor="0xff0000" outerBorderAlpha="0.5" outerBorderThickness="4" 66 innerBorderColors="[ 0x000000, 0x444444, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3, 0.3 ]" innerBorderThicknesses="[ 2, 1, 1 ]" 67 backgroundColor="0xffffff" backgroundAlpha="0" 68 rows="[ 24, 48, 96 ]" columns="[ 1 ]" 69 cornerRadius="10"> 137 <mx:Box id="canvasContainer" width="100%" height="600" 138 paddingLeft="0" paddingTop="0" paddingRight="0" paddingBottom="0" 139 horizontalScrollPolicy="off" verticalScrollPolicy="off"> 70 140 71 </components:DayCanvas> 72 73 <components:Timetable id="timetable" > 74 </components:Timetable> 75 141 <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, 0x444444, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3, 0.3 ]" innerBorderThicknesses="[ 2, 1, 1 ]" 158 backgroundColor="0xffffff" backgroundAlpha="0" 159 rows="[ 24, 48, 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, 0x444444, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3, 0.3 ]" innerBorderThicknesses="[ 2, 1, 1 ]" 169 backgroundColor="0xffffff" backgroundAlpha="0" 170 rows="[ 24, 48, 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, 0x444444, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3, 0.3 ]" innerBorderThicknesses="[ 2, 1, 1 ]" 180 backgroundColor="0xffffff" backgroundAlpha="0" 181 rows="[ 24, 48, 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, 0x444444, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3, 0.3 ]" innerBorderThicknesses="[ 2, 1, 1 ]" 191 backgroundColor="0xffffff" backgroundAlpha="0" 192 rows="[ 24, 48, 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, 0x444444, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3, 0.3 ]" innerBorderThicknesses="[ 2, 1, 1 ]" 202 backgroundColor="0xffffff" backgroundAlpha="0" 203 rows="[ 24, 48, 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, 0x444444, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3, 0.3 ]" innerBorderThicknesses="[ 2, 1, 1 ]" 213 backgroundColor="0xffffff" backgroundAlpha="0" 214 rows="[ 24, 48, 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, 0x444444, 0x888888 ]" innerBorderAlphas="[ 0.5, 0.3, 0.3 ]" innerBorderThicknesses="[ 2, 1, 1 ]" 224 backgroundColor="0xffffff" backgroundAlpha="0" 225 rows="[ 24, 48, 96 ]" columns="[ 1 ]" 226 showEffect="{ fadeIn }" hideEffect="{ fadeOut }" 227 cornerRadius="0"> 228 </components:DayCanvas> 229 230 </mx:HBox> 231 232 <mx:HBox id="monthBox" width="100%" height="0" maxHeight="{ canvasContainer.height }" 233 horizontalScrollPolicy="off" verticalScrollPolicy="off" 234 paddingTop="10" paddingBottom="10"> 235 236 <mx:Canvas backgroundColor="0xffff00" width="100%" height="100%" /> 237 238 </mx:HBox> 239 </mx:Box> 76 240 77 241 </components:HeaderlessPanel> 78 242 <mx:Script> 79 243 <![CDATA[ 80 import com.adobe.utils.DateUtil; 244 245 import com.kh.ssme.components.ModalSpinner; 81 246 import com.kh.ssme.connector.BasicQueuedConnector; 82 247 import com.kh.ssme.connector.CalendarConnector; 248 import com.kh.ssme.connector.ConnectorResult; 249 import com.kh.ssme.connector.Params; 83 250 import com.kh.ssme.connector.TimeFrameConnector; 84 85 import mx.controls.Alert; 251 import com.kh.ssme.entity.CalendarEntity; 252 import com.kh.ssme.entity.ErrorMessageEntity; 253 import com.kh.ssme.util.DateUtil; 254 import com.kh.ssme.util.Logger; 255 256 import com.kh.ssme.util.LoggingComponentsEnum; 257 import com.kh.ssme.util.SsmeEvent; 258 86 259 import mx.events.FlexEvent; 87 88 260 89 261 private var timeFrameConnector:TimeFrameConnector; … … 107 279 if(!userEntityLoaded) addEventListener("ssme_userLoaded", prepareCalendarList) 108 280 281 currentState = "day"; 282 109 283 } 110 284 111 285 private const DAY:int = 0; 112 286 private const WEEK:int = 1; 113 private const MONTH:int = 2; 287 private const MONTH:int = 2; 288 289 private function toggleClicked(event:Event):void { 290 switch( state.selectedIndex ){ 291 case DAY: currentState="day"; break; 292 case WEEK: currentState="week"; break; 293 case MONTH: currentState="month"; break; 294 } 295 loadEvents(event); 296 } 114 297 115 298 private function prepareCalendarList(event:Event):void { … … 122 305 } 123 306 124 private function calendarSelected(event:Event):void { 125 if(calendarCombo.selectedItem){ 126 Alert.show(calendarCombo.selectedItem.uuid+' '+calendarCombo.selectedItem.name); 127 128 var date:Date = choosenDate.selectedDate; 129 // DateUtil. 130 // ModalSpinner.instance.showSpinner("Loading calendar...", 0x269926, panel, 0.2); 131 // if(calendarCombo.selectedItem.uuid){ 132 // calendarConnector.getCalendarRange( calendarCombo.selectedItem.uuid ); 133 // } else { 134 // calendarConnector.getCalendarAll( ); 135 // } 307 private const EVENTS_RECURSION:int = 1; 308 private function loadEvents(event:Event):void { 309 310 if(calendarCombo.selectedItem // calendar chosen 311 && chosenDate.selectedDate // date chosen 312 && state.selectedIndex>=0){ // state chosen 313 314 var date:Date = chosenDate.selectedDate; // get chosen date 315 var begin:Number, end:Number; 316 switch( state.selectedIndex ){ // determine time range 317 case DAY: { 318 begin = DateUtil.dayBegin(date).timestamp; 319 end = DateUtil.dayEnd(date).timestamp; 320 break; 321 } 322 case WEEK: { 323 begin = DateUtil.weekBegin(1, date).timestamp; 324 end = DateUtil.weekEnd(1, date).timestamp; 325 break; 326 } 327 case MONTH: { 328 begin = DateUtil.monthBegin(date).timestamp; 329 end = DateUtil.monthEnd(date).timestamp; 330 break; 331 } 332 333 } 334 335 ModalSpinner.instance.showSpinner("Loading events for calendar '"+(calendarCombo.selectedItem.name)+"'...", 0x269926, panel, 0.2); 336 errorLabel.text = ""; 337 var params:Object = {}; 338 if(calendarCombo.selectedItem.uuid){ 339 params[Params.DATA_RECURSION] = EVENTS_RECURSION; 340 calendarConnector.getCalendarRange( calendarCombo.selectedItem.uuid, begin, end, params ); 341 } else { 342 params[Params.DATA_RECURSION] = EVENTS_RECURSION; 343 calendarConnector.getCalendarAll( begin, end, params ); 344 } 136 345 } 346 } 347 348 private var calendarEntity:CalendarEntity; 349 private function onCalendarGetResponse(event:Event):void { 350 var result:ConnectorResult = (event as SsmeEvent).eventProperties['result']; 351 352 if (result) { 353 // success 354 if (result.resultType == ConnectorResult.SUCCESS) { 355 Logger.debug( result.lastResult as String, LoggingComponentsEnum.CAL ); 356 calendarEntity = (new CalendarEntity()).parseJSONString( result.lastResult as String, EVENTS_RECURSION ); 357 switch( state.selectedIndex ){ // determine time range 358 case DAY: { 359 showDayEvents(); 360 break; 361 } 362 case WEEK: { 363 showWeekEvents(); 364 break; 365 } 366 // case MONTH: { 367 // showMonthEvents(); 368 // break; 369 // } 370 } 371 } 372 // error 373 else if (result.resultType == ConnectorResult.ERROR) { 374 var json:ErrorMessageEntity = (new ErrorMessageEntity()).parseJSONString( result.lastResult as String ); 375 errorLabel.text = json.errorMessage; 376 } 377 // fault 378 else if (result.resultType == ConnectorResult.FAULT) { 379 Logger.errorEvent("User error", event, LoggingComponentsEnum.USR); 380 errorLabel.text = "Connection error, please try again."; 381 } 382 } 383 ModalSpinner.instance.hideSpinner(); 384 } 385 386 private var theDayCanvas:DayCanvas = canvas_1; 387 private var dayCanvas:Array = [ canvas_1, canvas_2, canvas_3, canvas_4, canvas_5, canvas_6, canvas_7 ]; 388 private function showDayEvents():void { 389 canvas_1.dataProvider = calendarEntity.timeFramesEntitites; 390 } 391 392 private function showWeekEvents():void { 393 137 394 } 138 395 … … 145 402 146 403 147 private function onCalendarGetResponse(event:Event):void { 148 } 404 149 405 150 406 -
ssme/trunk/flex/Calendar/src/com/kh/ssme/components/DayCanvas.as
r4031 r4037 29 29 30 30 import mx.containers.Canvas; 31 import mx.controls.Label; 31 32 import mx.controls.TextArea; 32 33 … … 37 38 } 38 39 39 [ArrayElementType("com.kh.ssme.entity.TimeFrameEntity")] 40 private var dataProvider_:Array; 41 public function set dataProvider(value:Array):void{ 42 dataProvider_ = value; 43 removeAllChildren(); 44 createEvents(); 45 validateNow(); 46 } 47 public function get dataProvider():Array{ 48 return dataProvider_; 40 // public var showHourLabels:Boolean = false; 41 // 42 // private var hourLabels:HashArray = new HashArray(); 43 // 44 // override protected function createChildren():void{ 45 // super.createChildren(); 46 // 47 // if(showHourLabels){ 48 // var score:int; 49 // var el:Label; 50 // for(var i:int=0; i<=24; i++){ 51 // el = new Label(); 52 // el.id = el.text = ((i<10)?("0"+i):(i))+":00"; 53 // 54 // if( !hourLabels.containsKey(el.id) ){ 55 // 56 // this.addChild( el ); 57 // 58 // el.setStyle("textAlign","right"); 59 // el.setStyle("color", 0x000000); 60 // el.setStyle("fontSize", 11); 61 // el.visible = el.includeInLayout = false;//((i%24) == 0); 62 // score = 0x20; 63 // if(i%24 == 0) score |= 0x01; 64 // if(i%12 == 0) score |= 0x02; 65 // if(i%6 == 0) score |= 0x04; 66 // if(i%3 == 0) score |= 0x08; 67 // if(i%2 == 0) score |= 0x10; 68 // 69 // hourLabels.put( el.id, { score:score, element:el } ); 70 // 71 // } 72 // } 73 // } 74 // 75 // } 76 77 override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 78 79 // call first in order to get grid drawn correctly 80 super.updateDisplayList(unscaledWidth, unscaledHeight); 81 82 // do not erase old drawings! 83 //graphics.clear(); 84 85 // if(showHourLabels && hourLabels.size>0){ // added 86 // 87 // var textHeight:int = (hourLabels.getValueAt(0).element as Label).textHeight; // label text height 88 // var count:int = Math.floor( unscaledHeight / (textHeight*1.5) ); // determine number of labels 89 // var mark:int = 0x01; 90 // if(count <= 3) mark = 0x02; 91 // else if (count <= 5) mark = 0x04; 92 // else if (count <= 9) mark = 0x08; 93 // else if (count <= 12) mark = 0x10; 94 // else /*if (count <= 24)*/ mark = 0x20; 95 // 96 // var item:Object; 97 // var inBorderThicknesses:Array = getStyle_("innerBorderThicknesses", [ 1 ]); 98 // var ystep:Number = (unscaledHeight - (2*outerBorderThickness_+2*verticalMargin_) - (23*inBorderThicknesses[0])) / 24; 99 // var y:Number = outerBorderThickness_+verticalMargin_; 100 // //graphics.lineStyle(1, 0x0000ff, 0.7, true); // debug 101 // for (var row:int = 0; row <=24; row++ ){ 102 // //graphics.drawRoundRect(0, y - (textHeight*0.66), leftHorizontalMargin_, Math.min( Math.floor( ystep ), textHeight), 0, 0);// debug 103 // 104 // item = hourLabels.getValueAt(row); 105 // item.element.visible = item.element.includeInLayout = true;//(item.score & mark) > 0; 106 // item.element.x = 0; 107 // item.element.y = Math.floor( y - (textHeight*0.66) ); 108 // item.element.width = leftHorizontalMargin_; 109 // item.element.height = Math.min( Math.floor( ystep ), textHeight); 110 // 111 // y += (ystep + inBorderThicknesses[0]); 112 // } 113 // 114 // } 115 49 116 } 50 117 51 private var eventsMap:Object = new Object(); 118 [ArrayElementType("com.kh.ssme.entity.TimeFrameEntity")] 119 private var dataProvider_:HashArray; 120 public function set dataProvider(value:HashArray):void{ 121 dataProvider_ = value; 122 123 for(var i:int = 0; i<eventsMap.size; i++){ 124 this.removeChild( eventsMap.getValueAt(i) ); 125 } 126 createEvents(); 127 validateNow(); 128 } 129 public function get dataProvider():HashArray{ 130 return dataProvider_; 131 } 132 133 private var eventsMap:HashArray = new HashArray(); 52 134 public function createEvents():void{ 53 135 … … 57 139 // create events 58 140 var ev:EventField; 141 var i:int = 0; 59 142 for each(var json:TimeFrameEntity in dataProvider_){ 60 143 ev = new EventField(); 61 eventsMap [json.UUID] = ev;144 eventsMap.put(json.UUID, ev); 62 145 //ev.setStyle("backgroundColor", 0xffff00); 63 146 ev.setStyle("borderThickness", 5); … … 69 152 70 153 addChild( ev ); 71 sizeEvent( ev ); 154 sizeEvent( ev, i ); 155 i += 100; 72 156 73 var c:Canvas = new Canvas();74 c.width = 100;75 c.height = ev.height;76 c.x = 300;77 c.y = ev.y;78 c.setStyle("backgroundColor", 0xff0000);79 addChild( c );157 // var c:Canvas = new Canvas(); 158 // c.width = 100; 159 // c.height = ev.height; 160 // c.x = 300; 161 // c.y = ev.y; 162 // c.setStyle("backgroundColor", 0xff0000); 163 // addChild( c ); 80 164 81 165 } … … 83 167 } 84 168 85 private function sizeEvent(ev:EventField ):void{169 private function sizeEvent(ev:EventField, i:int):void{ 86 170 var data:TimeFrameEntity = ev.eventInfo.eventData; 87 171 if(data){ … … 96 180 ev.height = stepY * timeWidth; 97 181 ev.width = 200;//XXX 98 ev.x = 50 ;//XXX182 ev.x = 50+i;//XXX 99 183 ev.y = (data.from.getHours()*4 + timeBegin)*stepY + outerBorderThickness_; 100 184 ev.invalidateSize(); -
ssme/trunk/flex/Common/src/com/kh/ssme/components/GridCanvas.as
r4031 r4037 31 31 [Style(name="outerBorderThickness", type="Number", format="Number")] 32 32 [Style(name="outerBorderAlpha", type="Number", format="Number")] 33 [Style(name="verticalMargin", type="Number", format="Number")] 34 [Style(name="leftHorizontalMargin", type="Number", format="Number")] 35 [Style(name="rightHorizontalMargin", type="Number", format="Number")] 33 36 public class GridCanvas extends StyledCanvas { 34 37 … … 44 47 columns_ = value 45 48 invalidateDisplayList(); 46 } 49 } 47 50 } 48 51 … … 85 88 public function get outerBorderAlpha_():Number{ 86 89 return this.getStyle("outerBorderAlpha"); 87 } 90 } 88 91 public function set innerBorderThicknesses_(value:Array):void{ 89 92 this.setStyle("innerBorderThicknesses", value); … … 104 107 return this.getStyle("innerBorderAlphas"); 105 108 } 106 //--------------------------------------------- 109 110 public function set verticalMargin_(value:Number):void{ 111 this.setStyle("verticalMargin", value); 112 } 113 public function get verticalMargin_():Number{ 114 return this.getStyle("verticalMargin"); 115 } 116 public function set leftHorizontalMargin_(value:Number):void{ 117 this.setStyle("leftHorizontalMargin", value); 118 } 119 public function get leftHorizontalMargin_():Number{ 120 return this.getStyle("leftHorizontalMargin"); 121 } 122 public function set rightHorizontalMargin_(value:Number):void{ 123 this.setStyle("rightHorizontalMargin", value); 124 } 125 public function get rightHorizontalMargin_():Number{ 126 return this.getStyle("rightHorizontalMargin"); 127 } 128 //--------------------------------------------- 107 129 108 130 /** … … 117 139 [ArrayElementType("int")] 118 140 var inBorderThicknesses:Array = getStyle_("innerBorderThicknesses", [ 0 ]); 119 [ArrayElementType("uint")] 141 [ArrayElementType("uint")] 120 142 var inBorderColors:Array = getStyle_("innerBorderColors", [ 0x000000 ]); 121 [ArrayElementType("Number")] 143 [ArrayElementType("Number")] 122 144 var inBorderAlphas:Array = getStyle_("innerBorderAlphas", [ 1.0 ]); 123 var cornerRadius:Number = getStyle_("cornerRadius", 0.0); 145 var cornerRadius:Number = getStyle_("cornerRadius", 0.0); 146 var verticalMargin:Number = getStyle_("verticalMargin",0); 147 var leftHorizontalMargin:Number = getStyle_("leftHorizontalMargin",0); 148 var rightHorizontalMargin:Number = getStyle_("rightHorizontalMargin",0); 124 149 125 150 … … 133 158 CapsStyle.NONE); 134 159 graphics.beginFill(this.getStyle("backgroundColor"), this.getStyle("backgroundAlpha")); 135 graphics.drawRoundRect(outBorderThickness, outBorderThickness, unscaledWidth-2*outBorderThickness, unscaledHeight-2*outBorderThickness, cornerRadius, cornerRadius); 160 graphics.drawRoundRect(outBorderThickness+leftHorizontalMargin, outBorderThickness+verticalMargin, // x, y 161 unscaledWidth-(2*outBorderThickness+leftHorizontalMargin+rightHorizontalMargin), // width 162 unscaledHeight-(2*outBorderThickness+2*verticalMargin), // height 163 cornerRadius, cornerRadius); 136 164 graphics.endFill(); 137 } 165 } 138 166 139 167 //border … … 146 174 LineScaleMode.NORMAL, //scale 147 175 CapsStyle.NONE); 148 graphics.drawRoundRect(outBorderThickness*0.5, outBorderThickness*0.5, unscaledWidth-outBorderThickness, unscaledHeight-outBorderThickness, cornerRadius, cornerRadius); 149 } 176 graphics.drawRoundRect(leftHorizontalMargin+outBorderThickness*0.5, verticalMargin+outBorderThickness*0.5, // x, y 177 unscaledWidth-outBorderThickness-leftHorizontalMargin-rightHorizontalMargin, // width, 178 unscaledHeight-outBorderThickness-2*verticalMargin, // height 179 cornerRadius, cornerRadius); 180 } 150 181 151 182 … … 163 194 164 195 if(columns_.length>=i){ 165 var xstep:Number = (unscaledWidth - 2*outBorderThickness- (columns_[i] - 1)*inBorderThickness) / columns_[i];166 var x:Number = outBorderThickness 196 var xstep:Number = (unscaledWidth - (2*outBorderThickness+leftHorizontalMargin+rightHorizontalMargin) - (columns_[i] - 1)*inBorderThickness) / columns_[i]; 197 var x:Number = outBorderThickness+leftHorizontalMargin; 167 198 for ( var col:int = 1; col < columns_[i]; col++ ) 168 199 { 169 200 x += (xstep + inBorderThickness); 170 graphics.moveTo(x - inBorderThickness*0.5, outBorderThickness );// + inBorderThickness*0.5);171 graphics.lineTo(x - inBorderThickness*0.5, unscaledHeight - outBorderThickness );// - inBorderThickness*0.5);201 graphics.moveTo(x - inBorderThickness*0.5, outBorderThickness + verticalMargin);// + inBorderThickness*0.5); 202 graphics.lineTo(x - inBorderThickness*0.5, unscaledHeight - outBorderThickness - verticalMargin);// - inBorderThickness*0.5); 172 203 } 173 204 } 174 205 if(rows_.length>=i){ 175 var ystep:Number = (unscaledHeight - 2*outBorderThickness - (rows_[i] - 1)*inBorderThickness) / rows_[i];176 var y:Number = outBorderThickness ;206 var ystep:Number = (unscaledHeight - (2*outBorderThickness+2*verticalMargin) - (rows_[i] - 1)*inBorderThickness) / rows_[i]; 207 var y:Number = outBorderThickness+verticalMargin; 177 208 for (var row:int = 1; row < rows_[i]; row++ ) 178 209 { 179 210 y += (ystep + inBorderThickness); 180 graphics.moveTo(outBorderThickness ,// + inBorderThickness*0.5,211 graphics.moveTo(outBorderThickness + leftHorizontalMargin,// + inBorderThickness*0.5, 181 212 y - inBorderThickness*0.5); 182 graphics.lineTo(unscaledWidth - outBorderThickness , // - inBorderThickness*0.5,213 graphics.lineTo(unscaledWidth - outBorderThickness - rightHorizontalMargin, // - inBorderThickness*0.5, 183 214 y - inBorderThickness*0.5); 184 215 } … … 190 221 191 222 192 193 223 } 194 224 -
ssme/trunk/flex/Common/src/com/kh/ssme/components/SSMEApplication.as
r4035 r4037 93 93 this.addEventListener( mx.events.FlexEvent.INITIALIZE, onInit ); 94 94 } 95 95 96 96 97 97 private function onInit(event:Event):void { … … 101 101 Application.application.height = "100%"; 102 102 103 this.setStyle("paddingLeft", 5);104 this.setStyle("paddingRight", 5);105 this.setStyle("paddingTop", 5);106 this.setStyle("paddingBottom", 10);103 this.setStyle("paddingLeft", 0); 104 this.setStyle("paddingRight", 0); 105 this.setStyle("paddingTop", 0); 106 this.setStyle("paddingBottom", 5); 107 107 108 108 //--------------------------------------- -
ssme/trunk/flex/Common/src/com/kh/ssme/connector/BasicQueuedConnector.as
r4035 r4037 208 208 } 209 209 } 210 //------------------------------------------------- 210 //------------------------------------------------- 211 212 protected function P(name:*, value:*):String{ 213 return name+"="+value; 214 } 211 215 212 216 } -
ssme/trunk/flex/Common/src/com/kh/ssme/connector/CalendarConnector.as
r4035 r4037 33 33 * Path to proper servlet 34 34 */ 35 private static const calendarServlet:String = " timeFrame/";35 private static const calendarServlet:String = "calendar/"; 36 36 public override function get servlet():String{ 37 37 return calendarServlet; -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/CalendarEntity.as
r4036 r4037 114 114 115 115 public override function parseJSONString(json:String, recursive:int = 0):* { 116 return parseJSONObject( JSONObject.decode(json) ); 116 var jsonEntity:Object = JSONObject.decode(json); 117 return parseJSONObject( jsonEntity, recursive ); 117 118 } 118 119 119 120 public override function toJSONString():String { 120 return JSONObject.encode( toJSONObject() ); 121 } 121 var jsonObject:Object = toJSONObject(); 122 var result:String = JSONObject.encode( jsonObject ); 123 return result; 124 } 122 125 } 123 126 } -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/ErrorMessageEntity.as
r4035 r4037 55 55 public function toJSONString():String { 56 56 return null; 57 } 57 } 58 58 59 59 } -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/GroupEntity.as
r4036 r4037 107 107 public override function parseJSONString(json:String, recursive:int = 0):* { 108 108 var jsonEntity:Object = JSONObject.decode(json); 109 return parseJSONObject( jsonEntity );109 return parseJSONObject( jsonEntity, recursive ); 110 110 } 111 111 … … 114 114 var result:String = JSONObject.encode( jsonObject ); 115 115 return result; 116 } 116 } 117 117 118 118 } -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/LocationEntity.as
r4035 r4037 141 141 142 142 public override function parseJSONString(json:String, recursive:int = 0):* { 143 return parseJSONObject( JSONObject.decode(json) ); 143 var jsonEntity:Object = JSONObject.decode(json); 144 return parseJSONObject( jsonEntity, recursive ); 144 145 } 145 146 146 147 public override function toJSONString():String { 147 return JSONObject.encode( toJSONObject() ); 148 } 148 var jsonObject:Object = toJSONObject(); 149 var result:String = JSONObject.encode( jsonObject ); 150 return result; 151 } 149 152 } 150 153 } -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/RepeatTypeEntity.as
r4036 r4037 100 100 101 101 public override function parseJSONString(json:String, recursive:int = 0):* { 102 return parseJSONObject( JSONObject.decode(json) ); 102 var jsonEntity:Object = JSONObject.decode(json); 103 return parseJSONObject( jsonEntity, recursive ); 103 104 } 104 105 105 106 public override function toJSONString():String { 106 return JSONObject.encode( toJSONObject() ); 107 var jsonObject:Object = toJSONObject(); 108 var result:String = JSONObject.encode( jsonObject ); 109 return result; 107 110 } 111 108 112 } 113 109 114 } -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/RoleEntity.as
r4036 r4037 59 59 public override function parseJSONString(json:String, recursive:int = 0):* { 60 60 var jsonEntity:Object = JSONObject.decode(json); 61 return parseJSONObject( jsonEntity );61 return parseJSONObject( jsonEntity, recursive ); 62 62 } 63 63 … … 66 66 var result:String = JSONObject.encode( jsonObject ); 67 67 return result; 68 } 69 68 } 70 69 71 70 } 72 71 73 74 75 72 } -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/StayPlaceEntity.as
r4035 r4037 72 72 73 73 public override function parseJSONString(json:String, recursive:int = 0):* { 74 return parseJSONObject( JSONObject.decode(json) ); 74 var jsonEntity:Object = JSONObject.decode(json); 75 return parseJSONObject( jsonEntity, recursive ); 75 76 } 76 77 77 78 public override function toJSONString():String { 78 return JSONObject.encode( toJSONObject() ); 79 var jsonObject:Object = toJSONObject(); 80 var result:String = JSONObject.encode( jsonObject ); 81 return result; 79 82 } 83 80 84 } 85 81 86 } -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/TimeFrameEntity.as
r4036 r4037 184 184 185 185 public override function parseJSONString(json:String, recursive:int = 0):* { 186 return parseJSONObject( JSONObject.decode(json) ); 187 } 186 var jsonEntity:Object = JSONObject.decode(json); 187 return parseJSONObject( jsonEntity, recursive ); 188 } 188 189 189 190 public override function toJSONString():String { 190 return JSONObject.encode( toJSONObject() ); 191 var jsonObject:Object = toJSONObject(); 192 var result:String = JSONObject.encode( jsonObject ); 193 return result; 191 194 } 195 192 196 } 193 197 -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/TimeFrameStateEntity.as
r4035 r4037 64 64 65 65 public override function parseJSONString(json:String, recursive:int = 0):* { 66 return parseJSONObject( JSONObject.decode(json) ); 66 var jsonEntity:Object = JSONObject.decode(json); 67 return parseJSONObject( jsonEntity, recursive ); 67 68 } 68 69 69 70 public override function toJSONString():String { 70 return JSONObject.encode( toJSONObject() ); 71 var jsonObject:Object = toJSONObject(); 72 var result:String = JSONObject.encode( jsonObject ); 73 return result; 71 74 } 75 72 76 } 77 73 78 } -
ssme/trunk/flex/Common/src/com/kh/ssme/entity/UserEntity.as
r4036 r4037 100 100 for(i = 0; i<json[ownedGroups_field].length; i++){ 101 101 ogrp = (new GroupEntity()).parseJSONObject( (json[ownedGroups_field][i]), recursive-1 ); 102 groupsEntities.put( ogrp.UUID, ogrp );103 groupsNames.put( ogrp.UUID, ogrp.name );102 ownedGroupsEntities.put( ogrp.UUID, ogrp ); 103 ownedGroupsNames.put( ogrp.UUID, ogrp.name ); 104 104 } 105 105 } else { 106 106 for(i = 0; i<json[ownedGroups_field].length; i++){ 107 groupsEntities.put( (json[ownedGroups_field][i])[uuid_field], null );108 groupsNames.put( (json[ownedGroups_field][i])[uuid_field], (json[ownedGroups_field][i])[readableName_field] );107 ownedGroupsEntities.put( (json[ownedGroups_field][i])[uuid_field], null ); 108 ownedGroupsNames.put( (json[ownedGroups_field][i])[uuid_field], (json[ownedGroups_field][i])[readableName_field] ); 109 109 } 110 110 } … … 118 118 for(i = 0; i<json[roles_field].length; i++){ 119 119 role = (new RoleEntity()).parseJSONObject( (json[roles_field][i]), recursive-1 ); 120 groupsEntities.put( role.UUID, role );121 groupsNames.put( role.UUID, role.role );120 rolesEntities.put( role.UUID, role ); 121 rolesNames.put( role.UUID, role.role ); 122 122 } 123 123 } else { 124 124 for(i = 0; i<json[roles_field].length; i++){ 125 groupsEntities.put( (json[roles_field][i])[uuid_field], null );126 groupsNames.put( (json[roles_field][i])[uuid_field], (json[roles_field][i])[readableName_field] );125 rolesEntities.put( (json[roles_field][i])[uuid_field], null ); 126 rolesNames.put( (json[roles_field][i])[uuid_field], (json[roles_field][i])[readableName_field] ); 127 127 } 128 128 } … … 136 136 for(i = 0; i<json[calendars_field].length; i++){ 137 137 cal = (new CalendarEntity()).parseJSONObject( (json[calendars_field][i]), recursive-1 ); 138 groupsEntities.put( cal.UUID, cal );139 groupsNames.put( cal.UUID, cal.name );138 calendarsEntities.put( cal.UUID, cal ); 139 calendarsNames.put( cal.UUID, cal.name ); 140 140 } 141 141 } else { 142 142 for(i = 0; i<json[calendars_field].length; i++){ 143 groupsEntities.put( (json[calendars_field][i])[uuid_field], null );144 groupsNames.put( (json[calendars_field][i])[uuid_field], (json[calendars_field][i])[readableName_field] );143 calendarsEntities.put( (json[calendars_field][i])[uuid_field], null ); 144 calendarsNames.put( (json[calendars_field][i])[uuid_field], (json[calendars_field][i])[readableName_field] ); 145 145 } 146 146 } … … 190 190 public override function parseJSONString(json:String, recursive:int = 0):* { 191 191 var jsonEntity:Object = JSONObject.decode(json); 192 return parseJSONObject( jsonEntity );192 return parseJSONObject( jsonEntity, recursive ); 193 193 } 194 194 … … 197 197 var result:String = JSONObject.encode( jsonObject ); 198 198 return result; 199 } 199 } 200 200 201 201 } -
ssme/trunk/flex/Common/src/com/kh/ssme/util/DateUtil.as
r4035 r4037 93 93 94 94 /** 95 * Get the Date object 96 * @return 97 */ 98 public function get timestamp():Number{ 99 return date_.time; 100 } 101 102 103 /** 95 104 * Create a new DateUtil for the passed in date. Updates will not effect the original date. 96 105 * @return … … 189 198 this.add(DateProperty.DATE, (firstDay-this.date_.day) -1).dayEnd() 190 199 : 191 this.add(DateProperty.DATE, 7 - (this.date_.day - firstDay) -1).day Begin();200 this.add(DateProperty.DATE, 7 - (this.date_.day - firstDay) -1).dayEnd(); 192 201 } 193 202 -
ssme/trunk/flex/Common/src/com/kh/ssme/util/HashArray.as
r4036 r4037 55 55 */ 56 56 public function put(key:*, value:*):Object{ 57 var contains:Boolean = containsKey(key); 57 var contains:Boolean = containsKey(key); 58 //trace(" contains:"+contains+" - "+key+":"+value); 58 59 if (!contains){ 59 60 this.keys_.push( key ); // add to keys array … … 120 121 return this.size_; 121 122 } 123 /** 124 * Returns the size of the array 125 */ 126 public function get length():int{ 127 return this.size_; 128 } 122 129 123 130 -
ssme/trunk/flex/Common/src/com/kh/ssme/util/LoggingComponentsEnum.as
r4035 r4037 33 33 public static const REG:LoggingComponentsEnum = new LoggingComponentsEnum("Register","REG"); 34 34 public static const USR:LoggingComponentsEnum = new LoggingComponentsEnum("User","USR"); 35 public static const CAL:LoggingComponentsEnum = new LoggingComponentsEnum("Calendar","CAL"); 35 36 public static const GRP:LoggingComponentsEnum = new LoggingComponentsEnum("Group","GRP"); 36 37 … … 45 46 VALUES[REG.ID] = REG; 46 47 VALUES[USR.ID] = USR; 48 VALUES[CAL.ID] = CAL; 47 49 VALUES[GRP.ID] = GRP; 48 50 }
