ORIGIN '~beta/basiclib/v1.4/betaenv';
[[--------------------------------------- 
	INCLUDE '~beta/guienv/v1.3.1/GUIEnv'
--------------------------------------- 
	INCLUDE '~username/banksystem/interface/bankUI'
--------------------------------------- 
	INCLUDE '~username/banksystem/bankFunctionality'
--------------------------------------- 
	program : descriptor
----------------------------------------
(# 	

bankGUIEnv: GUIEnv
(#
	fileMenu::<
	(#	... #);
		
	
	AccountMenu: menu
	(#
		Name::< (# do 'Account' -> theName #);
		Insert, Withdraw: @dynamicItem;
		open::< (# do #);
	#);

	CustomerMenu: menu
	(#
		Name::< (# do 'Customer' -> theName #);
		New, Find, Remove: @dynamicItem;
		open::< (# do #);
	#);

#);

theBankGUIEnv: ^bankGUIEnv;

aCustomerWindow: @theBankGUIEnv.CustomerWindow
(# 
	findCustBtnAction::< (# do ... #);
	updateCustBtnAction::< (# do ... theBank.updateCustomer; #);
	...
#);
	
theBank: @bankFunctionality
(#	
	init::< (# do theBankGUIEnv.startUpScreen.open; ... #);
#);

(*** main program execution ***);

do 	(* If necessary make a BankGUIEnv instance that can be used in any module
	 * via the objectPool.
	 *)
   	BankGUIEnv## -> objectPool.Put -> theBankGUIEnv[]; 
	
   	(* Start eventhandling *)	
	theBankGUIEnv; 
   	(* Start the bank execution *)	
	theBank.Init;
	
#) 
----]]