Showing paste #ea2z2 by pushminakazi@apache.org: (Show raw paste)

<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.apache.org/royale/spark"
			   xmlns:mx="library://ns.apache.org/royale/mx"
			   xmlns:components="com.dbz.modules.components.*"
			   title="Cheque Printing"
			   width="842"
			   height="594"
			   close="fn_ClosePopup(event);"
			   creationComplete="fn_InitPopup();" 
			   textAlign="left">
			   
	<fx:Script>
		<![CDATA[
		    import mx.rpc.AsyncToken;
		    import mx.rpc.Responder;
			import com.dbz.VO.AP.dbzBankFormatSetupVO;
			
			import com.dbz.dashboard.spark.resize.ResizeManager;
			import com.dbz.modules.components.dbzGridBorder;
			import com.dbz.modules.components.dbzMovableBox;
			import com.dbz.modules.components.dbzResizeManager;
			import com.dbz.components.PickList;
			import com.dbz.utils.dbzUtil;
			
			import mx.collections.ArrayCollection;

			import mx.controls.Alert;
			import mx.controls.Button;
			import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
			import mx.controls.dataGridClasses.DataGridColumn;
			import mx.core.Container;
			import mx.core.DragSource;
			import mx.core.FlexGlobals;
			import mx.core.IUIComponent;
			import mx.core.IVisualElement;
			import mx.core.UIComponent;
			import mx.core.mx_internal;
			
			import mx.events.AdvancedDataGridEvent;
			import mx.events.DragEvent;
			import mx.events.FlexEvent;
			import mx.events.ItemClickEvent;
			import mx.events.ModuleEvent;

			import mx.managers.PopUpManager;
			import mx.events.CloseEvent;
			import mx.events.MouseEvent;

			import mx.formatters.SwitchSymbolFormatter;
			
			import mx.managers.CursorManager;
			import mx.managers.DragManager;
			
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			import mx.styles.StyleManager; 
			import org.apache.royale.reflection.describeType;
			import org.apache.royale.reflection.TypeDefinition;
			
			import spark.components.CheckBox;
			import spark.components.ComboBox;
			import spark.components.TextArea;
			import spark.components.TextInput;
			
			use namespace mx_internal;
			
			public var arrFormItems:Array = new Array();
			
			[Bindable] public var xOff:Number;
			[Bindable] public var yOff:Number;
			
			private var xPos:Number = 0;
			private var yPos:Number = 0;

			private var iSelRow:uint = 0;
			private var ibResize:Boolean = false; 
			private var bNewRecord:Boolean = false;
			
			[Bindable] private var strResponse:String = "";
			[Bindable] private var arrDGDataProvider:ArrayCollection = new ArrayCollection();
			[Bindable] private var bkFormatVO:Object = new dbzBankFormatSetupVO();

			[Bindable] public var BankCode:Object = new Object();
			[Bindable] public var BankDesc:Object = new Object();
			[Bindable] public var ShowAdviceFirst:Object = new Object();
			[Bindable] public var Oreintation:Object = new Object();
			[Bindable] public var ZoomFactor:Object = new Object();
			[Bindable] public var ParentObject:Object = new Object();
			
			[Bindable] public var arcBankFormatDP:ArrayCollection = new ArrayCollection();
						
			[Bindable] public var arrZoomDP:ArrayCollection =
				new ArrayCollection([{label:"200%",id:200},{label:"150%", id:150},
					{label:"100%", id:100},{label:"75%", id:75},{label:"50%", id:50},
					{label:"25%", id:25},{label:"10%", id:10}]);
			
			[Bindable] private var arrOrientDP:ArrayCollection =
				new ArrayCollection([{label:"Default",id:0},{label:"L/Scape", id:1},
					{label:"Portrait", id:2}]);
			
			[Bindable] public var arrFontsDataProvider:ArrayCollection =
				new ArrayCollection(["Times New Roman","Arial",
					"Courier New","MS Sans Serif",
					"Bookman Old Style",
					"Monotype Corsiva",
					"Platino Linotype"]);
			
			[Bindable] public var arrFontsWeight:ArrayCollection = new ArrayCollection(["normal","bold"]);
									
			/*
			** Data provider block
			*/

			public function fn_GetBankFormatDP():void 
			{
				parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.validateSession();
				
				ba_ShowAdvice.selected = ShowAdviceFirst.text == "1" ? true : false; 
				ba_Orientation.selectedIndex = Number(Oreintation.text == "" ? "0" : Oreintation.text);
				
				for (var m:int = 0; m < arrZoomDP.length; m++) 
				{
					if (ZoomFactor.text == arrZoomDP[m].id)
						ba_Zoom.selectedIndex = m;
				}
				
			var responder1:Responder = new Responder(fn_roBankFormatRH,fn_HandleFault);
			var token1:AsyncToken = roBankFormat.fn_GetBankFormatDP(parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.CompCode, BankCode.text, true);
			token1.addResponder(responder1);
			trace(token1); 
		
			}
			
			/*
			** Data provider result handlers
			*/

			private function fn_roValidateRH(e:ResultEvent):void {
				strResponse = e.result.toString() as String;
				if (strResponse != "")
					Alert.show(strResponse);
			}			
			
			private function fn_roPersistRH(e:ResultEvent):void {
				parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.disableUserInteraction();
				strResponse=e.result.toString() as String;
				dgItems.selectedIndex = iSelRow;
				
				if (strResponse != "") {
					Alert.show(strResponse);
				}
				parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.restoreUserInteraction();
			}
			
			private function fn_roChainsRH(e:ResultEvent):void {
				var strAuthSecChains:String = e.result.toString() as String;
				dbzUtil.handleFormButtons(arrFormItems, strAuthSecChains);
			}

			private function fn_roBankFormatRH(e:ResultEvent):void 
			{
				arrDGDataProvider = e.result as ArrayCollection;
				arcBankFormatDP = arrDGDataProvider;
				
				dgItems.dataProvider = arcBankFormatDP;
				dgItems.selectedIndex = iSelRow;
				bkFormatVO = dgItems.selectedItem;
				
				fn_PopulateFormWithDGItem();
				fn_CreateLayout();	
			}

			private function fn_HandleFault(e:FaultEvent):void {
				parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.restoreUserInteraction();
				dgItems.selectedIndex = iSelRow;
				Alert.show("Status: Error"
					+ "\nFault code: " + e.fault.faultCode
					+ "\nFault detail: " + e.fault.faultDetail
					+ "\nFault string: " + e.fault.faultString);
			}
						
			/*
			** Form handlers block
			*/

			private function fn_InitPopup():void 
			{
				this.width = stage.width - 100;
				this.height = stage.height - 70;
				this.x = 10;
				this.y = -50;
			}
			
			private function fn_ResetPage():void 
			{
				parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.validateSession(); 
				
				bkFormatVO = dgItems.selectedItem == null ? new dbzBankFormatSetupVO()as Object : bkFormatVO;
				
				bNewRecord = true;
			}
			
			private function fn_PopulateFormWithDGItem():void
			{
				parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.validateSession();
				
				bkFormatVO = dgItems.selectedItem;
				iSelRow = dgItems.selectedIndex;
				
				dgItems.selectedItem == null ? fn_ResetPage() : dbzUtil.setForm(arrFormItems, dgItems.selectedItem,
					org.apache.royale.reflection.describeType(dbzBankFormatSetupVO)  as TypeDefinition);
				
				saveBtn.enabled = saveBtn.accessibilityEnabled == true ? true : false;
				bNewRecord = dgItems.selectedItem == null ? true : false;
			}
			
			private function fn_CreateLayout():void
			{	
				bc_PrintLayoutCheque.removeAllChildren();
				bc_ColumnHeader.removeAllChildren();
				bc_Detail.removeAllChildren();
				bc_Footer.removeAllChildren();
				
				var lbdrCheque:dbzGridBorder = new dbzGridBorder();
				var lbdrColumn:dbzGridBorder = new dbzGridBorder();
				var lbdrDetail:dbzGridBorder = new dbzGridBorder();
				var lbdrFooter:dbzGridBorder = new dbzGridBorder();
				
				lbdrCheque.width = 850;
				lbdrCheque.height = ba_Header_Height.value;
				bc_PrintLayoutCheque.addElement(lbdrCheque);
				
				lbdrColumn.width = 850;
				lbdrColumn.height = ba_Column_Height.value;
				bc_ColumnHeader.addElement(lbdrColumn);

				lbdrDetail.width = 850;
				lbdrDetail.height = ba_Detail_Height.value;
				bc_Detail.addElement(lbdrDetail);

				lbdrFooter.width = 850;				
				lbdrFooter.height = ba_Footer_Height.value;				
				bc_Footer.addElement(lbdrFooter);
				
				for (var i:int = 0; i < arrDGDataProvider.length; i++)
				{
					var ti:dbzMovableBox = new dbzMovableBox();
					
					ti.id = arrDGDataProvider[i].cp_ItemCode;
					ti.Title = arrDGDataProvider[i].cp_Description;

					ti.x = Number(arrDGDataProvider[i].cp_XAxis);
					ti.y = Number(arrDGDataProvider[i].cp_YAxis);
					ti.width = Number(arrDGDataProvider[i].cp_Width);
					ti.height = Number(arrDGDataProvider[i].cp_Height);
					
					ti.FontSize = Number(arrDGDataProvider[i].cp_FontSize);
					ti.FontType = arrDGDataProvider[i].cp_FontName;
					ti.FontStyle = arrDGDataProvider[i].cp_FontStyle;
					
					ti.Visible = arrDGDataProvider[i].cp_Print == "1" ? true : false;
					ti.addEventListener(MouseEvent.MOUSE_DOWN, fn_MouseDownEH);
					
					if (arrDGDataProvider[i].cp_HeaderDetail == "H") 
					{
						bc_PrintLayoutCheque.addElement(ti);
						dbzResizeManager.enableResize(bc_PrintLayoutCheque,ti,20);
					}
					else if (arrDGDataProvider[i].cp_HeaderDetail == "C")
					{
						bc_ColumnHeader.addElement(ti);
						dbzResizeManager.enableResize(bc_ColumnHeader,ti,20);
					}
					else if (arrDGDataProvider[i].cp_HeaderDetail == "D")
					{
						bc_Detail.addElement(ti);
						dbzResizeManager.enableResize(bc_Detail,ti,20);
					}
					else if (arrDGDataProvider[i].cp_HeaderDetail == "F")
					{
						bc_Footer.addElement(ti);
						dbzResizeManager.enableResize(bc_Footer,ti,20);
					}
				}
				
				bc_PrintLayoutCheque.addEventListener(DragEvent.DRAG_ENTER , fn_DragEnterEH);
				bc_PrintLayoutCheque.addEventListener(DragEvent.DRAG_DROP , fn_DragDropEH);
				
				bc_ColumnHeader.addEventListener(DragEvent.DRAG_ENTER , fn_DragEnterEH);
				bc_ColumnHeader.addEventListener(DragEvent.DRAG_DROP , fn_DragDropEH);
				
				bc_Detail.addEventListener(DragEvent.DRAG_ENTER , fn_DragEnterEH);
				bc_Detail.addEventListener(DragEvent.DRAG_DROP , fn_DragDropEH);
				
				bc_Footer.addEventListener(DragEvent.DRAG_ENTER , fn_DragEnterEH);
				bc_Footer.addEventListener(DragEvent.DRAG_DROP , fn_DragDropEH);
				fn_ShowHide();
			}

			private function fn_ClosePopup(evt:CloseEvent):void {
				PopUpManager.removePopUp(this);
			}

			/*
			** Validation block
			*/			

			private function fn_Validate():void 
			{
				parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.validateSession();
				var responder2:Responder = new Responder(fn_roValidateRH,fn_HandleFault);
				var token2:AsyncToken = roValidate.fn_Validate(dgItems.dataProvider);
				token2.addResponder(responder2);
				trace(token2); 
				
			}
			
			/*
			** Persistence block
			*/

			private function fn_SaveRecord(event:mx.events.MouseEvent):void 
			{
				parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.validateSession();
				
				var id:Number = 1;
				var arrMasterItems:Array = new Array();
				
				arrMasterItems[0] = ba_ShowAdvice.selected == true ? "1" : "0";
				arrMasterItems[1] = ba_Orientation.selectedItem.id.toString();
				arrMasterItems[2] = ba_Zoom.selectedItem.id.toString();
				
				arrMasterItems[3] = ba_Header_Height.value.toString();
				arrMasterItems[4] = ba_Column_Height.value.toString();
				arrMasterItems[5] = ba_Detail_Height.value.toString();
				arrMasterItems[6] = ba_Footer_Height.value.toString();
				//dgItems.dataProvider
				if (strResponse == "") {
					parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.disableUserInteraction();
					var responder3:Responder = new Responder(fn_roPersistRH,fn_HandleFault);
					var token3:AsyncToken = roPersist.fn_SaveRecord(parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.CompCode, BankCode.text,               parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.userParams.USER_ID,
					arrMasterItems,	arcBankFormatDP);	
					token3.addResponder(responder3);
					trace(token3); 
				}
				
				dbzUtil.setForm(arrFormItems, dgItems.selectedItem, org.apache.royale.reflection.describeType(dbzBankFormatSetupVO)  as TypeDefinition);
				saveBtn.enabled = true;
			//	ParentObject.fn_GetBankMasterDP();
				var responder1:Responder = new Responder(fn_roBankFormatRH,fn_HandleFault);
				var token1:AsyncToken = roBankFormat.fn_GetBankFormatDP(parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.CompCode, BankCode.text, true);
				token1.addResponder(responder1);
				trace(token1); 
				
			}
			
			private function fn_Format(item:Object, column:AdvancedDataGridColumn):String
			{
				var strFormattedValue:String = "0";
				
				if (column.dataField == "cp_XAxis")
					strFormattedValue = fourDecimalFormatter.format(item.cp_XAxis);
				else if (column.dataField == "cp_YAxis")
					strFormattedValue = fourDecimalFormatter.format(item.cp_YAxis);
				else if (column.dataField == "cp_Width")
					strFormattedValue = fourDecimalFormatter.format(item.cp_Width);
				else if (column.dataField == "cp_Height")
					strFormattedValue = fourDecimalFormatter.format(item.cp_Height);
				else if (column.dataField == "cp_FontSize")
					strFormattedValue = fourDecimalFormatter.format(item.cp_FontSize);
				else if (column.dataField == "cp_FontStyle") 
				{
					if (item.cp_FontStyle == "0")
						strFormattedValue = "Normal";
					else if (item.cp_FontStyle == "1")
						strFormattedValue = "Italic";
					else if (item.cp_FontStyle == "2")
						strFormattedValue = "Bold";
					else if (item.cp_FontStyle == "3")
						strFormattedValue = "Bold & Italic";
					else
						strFormattedValue = item.cp_FontStyle;
				}
				
				return strFormattedValue;
			}
			
			/*
			** Utility functions
			*/

			protected function fn_ShowHide():void
			{
				for (var i:int = 0; i < bc_PrintLayoutCheque.getChildren().length; i++)
				{ if ( bc_PrintLayoutCheque.getChildAt(i) is dbzMovableBox)
					if (dbzMovableBox( bc_PrintLayoutCheque.getChildAt(i)).Visible == false && 
						chkShow.selected == false)
						bc_PrintLayoutCheque.getChildAt(i).visible = false;
					else
						bc_PrintLayoutCheque.getChildAt(i).visible = true;
				}
				
				for (var j:int = 0; j < bc_ColumnHeader.getChildren().length ; j++)
				{
					if (bc_ColumnHeader.getChildAt(j) is dbzMovableBox)
						if (dbzMovableBox( bc_ColumnHeader.getChildAt(j)).Visible == false && 
							chkShow.selected == false)
							bc_ColumnHeader.getChildAt(j).visible = false;
						else
							bc_ColumnHeader.getChildAt(j).visible = true;	
				}
				
				for (var k:int = 0; k < bc_Detail.getChildren().length; k++)
				{
					if ( bc_Detail.getChildAt(k) is dbzMovableBox)
						if (dbzMovableBox( bc_Detail.getChildAt(k)).Visible == false && 
							chkShow.selected == false)
							bc_Detail.getChildAt(k).visible = false;
						else
							bc_Detail.getChildAt(k).visible = true;	
				}
				
				for (var l:int = 0 ; l < bc_Footer.getChildren().length; l++)
				{
					if (bc_Footer.getChildAt(l) is dbzMovableBox)
						if (dbzMovableBox( bc_Footer.getChildAt(l)).Visible == false && 
							chkShow.selected == false)
							bc_Footer.getChildAt(l).visible = false;
						else
							bc_Footer.getChildAt(l).visible = true;
				}
			}

			private function fn_CopyChanges():void
			{
				for (var i:int = 0 ; i < arcBankFormatDP.length  ; i++)
				{
					var lsItemName:String   = arcBankFormatDP[i].cp_ItemCode;
					var lsItemPos:String = 	arcBankFormatDP[i].cp_HeaderDetail;
					
					var lsCanvas:Canvas;
					if (lsItemPos == "H")
						lsCanvas = bc_PrintLayoutCheque;
					else if (lsItemPos == "C")
						lsCanvas = bc_ColumnHeader;
					else if (lsItemPos == "D")
						lsCanvas = bc_Detail;
					else if (lsItemPos == "F")
						lsCanvas = bc_Footer;
					
					var currentObj:dbzMovableBox;
					for (var j:int = 0 ; j < lsCanvas.getChildren().length ; j++) {
						if (lsCanvas.getChildAt(j) is dbzMovableBox) {
							if (dbzMovableBox(lsCanvas.getChildAt(j)).id.toString() == lsItemName)
							{
								currentObj = lsCanvas.getChildAt(j) as dbzMovableBox;
								break;
							}
						}
					}
					
					if (currentObj != null) {
						arcBankFormatDP[i].cp_XAxis = currentObj.x.toString();
						arcBankFormatDP[i].cp_YAxis = currentObj.y.toString();
						arcBankFormatDP[i].cp_Width = currentObj.width.toString();
						arcBankFormatDP[i].cp_Height = currentObj.height.toString();
					}
				}
				arcBankFormatDP.refresh();
			}

			private function fn_SelectRow(ItemName:String):Number{
				var cRow:Number = 0;
				for (var i : Number = 0 ; i < arrDGDataProvider.length ; i++) {
					var lsColName:String  = arrDGDataProvider[i].cp_ItemCode;
					if (lsColName == ItemName)
					{
						cRow = i;
						break;
					}
				}
				
				arrDGDataProvider.refresh();
				dgItems.validateNow();
				dgItems.selectedIndex = cRow;
				dgItems.scrollToIndex(cRow);	
				return cRow;
			}

			/*
			** Event handlers
			*/
 			
			private function fn_MouseDownEH(e:MouseEvent):void 
			{
				var cRow:Number = fn_SelectRow(dbzMovableBox(e.currentTarget).id);
				
				xPos = dbzMovableBox(e.currentTarget).mouseX;
				yPos = dbzMovableBox(e.currentTarget).mouseY;
				
				var lheight:int = dbzMovableBox(e.currentTarget).height;
				var lwidth:int = dbzMovableBox(e.currentTarget).width;
				
				if (lheight - 4 < yPos && lwidth - 4 < xPos)
				{
					ibResize = true;
					xPos = dbzMovableBox(e.currentTarget).x;
					yPos = dbzMovableBox(e.currentTarget).y;
				}
				else
					ibResize = false;
			}
			
			private function fn_DragEnterEH(e:DragEvent):void 
			{
				DragManager.acceptDragDrop(e.currentTarget as IUIComponent);	
			}
			
			private function fn_DragDropEH(e:DragEvent):void 
			{
				if (ibResize) 
				{
					dbzMovableBox(e.dragInitiator).width = Canvas(e.currentTarget).contentMouseX - xPos;
					dbzMovableBox(e.dragInitiator).height = Canvas(e.currentTarget).contentMouseY - yPos;
				}
				else
				{
					dbzMovableBox(e.dragInitiator).x = Canvas(e.currentTarget).contentMouseX - xPos;
					dbzMovableBox(e.dragInitiator).y = Canvas(e.currentTarget).contentMouseY - yPos;
				}
				
				var cRow:Number = fn_SelectRow(dbzMovableBox(e.dragInitiator).id);
				
				arcBankFormatDP[cRow].cp_XAxis = dbzMovableBox(e.dragInitiator).x.toString();
				arcBankFormatDP[cRow].cp_YAxis = dbzMovableBox(e.dragInitiator).y.toString();
				arcBankFormatDP[cRow].cp_Width = dbzMovableBox(e.dragInitiator).width.toString();
				arcBankFormatDP[cRow].cp_Height = dbzMovableBox(e.dragInitiator).height.toString();
			}
						
			private function dg_ItemEditEndEH(event:AdvancedDataGridEvent):void
			{
				if (arrDGDataProvider.length > 0  && dgItems.selectedIndex > -1)
				{
					var lsItemName:String = dgItems.selectedItem.cp_ItemCode;
					var lsItmX:String = dgItems.selectedItem.cp_XAxis;
					var lsItemY:String = dgItems.selectedItem.cp_YAxis;
					var lsItemPos:String = dgItems.selectedItem.cp_HeaderDetail;
					var lsItemWidth:String = dgItems.selectedItem.cp_Width;
					var lsItemPrint:String = dgItems.selectedItem.cp_Print;
					var lsFontType:String = dgItems.selectedItem.cp_FontName;
					var lsFontSize:String = dgItems.selectedItem.cp_FontSize;
					var lsFontWeight:String = dgItems.selectedItem.cp_FontStyle;
					var lsItemHeight:String = dgItems.selectedItem.cp_Height;
					
					var lsCanvas:Canvas;
					
					if (lsItemPos == "H")
						lsCanvas = bc_PrintLayoutCheque;
					else if (lsItemPos == "C")
						lsCanvas = bc_ColumnHeader;
					else if (lsItemPos == "D")
						lsCanvas = bc_Detail;
					else if (lsItemPos == "F")
						lsCanvas = bc_Footer;
					else
						return;
					
					var currentObj:dbzMovableBox;
					for (var i:int = 0 ; i < lsCanvas.getChildren().length ; i++)
					{
						if (lsCanvas.getChildAt(i) is dbzMovableBox)
						{
							if (dbzMovableBox(lsCanvas.getChildAt(i)).id.toString() == lsItemName)
							{
								currentObj = lsCanvas.getChildAt(i) as dbzMovableBox;
								break;
							}
						}
					}
					
					if (currentObj != null) 
					{
						currentObj.x = Number(lsItmX);
						currentObj.y = Number(lsItemY);
						currentObj.width = Number(lsItemWidth);
						currentObj.height = Number(lsItemHeight);
						currentObj.Visible = lsItemPrint == "1"?true:false;
						currentObj.FontSize = Number(lsFontSize);
						currentObj.FontType = lsFontType;
						currentObj.FontStyle = lsFontWeight;
					}
				}
			}
			
		]]>
	</fx:Script>
	
	<fx:Declarations>
		
		<mx:RemoteObject id="roBankFormat" endpoint="{parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.ServerURL}" showBusyCursor="true"
						 destination="dbzCashBankSetupBO"/>
						<!-- fault="fn_HandleFault(event);" result="fn_roBankFormatRH(event);" -->
		
		<mx:RemoteObject id="roValidate" endpoint="{parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.ServerURL}" showBusyCursor="true"
						 destination="dbzCashBankSetupBO"/>
						 <!-- fault="fn_HandleFault(event);" result="fn_roValidateRH(event);" -->
		
		<mx:RemoteObject id="roPersist" endpoint="{parentMxmlDocument.parentMxmlDocument.parentMxmlDocument.ServerURL}" showBusyCursor="true"
						 destination="dbzCashBankSetupBO"/>
						 <!-- fault="fn_HandleFault(event);" result="fn_roPersistRH(event);" -->
		
		<mx:NumberFormatter id="fourDecimalFormatter" precision="2" useThousandsSeparator="true" useNegativeSign="true"/>
				
	</fx:Declarations>
	
	<s:BorderContainer id="bcForm" fontFamily="Arial" fontSize="11" left="1" right="0" top="0" bottom="0">
		
		<s:CheckBox id="ba_ShowAdvice" label="Print Advice First" x="2" y="4" width="105" height="20" tabIndex="1"/>

		<s:Label text="Zoom" x="110" y="4" height="20" verticalAlign="middle"/>
		<s:DropDownList id="ba_Zoom" x="144" y="4" width="80" height="20" dataProvider="{arrZoomDP}" tabIndex="2"/>

		<s:Label text="Orientation" x="230" y="4" height="20" verticalAlign="middle"/>
		<s:DropDownList id="ba_Orientation" x="284" y="4" width="105" height="20" dataProvider="{arrOrientDP}" tabIndex="3"/>
		
		<s:Button id="btnCopySettings" x="470" y="4" width="127" height="20" label="Reflect setting to grid" 
				  toolTip="Copy changes to side grid which was visually done" click="fn_CopyChanges()"/>
		
		<s:CheckBox id="chkShow" label="Show Invisible Items" y="4" right="101" height="20" selected="true"
					click="fn_ShowHide()"/>
		
		<mx:Button id="saveBtn" accessibilityEnabled="true" uid="0" mouseChildren="false" buttonMode="true"
				   label="Save" click="fn_SaveRecord(event);" right="32" y="4" width="50" height="20"
				   fontFamily="Arial" fontWeight="normal" fontSize="11" cornerRadius="1" tabIndex="5"/>
		
		<mx:HDividedBox top="62" left="2" right="2" bottom="2">
			
			<mx:AdvancedDataGrid id="dgItems" sortExpertMode="true" styleName="advancedDataGrid" editable="true" 
								 resizableColumns="true" change="fn_PopulateFormWithDGItem();" tabIndex="4"
								 itemEditEnd="dg_ItemEditEndEH(event)" dataProvider="{arcBankFormatDP}" 
								 horizontalScrollPolicy="auto" left="5" width="300" top="33" bottom="2" height="100%">
				
				<mx:groupedColumns>
					
					<mx:AdvancedDataGridColumn dataField="cp_ItemCode" headerText="Items" visible="false" />
					<mx:AdvancedDataGridColumn dataField="cp_ColName" headerText="Items" visible="false"/>
					<mx:AdvancedDataGridColumn dataField="cp_HeaderDetail" headerText="Items" visible="false"/>
					<mx:AdvancedDataGridColumn dataField="cp_Description" headerText="Items" editable="false" width="150"/>
					
					<mx:AdvancedDataGridColumn dataField="cp_Print" headerText="Print" editable="false" width="30">
						<mx:itemRenderer>
							<fx:Component>
								<mx:CheckBox textAlign="center" horizontalCenter="0" width="100%"
											 selectedField="{data.cp_Print}"
											 enabled="true" click="{selected ? data.cp_Print = '1' : data.cp_Print = '0'}"
											 selected="{data.cp_Print == '0' ? false : true}"/>
							</fx:Component>
						</mx:itemRenderer>
					</mx:AdvancedDataGridColumn>
					
					<mx:AdvancedDataGridColumnGroup headerText="Coordinates"> 
						<mx:AdvancedDataGridColumn dataField="cp_XAxis" editable="true" headerText="X-Axis"
												   labelFunction="fn_Format" textAlign="right" width="105"
												   editorDataField="returnPN">
							
							<mx:itemEditor>
								<fx:Component>
									<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009"
											  xmlns:s="library://ns.apache.org/royale/spark"
											 xmlns:mx="library://ns.apache.org/royale/mx">
										<fx:Script>
											<![CDATA[
												import mx.events.ValidationResultEvent;
												// Define a property for returning the new value to the cell.
												[Bindable] public var returnPN:Number;												
											]]>
										</fx:Script>
										<fx:Declarations>
											<mx:NumberValidator id="vlddgTxtInput" source="{dgTxtInput}"
																property="value"
																allowNegative="false"
																decimalPointCountError="The decimal separator can only occur once."
																decimalSeparator="."
																domain="real"
																trigger="{dgTxtInput}"
																triggerEvent="change"
																precision="2"
																precisionError="The amount entered has too many digits beyond the decimal point."
																separationError="The thousands separator must be followed by three digits."
																thousandsSeparator=","/>
										</fx:Declarations>
										<s:NumericStepper id="dgTxtInput" fontFamily="Verdana" textAlign="right" 
														  maxChars="4" fontSize="11" value="{data.cp_XAxis}" width="105"
														  minimum="0" maximum="3000" height="21" color="black"
														  updateComplete="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;"
														  change="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;"
														  valueCommit="{data.cp_XAxis=dgTxtInput.value}" 
														  focusOut="{data.cp_XAxis=dgTxtInput.value}"/>
									</mx:VBox>
								</fx:Component>
							</mx:itemEditor>
						</mx:AdvancedDataGridColumn>
						
						<mx:AdvancedDataGridColumn dataField="cp_YAxis" editable="true" headerText="Y-Axis" textAlign="right"
												   labelFunction="fn_Format" width="105" editorDataField="returnPN">
							<mx:itemEditor>
								<fx:Component>
									<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009"
											  xmlns:s="library://ns.apache.org/royale/spark"
											 xmlns:mx="library://ns.apache.org/royale/mx">
										<fx:Script>
											<![CDATA[
												import mx.events.ValidationResultEvent;
												// Define a property for returning the new value to the cell.
												[Bindable] public var returnPN:Number;
											]]>
										</fx:Script>
										<fx:Declarations>
											<mx:NumberValidator id="vlddgTxtInput" source="{dgTxtInput}"
																property="value"
																allowNegative="false"
																decimalPointCountError="The decimal separator can only occur once."
																decimalSeparator="."
																domain="real"
																trigger="{dgTxtInput}"
																triggerEvent="change"
																precision="2"
																precisionError="The amount entered has too many digits beyond the decimal point."
																separationError="The thousands separator must be followed by three digits."
																thousandsSeparator=","/>
										</fx:Declarations>
										<s:NumericStepper id="dgTxtInput" fontFamily="Verdana" textAlign="right" 
														  maxChars="4" fontSize="11" value="{data.cp_YAxis}" width="105"
														  minimum="0" maximum="3000" height="21" color="black" 
														  updateComplete="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;"
														  change="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;" 
														  valueCommit="{data.cp_YAxis=dgTxtInput.value}"/>
									</mx:VBox>
								</fx:Component>
							</mx:itemEditor>
						</mx:AdvancedDataGridColumn>
					</mx:AdvancedDataGridColumnGroup>
					
					<mx:AdvancedDataGridColumn dataField="cp_Width" editable="true" headerText="Width" textAlign="right"
											   labelFunction="fn_Format" width="105" editorDataField="returnPN">
						<mx:itemEditor>
							<fx:Component>
								<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009"
										  xmlns:s="library://ns.apache.org/royale/spark"
										 xmlns:mx="library://ns.apache.org/royale/mx">
									<fx:Script>
										<![CDATA[
											import mx.events.ValidationResultEvent;
											// Define a property for returning the new value to the cell.
											[Bindable]
											public var returnPN:Number;
										]]>
									</fx:Script>
									<fx:Declarations>
										<mx:NumberValidator id="vlddgTxtInput" source="{dgTxtInput}"
															property="value"
															allowNegative="false"
															decimalPointCountError="The decimal separator can only occur once."
															decimalSeparator="."
															domain="real"
															trigger="{dgTxtInput}"
															triggerEvent="change"
															precision="2"
															precisionError="The amount entered has too many digits beyond the decimal point."
															separationError="The thousands separator must be followed by three digits."
															thousandsSeparator=","/>
									</fx:Declarations>
									<s:NumericStepper id="dgTxtInput" fontFamily="Verdana" textAlign="right" maxChars="3"
													  fontSize="11" value="{data.cp_Width}" width="105" minimum="0" 
													  maximum="3000" height="21" color="black" 
													  updateComplete="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;"
													  change="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;" 
													  valueCommit="{data.cp_Width=dgTxtInput.value}"/>
								</mx:VBox>
							</fx:Component>
						</mx:itemEditor>
					</mx:AdvancedDataGridColumn>
					
					<mx:AdvancedDataGridColumn dataField="cp_Height" editable="true" headerText="Height" textAlign="right"
											   labelFunction="fn_Format" width="105" editorDataField="returnPN">
						<mx:itemEditor>
							<fx:Component>
								<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009"
										  xmlns:s="library://ns.apache.org/royale/spark"
										 xmlns:mx="library://ns.apache.org/royale/mx">
									<fx:Script>
										<![CDATA[
											import mx.events.ValidationResultEvent;
											// Define a property for returning the new value to the cell.
											[Bindable] public var returnPN:Number;
										]]>
									</fx:Script>
									<fx:Declarations>
										<mx:NumberValidator id="vlddgTxtInput" source="{dgTxtInput}"
															property="value"
															allowNegative="false"
															decimalPointCountError="The decimal separator can only occur once."
															decimalSeparator="."
															domain="real"
															trigger="{dgTxtInput}"
															triggerEvent="change"
															precision="2"
															precisionError="The amount entered has too many digits beyond the decimal point."
															separationError="The thousands separator must be followed by three digits."
															thousandsSeparator=","/>
									</fx:Declarations>
									<s:NumericStepper id="dgTxtInput" fontFamily="Verdana" textAlign="right" maxChars="3"
													  fontSize="11" value="{data.cp_Height}" width="105" minimum="0" 
													  maximum="3000" height="21" color="black" 
													  updateComplete="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;"
													  change="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;"
													  valueCommit="{data.cp_Height=dgTxtInput.value}"/>
								</mx:VBox>
							</fx:Component>
						</mx:itemEditor>
					</mx:AdvancedDataGridColumn>
					
					<mx:AdvancedDataGridColumn dataField="cp_FontSize" editable="true" textAlign="right" headerText="Font Size"
											   labelFunction="fn_Format" width="105" editorDataField="returnPN">
						
						<mx:itemEditor>
							<fx:Component>
								<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009"
										  xmlns:s="library://ns.apache.org/royale/spark"
										 xmlns:mx="library://ns.apache.org/royale/mx">
									<fx:Script>
										<![CDATA[
											import mx.events.ValidationResultEvent;
											// Define a property for returning the new value to the cell.
											[Bindable] public var returnPN:Number;
										]]>
									</fx:Script>
									<fx:Declarations>
										<mx:NumberValidator id="vlddgTxtInput" source="{dgTxtInput}"
															property="value"
															allowNegative="false"
															decimalPointCountError="The decimal separator can only occur once."
															decimalSeparator="."
															domain="real"
															trigger="{dgTxtInput}"
															triggerEvent="change"
															precision="2"
															precisionError="The amount entered has too many digits beyond the decimal point."
															separationError="The thousands separator must be followed by three digits."
															thousandsSeparator=","/>
									</fx:Declarations>
									<s:NumericStepper id="dgTxtInput" fontFamily="Verdana" textAlign="right" maxChars="2"
													  fontSize="11" value="{data.cp_FontSize}" width="105" minimum="0" 
													  maximum="72" height="21" color="black" valueCommit="{data.cp_FontSize=dgTxtInput.value}"
													  updateComplete="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;"
													  change="vlddgTxtInput.validate().type == ValidationResultEvent.INVALID ? 0 : returnPN = dgTxtInput.value;"/>				
								</mx:VBox>
							</fx:Component>
						</mx:itemEditor>
					</mx:AdvancedDataGridColumn>
					
					<mx:AdvancedDataGridColumn dataField="cp_FontName" headerText="Font Name" editable="true" 
											   width="150" editorDataField="cp_FontName">
						<mx:itemEditor>
							<fx:Component>
								<s:MXAdvancedDataGridItemRenderer
									height="22" >
									<fx:Script>
										<![CDATA[
											public function get cp_FontName(): String {
												return fontDD.selectedItem;
											}
										]]>
									</fx:Script>
									<s:DropDownList id="fontDD" top="0" left="0" right="0" bottom="0"
													dataProvider="{outerDocument.arrFontsDataProvider}"
													selectedIndex="{outerDocument.arrFontsDataProvider.getItemIndex(data.cp_FontName)}"/>
								</s:MXAdvancedDataGridItemRenderer>
							</fx:Component>
						</mx:itemEditor>
					</mx:AdvancedDataGridColumn>
					
					<mx:AdvancedDataGridColumn dataField="cp_FontStyle" headerText="Font Style" editable="true"
											   labelFunction="fn_Format" width="100"/>					
					<mx:AdvancedDataGridColumn dataField="cp_Label" headerText="Label" editable="true" width="120"/>
					
				</mx:groupedColumns> 
			
			</mx:AdvancedDataGrid>
			
			<s:BorderContainer width="100%" height="100%">
				
				<!-- <s:TabBar id="tabBar" dataProvider="{ViewStackID}" x="0" y="-24"/> -->
				<mx:TabNavigator id="ViewStackID" x="0" y="0" width="100%" height="100%" creationPolicy="all">
					
					<mx:VBox label="Cheque Portion" width="100%" height="100%">
						
						<s:Label x="4" y="15" text="Height"/>
						<s:NumericStepper id="ba_Header_Height" x="77" y="5" maximum="1200" width="81"/>
						
						<mx:Canvas id="bc_PrintLayoutCheque" backgroundColor="#302F2F" borderStyle="solid"
								   dragEnter="fn_DragEnterEH(event);" dragDrop="fn_DragDropEH(event);" left="0"
								   right="0" top="29" bottom="0">
						</mx:Canvas>
						
					</mx:VBox>
					
					<mx:VBox label="Column Header" width="100%" height="100%">
						
						<s:Label x="4" y="15" text="Height"/>
						<s:NumericStepper id="ba_Column_Height" x="77" y="5" maximum="1200" width="81" />
						
						<mx:Canvas id="bc_ColumnHeader" backgroundColor="#302F2F" borderStyle="solid"
								   dragEnter="fn_DragEnterEH(event);" dragDrop="fn_DragDropEH(event);" top="29"
								   bottom="0" left="0" right="0">
						</mx:Canvas>
						
					</mx:VBox>
					
					<mx:VBox label="Advice Portion" width="100%" height="100%">
						
						<s:Label x="4" y="15" text="Height"/>
						<s:NumericStepper id="ba_Detail_Height" x="77" y="5" width="81" maximum="1200"/>
						
						<mx:Canvas id="bc_Detail" backgroundColor="#302F2F" borderStyle="solid"
								   dragEnter="fn_DragEnterEH(event);" dragDrop="fn_DragDropEH(event);" 
								   top="29" bottom="0" left="0" right="0">
						</mx:Canvas>
						
					</mx:VBox>
					
					<mx:VBox label="Summary" width="100%" height="100%">
						
						<s:Label text="Height" x="4" y="15"/>
						<s:NumericStepper id="ba_Footer_Height" x="77" y="5" width="81" maximum="1200"/>
						
						<mx:Canvas id="bc_Footer" backgroundColor="#302F2F" borderStyle="solid" 
								   dragEnter="fn_DragEnterEH(event);" dragDrop="fn_DragDropEH(event);" top="29"
								   bottom="0" left="0" right="0">
						</mx:Canvas>
					
					</mx:VBox>
				
				</mx:TabNavigator>
			
			</s:BorderContainer>
		
		</mx:HDividedBox>
		
	</s:BorderContainer>
	
</s:TitleWindow>
Make a new paste