// ActionScript file import flash.events.Event; import flash.events.MouseEvent; import mx.controls.Label; import mx.controls.Spacer; import mx.effects.Resize; import mx.events.ListEvent; private var resizeCollateral:Resize = new Resize (); private var resizeCollateralDetails:Resize = new Resize (); private var lastCollateralHeight:int = -1; public var isCollateralClosed:Boolean=false; private var lastCollateralDetailsHeight:int = -1; public var isCollateralDetailsClosed:Boolean=true; public var categories:Array = new Array(); public var productsArray:Array = new Array(); public var updateCollateral:Function; [Bindable] public var filterType:String; [Bindable] public var filterCategory:String; [Bindable] public var filterProduct:String; [Bindable] public var selectedId:String; [Bindable] private var _baseURL:String; public function set baseURL(value:String):void{_baseURL = value;} public function get baseURL():String{return _baseURL;} public function init(evt:Event):void{ collateralBox.setDownButtonUp(); } private function toggleCollateral():void{ if (lastCollateralHeight==-1) lastCollateralHeight = collateralGrid.height; if (isCollateralDetailsClosed) return toggleCollateralDetails(); if (isCollateralClosed) { resizeCollateral.heightFrom = collateralContent.height; resizeCollateral.heightTo = lastCollateralHeight; resizeCollateral.duration = 400; isCollateralClosed = false; collateralBox.setDownButtonDown(); collateralBox.setUpButtonUp(); } else{ resizeCollateral.heightFrom = collateralContent.height; resizeCollateral.heightTo = 0; resizeCollateral.duration = 400; isCollateralClosed = true; collateralBox.setDownButtonDown(); collateralBox.setUpButtonDown(); } lastCollateralHeight = collateralContent.height; resizeCollateral.targets = [collateralContent]; resizeCollateral.play(); } public function toggleCollateralDetails():void{ if (lastCollateralDetailsHeight==-1) lastCollateralDetailsHeight = collateralGrid.height/2; if (isCollateralClosed) return toggleCollateral(); if (isCollateralDetailsClosed){ resizeCollateralDetails.heightFrom = collateralDetails.height; resizeCollateralDetails.heightTo = lastCollateralDetailsHeight; resizeCollateralDetails.duration = 400; isCollateralDetailsClosed = false; collateralBox.setDownButtonDown(); collateralBox.setUpButtonUp(); } else{ resizeCollateralDetails.heightFrom = collateralDetails.height; resizeCollateralDetails.heightTo = 0; resizeCollateralDetails.duration = 400; isCollateralDetailsClosed = true; collateralBox.setDownButtonUp(); collateralBox.setUpButtonUp(); } lastCollateralDetailsHeight = collateralDetails.height; resizeCollateralDetails.target = collateralDetails; collateralContent.percentHeight = 100; resizeCollateralDetails.play(); } private function formatDate(item:Object,column:DataGridColumn):String { var date:String = (item.created_on as Date).toDateString(); return date.substr(date.indexOf(" ")+1);//remove day name cause it isnt in spec } private function formatProducts(item:Object,column:DataGridColumn):String { var value:String; item.products_string == null ? value="" : value = item.products_string.replace(/, /g,", "); return value; } private function setDetails(evt:ListEvent):void{ if (collateralGrid.selectedItem){ if (isCollateralDetailsClosed) toggleCollateralDetails(); selectedId=collateralGrid.selectedItem.id; collateralDetails.details = collateralGrid.selectedItem; updateCollateral(collateralGrid.selectedItem); } } public function setFilters(bool:Boolean=false):void{ collateralGrid.setFilters(filterType,filterCategory,filterProduct,bool); collateralGrid.invalidateDisplayList(); buildPages(); } public function addLoader():void{ HBox(collateralGrid.parent).enabled=false; loader.x = collateralGrid.width/2-loader.width/2; loader.y = collateralGrid.height/2-loader.height/2; loader.visible=true; } public function removeLoader():void{ HBox(collateralGrid.parent).enabled=true; loader.visible=false; } public function selectById(id:String):void{ if (id == ""){ collateralGrid.selectedItem=null; toggleCollateralDetails(); } else{ for each(var item:Object in collateralGrid.dataProvider){ if (item.id == id){ collateralGrid.selectedItem=item; collateralDetails.details = item; if (isCollateralDetailsClosed) toggleCollateralDetails(); collateralGrid.invalidateList(); } } } } public function buildPages():void{ var start:int = 1; var startDiff:int = 0; var end:int = collateralGrid.numPages; var endDiff:int = 0; if (end > 15){ if ((collateralGrid.page +7) < end) end = collateralGrid.page+7; else endDiff = 7-(end - collateralGrid.page); if ((collateralGrid.page -7) > 0) start = collateralGrid.page-7; else startDiff = 8-collateralGrid.page; end+=startDiff; start-=endDiff; var startDots:Label = new Label(); startDots.text = "..."; var endDots:Label = new Label(); endDots.text = "..."; } pages.removeAllChildren(); var label:Label = new Label() label.text = "Pages:"; label.styleName = "pageTitle"; pages.addChild(label); if (start!=1) pages.addChild(startDots); for (var i:int = start; i <= end; i++){ var page:Label = new Label() page.name = "page"+i; page.text = i.toString(); if (collateralGrid.page == i) page.styleName = "selectedPage"; else page.styleName = "page"; page.useHandCursor = true; page.mouseChildren = false; page.buttonMode = true; page.addEventListener(MouseEvent.CLICK,pageClick); pages.addChild(page); } if (end!=collateralGrid.numPages) pages.addChild(endDots); var spacer:Spacer = new Spacer(); spacer.percentWidth=100; pages.addChild(spacer); var next:Label = new Label(); next.name="pageNext"; next.text = "Next"; next.styleName="page" next.useHandCursor = true; next.mouseChildren = false; next.buttonMode = true; next.addEventListener(MouseEvent.CLICK,nextPage); pages.addChild(next); if (collateralGrid.page >= collateralGrid.numPages) { next.enabled = false; next.removeEventListener(MouseEvent.CLICK,nextPage); } else if (next.enabled == false){ next.enabled = true; next.addEventListener(MouseEvent.CLICK,nextPage); } } private function selectCurrent():void{ for (var i:int = 1; i <= collateralGrid.numPages; i++) Label(pages.getChildByName("page"+i)).styleName = "page"; Label(pages.getChildByName("page"+collateralGrid.page)).styleName = "selectedPage"; } private function nextPage(evt:MouseEvent):void{ collateralGrid.page+=1; buildPages(); } private function pageClick(evt:MouseEvent):void{ collateralGrid.page = evt.currentTarget.text; buildPages(); } private function setWidths():void{ /* collateralGrid.columns[0].width = 90; collateralGrid.columns[1].width = (collateralGrid.width-90-30-55)/100*60; collateralGrid.columns[2].width = 30; collateralGrid.columns[3].width = (collateralGrid.width-90-30-55)/100*20; collateralGrid.columns[4].width = (collateralGrid.width-90-30-55)/100*20 collateralGrid.columns[5].width = 55; */ }