SKRMIDTECHLAB

218
Department of Computer Science and Engineering MIDDLEWARE TECHNOLOGIES Lab Manual for the Academic Year 20013-2014 I M.Tech(SE)Ist sem SKR COLLEGE OF Engineering &TECHNOLOGY

Transcript of SKRMIDTECHLAB

Department of Computer Science andEngineeringMIDDLEWARE TECHNOLOGIESLab Manual for the Academic Year 20013-2014I M.Tech(S!I"t "emSKR COLLEGE OEngineering!TECHNOLOG"In#c$argeHOD %rincipa&INDE'S(No Name of t$e Content %AGE NO(1 Lab Objective 12 Introduction About Lab 23 LAB CODE 44List of Lab Exercises4.1 S!!abus "ro#ra$s%&'()*++Descri,tion about -.( Conce,ts/0 "ro#ra$s List 1/ 2eferences 100- ii -Lab Objective3(4ero!eof -idd!e5areistoeaset4etas6of desi#nin#7,ro#ra$$in# and $ana#in# distributed a,,!ications b ,rovidin#a si$,!e7 consistent and inte#rated distributed ,ro#ra$$in#environ$ent. Essentia!!7 -idd!e5are is a distributed soft5are!aer7 or 8,!atfor$9 54ic4 abstracts over t4e co$,!exit and4etero#eneit of t4e under!in# distributed environ$ent 5it4 its$u!titude of net5or6 tec4no!o#ies7 $ac4ine arc4itectures7o,eratin# sste$s and ,ro#ra$$in# !an#ua#es. Different -idd!e5are ,!atfor$s su,,ort different,ro#ra$$in# $ode!s. "er4a,s t4e $ost ,o,u!ar $ode! is objectbased -idd!e5are in 54ic4 a,,!ications are structured into%,otentia!! distributed* objects t4at interact via !ocationtrans,arent $et4od invocation.- iii -INTROD)CTION A*O)T LA*(4ere are 00 sste$s % Co$,a: "resario * insta!!ed in t4is Lab. (4eir confi#urations are as fo!!o5s 3"rocessor 3 A-D At4e!on ; 1.0/ 2A- 3 2+0 -B=ard Dis6 3 4? e%*K for %int i O ?K i U nK iCC* L Strin# dbs O %Strin#*save.e!e$entAt%i*K if %dbs.toLo5erCase%*.indexOf%info* SO F1* return dbsKQ return nu!!KQ,ub!ic static void $ain%Strin# ar#sMN*L- xxx - tr L2-ISecurit-ana#er securit O ne5 2-ISecurit-ana#er%*KSste$.setSecurit-ana#er%securit*KStrin# db O ar#sM?NKLoo6u,Server server O ne5 Loo6u,Server%db*K'a$in#.rebind%PLoo6u,ServerP7 server*KSste$.err.,rint!n%PLoo6u,Server read...P*K Q catc4 %(4ro5ab!e e* LSste$.err.,rint!n%Pexce,tion3 P C e*KSste$.exit%1*K QQ Q(4e server reads in a text database of ,4one nu$bers and na$es and stores t4e$ interna!!. findInfo t4en does a case!ess !oo6u, of a #iven na$e or nu$ber in t4e database. A si$,!e exa$,!e of t4e database is3 S$it47 &oan 2?4FAA1/ &ones7 -i!ton 1A1FA/4A Bro5n7 eCo$,onent%*KBBBB (ODO3 Add an constructor code after Initia!i>eCo$,onent ca!!BBQBBB Usu$$ar[BBB C!ean u, an resources bein# used.BBB UBsu$$ar[,rotected override void Dis,ose% boo! dis,osin# *Lif% dis,osin# *Lif %co$,onents SO nu!!* Lco$,onents.Dis,ose%*KQ- xlviii -Qbase.Dis,ose% dis,osin# *KQHre#ion .indo5s Eor$ Desi#ner #enerated codeBBB Usu$$ar[BBB 2e:uired $et4od for Desi#ner su,,ort F do not $odifBBB t4e contents of t4is $et4od 5it4 t4e code editor.BBB UBsu$$ar[,rivate void Initia!i>eCo$,onent%*Lt4is.CreateEi!e'oError=and!in# O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is.CreateEi!e.it4Error=and!in# O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is.statusBar1 O ne5 Sste$..indo5s.Eor$s.StatusBar%*Kt4is.Sus,endLaout%*KBB BB CreateEi!e'oError=and!in#BB t4is.CreateEi!e'oError=and!in#.Location O ne5 Sste$.Dra5in#."oint%1217 41*Kt4is.CreateEi!e'oError=and!in#.'a$e O PCreateEi!e'oError=and!in#PKt4is.CreateEi!e'oError=and!in#.Si>e O ne5 Sste$.Dra5in#.Si>e%1127 23*Kt4is.CreateEi!e'oError=and!in#.(abIndex O ?Kt4is.CreateEi!e'oError=and!in#.(ext O P'o Error =and!in#PKt4is.CreateEi!e'oError=and!in#.C!ic6 CO ne5 Sste$.Event=and!er%t4is.CreateEi!e'oError=and!in#TC!ic6*KBB BB CreateEi!e.it4Error=and!in#BB t4is.CreateEi!e.it4Error=and!in#.Location O ne5 Sste$.Dra5in#."oint%3?47 41*Kt4is.CreateEi!e.it4Error=and!in#.'a$e O PCreateEi!e.it4Error=and!in#PKt4is.CreateEi!e.it4Error=and!in#.Si>e O ne5 Sste$.Dra5in#.Si>e%1127 23*Kt4is.CreateEi!e.it4Error=and!in#.(abIndex O 1Kt4is.CreateEi!e.it4Error=and!in#.(ext O P.it4 Error =and!in#PKt4is.CreateEi!e.it4Error=and!in#.C!ic6 CO ne5 Sste$.Event=and!er%t4is.CreateEi!e.it4Error=and!in#TC!ic6*KBB BB statusBar1BB t4is.statusBar1.Location O ne5 Sste$.Dra5in#."oint%?7 232*Kt4is.statusBar1.'a$e O PstatusBar1PKt4is.statusBar1.Si>e O ne5 Sste$.Dra5in#.Si>e%0?17 22*Kt4is.statusBar1.(abIndex O 2KBB BB Eor$1- xlix -BB t4is.AutoSca!eBaseSi>e O ne5 Sste$.Dra5in#.Si>e%+7 13*Kt4is.C!ientSi>e O ne5 Sste$.Dra5in#.Si>e%0?17 2+4*Kt4is.Contro!s.Add2an#e%ne5 Sste$..indo5s.Eor$s.Contro!MN L t4is.statusBar17 t4is.CreateEi!e.it4Error=and!in#7 t4is.CreateEi!e'oError=and!in#Q*Kt4is.'a$e O PEor$1PKt4is.(ext O PCode Access SecuritPKt4is.2esu$eLaout%fa!se*KQHendre#ionBBB Usu$$ar[BBB (4is a,,!ication atte$,ts to create a fi!e in t4e root of t4e C3 drive.BBB If it is do5n!oaded via =(("7 t4is 5i!! fai!. (4e first button fai!s BBB un#racefu!!K t4e second button tra,s t4e error.BBB UBsu$$ar[MS(A(4readNstatic void -ain%* LA,,!ication.2un%ne5 Eor$1%**KQ,rivate void CreateEi!e'oError=and!in#TC!ic6%object sender7 Sste$.EventAr#s e*LBBB Usu$$ar[BBB (4is sin#!e !ine si$,! atte$,ts to create a fi!e ca!!ed test.txt inBBB t4e root of t4e C3 drive. If t4is is run after t4e asse$b! 4as beenBBB do5n!oaded 5it4 =(("7 it 5i!! fai! and .'E( 5i!! dis,!a a rat4erBBB verbose error $essa#e. UBsu$$ar[Sste$.IO.Ei!e.Create%Pc3^^test1.txtP*KstatusBar1.(ext O PEi!e %test1.txt* Created Successfu!!PKQ,rivate void CreateEi!e.it4Error=and!in#TC!ic6%object sender7 Sste$.EventAr#s e*LtrLBBB Usu$$ar[BBB (4is sin#!e !ine si$,! atte$,ts to create a fi!e ca!!ed test.txt inBBB t4e root of t4e C3 drive. If t4is is run after t4e asse$b! 4as beenBBB do5n!oaded 5it4 =(("7 it 5i!! #enerate an error7 but t4e error 5i!! beBBB cau#4t and 4and!ed b t4e catc4 ,ortion of t4e tr...catc4 b!oc6. UBsu$$ar[Sste$.IO.Ei!e.Create%Pc3^^test2.txtP*K- l -statusBar1.(ext O PEi!e %test2.txt* Created Successfu!!PKQcatc4 %Exce,tion ex*LBBB Usu$$ar[BBB If t4ere 5as an error creatin# t4e fi!e7 dis,!a t4at $essa#e to t4e user.BBB .4i!e t4e $essa#e $i#4t not be too friend!7 t4is does s4o5 t4at ou 4aveBBB #enerated a tra,,ab!e error. UBsu$$ar[statusBar1.(ext O P(4e fo!!o5in# error occurred P C ex.-essa#e C P creatin# fi!e %test2.txt*PKQQQQ- li -AI-De$onstrates 4o5 to create a CO-C co$,onent7 t4at ta6es advanta#e of (ransaction $ana#e$ent service 5it4in CO-C7 t4en assi#n a stron# na$e to t4e asse$b!7 re#ister t4e asse$b! in t4e e O ne5 Sste$.Dra5in#.Si>e%2327 21*Kt4is.cboCusto$ers.(abIndex O ?KBB BB !abe!1BB t4is.!abe!1.Location O ne5 Sste$.Dra5in#."oint%107 1*Kt4is.!abe!1.'a$e O P!abe!1PKt4is.!abe!1.Si>e O ne5 Sste$.Dra5in#.Si>e%A07 23*Kt4is.!abe!1.(abIndex O 1Kt4is.!abe!1.(ext O PSe!ect Custo$er3PK- lv -t4is.!abe!1.(extA!i#n O Sste$.Dra5in#.ContentA!i#n$ent.-idd!e2i#4tKBB BB btne O ne5 Sste$.Dra5in#.Si>e%1??7 10*Kt4is.!abe!2.(abIndex O 4Kt4is.!abe!2.(ext O POrders3PKBB BB d#OrderDetai!sBB t4is.d#OrderDetai!s.Data-e$ber O PPKt4is.d#OrderDetai!s.=eaderEoreCo!or O Sste$.Dra5in#.Sste$Co!ors.Contro!(extKt4is.d#OrderDetai!s.Location O ne5 Sste$.Dra5in#."oint%107 241*Kt4is.d#OrderDetai!s.'a$e O Pd#OrderDetai!sPKt4is.d#OrderDetai!s.Si>e O ne5 Sste$.Dra5in#.Si>e%4247 144*Kt4is.d#OrderDetai!s.(abIndex O +Kt4is.d#OrderDetai!s.-ouse), CO ne5 Sste$..indo5s.Eor$s.-ouseEvent=and!er%t4is.d#OrderDetai!sT-ouse),*KBB BB btn),dateBB t4is.btn),date.Location O ne5 Sste$.Dra5in#."oint%1/07 410*Kt4is.btn),date.'a$e O Pbtn),datePKt4is.btn),date.Si>e O ne5 Sste$.Dra5in#.Si>e%117 23*Kt4is.btn),date.(abIndex O 0Kt4is.btn),date.(ext O P),date Detai!sPK- lvi -t4is.btn),date.C!ic6 CO ne5 Sste$.Event=and!er%t4is.btn),dateTC!ic6*KBB BB Custo$erOrdersBB t4is.AutoSca!eBaseSi>e O ne5 Sste$.Dra5in#.Si>e%+7 13*Kt4is.C!ientSi>e O ne5 Sste$.Dra5in#.Si>e%4+07 404*Kt4is.Contro!s.Add2an#e%ne5 Sste$..indo5s.Eor$s.Contro!MN L t4is.btn),date7 t4is.d#OrderDetai!s7t4is.!abe!27t4is.d#Orders7 t4is.btne7 I$a#e(,e* Va!ues%\Descri,tion7\I$a#eEi!e7 \I$a#eSi>e7 \I$a#e(,e*P7 Connection*K BBB Usu$$ar[BBB (4e Descri,tion ,ara$eter is used to add t4e i$a#e fi!e descri,tion to t4edatabaseS:!"ara$eter i$a#eDescri,tion"ara$eter O ne5 S:!"ara$eter%P\Descri,tionP7 S:!Db(,e.'VarC4ar*Ki$a#eDescri,tion"ara$eter.Va!ue O i$a#eDescri,tion.(extKCo$$and."ara$eters.Add%i$a#eDescri,tion"ara$eter*KBBB Usu$$ar[BBB (4e I$a#eEi!e ,ara$eter is used to add t4e i$a#e fi!e to t4e databaseS:!"ara$eter i$a#eEi!e"ara$eter O ne5 S:!"ara$eter%P\I$a#eEi!eP7 S:!Db(,e.I$a#e*K- lxxxi -i$a#eEi!e"ara$eter.Va!ue O ContentKCo$$and."ara$eters.Add%i$a#eEi!e"ara$eter*KBBB Usu$$ar[BBB (4e I$a#eSi>e ,ara$eter is used to add t4e i$a#e fi!e si>e to t4e databaseS:!"ara$eter i$a#eSi>e"ara$eter O ne5 S:!"ara$eter%P\I$a#eSi>eP7 S:!Db(,e.Int*Ki$a#eSi>e"ara$eter.Va!ue O Len#t4KCo$$and."ara$eters.Add%i$a#eSi>e"ara$eter*KBBB Usu$$ar[BBB (4e I$a#e(,e ,ara$eter is used to add t4e i$a#e fi!e t,e to t4e database S:!"ara$eter i$a#e(,e"ara$eter O ne5 S:!"ara$eter%P\I$a#e(,eP7 S:!Db(,e.'VarC4ar*Ki$a#e(,e"ara$eter.Va!ue O Content(,eKCo$$and."ara$eters.Add%i$a#e(,e"ara$eter*KBBB Usu$$ar[BBB O,en t4e connection in order to retrieve t4e record UBsu$$ar[Connection.O,en%*KBBB Usu$$ar[BBB (4e SIL state$ent is executed. Execute'onIuer is used since no recordsBBB 5i!! be returned. UBsu$$ar[Co$$and.Execute'onIuer%*KBBB Usu$$ar[BBB (4e connection is c!osed UBsu$$ar[Connection.C!ose%*KQQQ- lxxxii -AI-Deve!o, a sa$,!e a,,!ication t4at !aunc4es a .indo5s Eor$ to a!!o5 t4e user to interact and $ani,u!ate t4e IIS Ad$in service on t4e !oca! $ac4ine. (4e a,,!ication s4ou!d 5or6 b ,!acin# an icon in t4e Sste$ (ra."2OeCo$,onent%*KBBBB (ODO3 Add an constructor code after Initia!i>eCo$,onent ca!!BBQBBB Usu$$ar[BBB C!ean u, an resources bein# used.BBB UBsu$$ar[,rotected override void Dis,ose% boo! dis,osin# *Lif% dis,osin# *Lif%co$,onents SO nu!!*Lco$,onents.Dis,ose%*KQQbase.Dis,ose% dis,osin# *KQ- lxxxviii -Hre#ion .indo5s Eor$ Desi#ner #enerated codeBBB Usu$$ar[BBB 2e:uired $et4od for Desi#ner su,,ort F do not $odifBBB t4e contents of t4is $et4od 5it4 t4e code editor.BBB UBsu$$ar[,rivate void Initia!i>eCo$,onent%*Lt4is..SContro!!er O ne5 Sste$.Service"rocess.ServiceContro!!er%*Kt4is.Labe!1 O ne5 Sste$..indo5s.Eor$s.Labe!%*Kt4is.ButtonStart O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is.ButtonSto, O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is.Button"ause O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is.contro!!edService O ne5 Sste$..indo5s.Eor$s.Labe!%*Kt4is.Sus,endLaout%*KBB BB Labe!1BB t4is.Labe!1.Eont O ne5 Sste$.Dra5in#.Eont%P-icrosoft Sans SerifP7 12E7 Sste$.Dra5in#.EontSt!e.Bo!d7 Sste$.Dra5in#.eCo$,onent%*Lt4is.!b!2e,ortData O ne5 Sste$..indo5s.Eor$s.Labe!%*K- xcviii -t4is.,rintDia!o#1 O ne5 Sste$..indo5s.Eor$s."rintDia!o#%*Kt4is.,rintDocu$ent1 O ne5 Sste$.Dra5in#."rintin#."rintDocu$ent%*Kt4is.4eaderEontDefinition O ne5 Sste$..indo5s.Eor$s.(extBox%*Kt4is.co$,an'a$e O ne5 Sste$..indo5s.Eor$s.(extBox%*Kt4is.!b!BodEont O ne5 Sste$..indo5s.Eor$s.Labe!%*Kt4is.Se!ect=eaderEont O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is."rintButton O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is.re,ortData O ne5 Sste$..indo5s.Eor$s.(extBox%*Kt4is.Se!ectBodEont O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is.bodEontDefinition O ne5 Sste$..indo5s.Eor$s.(extBox%*Kt4is.!b!=eaderEont O ne5 Sste$..indo5s.Eor$s.Labe!%*Kt4is.fontDia!o#1 O ne5 Sste$..indo5s.Eor$s.EontDia!o#%*Kt4is.!b!Co$,an O ne5 Sste$..indo5s.Eor$s.Labe!%*Kt4is.Sus,endLaout%*KBB BB !b!2e,ortDataBB t4is.!b!2e,ortData.Location O ne5 Sste$.Dra5in#."oint%17 10?*Kt4is.!b!2e,ortData.'a$e O P!b!2e,ortDataPKt4is.!b!2e,ortData.(abIndex O 1AKt4is.!b!2e,ortData.(ext O P2e,ort Data3PKBB BB ,rintDia!o#1BB t4is.,rintDia!o#1.Docu$ent O t4is.,rintDocu$ent1KBB BB ,rintDocu$ent1BB t4is.,rintDocu$ent1.Docu$ent'a$e O PCusto$er ListPKt4is.,rintDocu$ent1."rint"a#e CO ne5 Sste$.Dra5in#."rintin#."rint"a#eEvent=and!er%t4is.,rintDocu$ent1T"rint"a#e*KBB BB 4eaderEontDefinitionBB t4is.4eaderEontDefinition.Location O ne5 Sste$.Dra5in#."oint%12?7 4?*Kt4is.4eaderEontDefinition.-u!ti!ine O trueKt4is.4eaderEontDefinition.'a$e O P4eaderEontDefinitionPKt4is.4eaderEontDefinition.2eadOn! O trueKt4is.4eaderEontDefinition.Si>e O ne5 Sste$.Dra5in#.Si>e%4?17 41*Kt4is.4eaderEontDefinition.(abIndex O 14Kt4is.4eaderEontDefinition.(ext O PPKBB BB co$,an'a$eBB t4is.co$,an'a$e.Location O ne5 Sste$.Dra5in#."oint%12?7 1*Kt4is.co$,an'a$e.'a$e O Pco$,an'a$ePKt4is.co$,an'a$e.Si>e O ne5 Sste$.Dra5in#.Si>e%4?172?*K- xcix -t4is.co$,an'a$e.(abIndex O 12Kt4is.co$,an'a$e.(ext O PSa$,!e Co$,anPKBB BB !b!BodEontBBt4is.!b!BodEont.Location O ne5 Sste$.Dra5in#."oint%17 1?4*Kt4is.!b!BodEont.'a$e O P!b!BodEontPKt4is.!b!BodEont.(abIndex O 10Kt4is.!b!BodEont.(ext O PBod (ext Eont3PKBB BB Se!ect=eaderEontBB t4is.Se!ect=eaderEont.Location O ne5 Sste$.Dra5in#."oint%+307 4?*Kt4is.Se!ect=eaderEont.'a$e O PSe!ect=eaderEontPKt4is.Se!ect=eaderEont.Si>e O ne5 Sste$.Dra5in#.Si>e%247 2?*Kt4is.Se!ect=eaderEont.(abIndex O 1+Kt4is.Se!ect=eaderEont.(ext O P...PKt4is.Se!ect=eaderEont.C!ic6 CO ne5 Sste$.Event=and!er%t4is.Se!ect=eaderEontTC!ic6*KBB BB "rintButtonBB t4is."rintButton.Location O ne5 Sste$.Dra5in#."oint%2417 312*Kt4is."rintButton.'a$e O P"rintButtonPKt4is."rintButton.(abIndex O 21Kt4is."rintButton.(ext O P"rintPKt4is."rintButton.C!ic6 CO ne5 Sste$.Event=and!er%t4is."rintButtonTC!ic6*KBB BB re,ortDataBB t4is.re,ortData.Location O ne5 Sste$.Dra5in#."oint%12?7 10?*Kt4is.re,ortData.-u!ti!ine O trueKt4is.re,ortData.'a$e O Pre,ortDataPKt4is.re,ortData.2eadOn! O trueKt4is.re,ortData.Scro!!Bars O Sste$..indo5s.Eor$s.Scro!!Bars.Bot4Kt4is.re,ortData.Si>e O ne5 Sste$.Dra5in#.Si>e%4?17 144*Kt4is.re,ortData.(abIndex O 2?Kt4is.re,ortData.(ext O PPKBB BB Se!ectBodEontBB t4is.Se!ectBodEont.Location O ne5 Sste$.Dra5in#."oint%+307 1?4*Kt4is.Se!ectBodEont.'a$e O PSe!ectBodEontPKt4is.Se!ectBodEont.Si>e O ne5 Sste$.Dra5in#.Si>e%247 2?*Kt4is.Se!ectBodEont.(abIndex O 11Kt4is.Se!ectBodEont.(ext O P...PKt4is.Se!ectBodEont.C!ic6 CO ne5 Sste$.Event=and!er%t4is.Se!ectBodEontTC!ic6*K- c -BB BB bodEontDefinitionBB t4is.bodEontDefinition.Location O ne5 Sste$.Dra5in#."oint%12?7 1?4*Kt4is.bodEontDefinition.-u!ti!ine O trueKt4is.bodEontDefinition.'a$e O PbodEontDefinitionPKt4is.bodEontDefinition.2eadOn! O trueKt4is.bodEontDefinition.Si>e O ne5 Sste$.Dra5in#.Si>e%4?17 41*Kt4is.bodEontDefinition.(abIndex O 1/Kt4is.bodEontDefinition.(ext O PPKBB BB !b!=eaderEontBB t4is.!b!=eaderEont.Location O ne5 Sste$.Dra5in#."oint%17 4?*Kt4is.!b!=eaderEont.'a$e O P!b!=eaderEontPKt4is.!b!=eaderEont.(abIndex O 13Kt4is.!b!=eaderEont.(ext O P=eader (ext Eont3PKBB BB !b!Co$,anBB t4is.!b!Co$,an.Location O ne5 Sste$.Dra5in#."oint%17 1*Kt4is.!b!Co$,an.'a$e O P!b!Co$,anPKt4is.!b!Co$,an.(abIndex O 11Kt4is.!b!Co$,an.(ext O PCo$,an 'a$e3PKBB BB Eor$1BB t4is.AutoSca!eBaseSi>e O ne5 Sste$.Dra5in#.Si>e%+7 13*Kt4is.C!ientSi>e O ne5 Sste$.Dra5in#.Si>e%+017 34?*Kt4is.Contro!s.Add2an#e%ne5 Sste$..indo5s.Eor$s.Contro!MN Lt4is.!b!BodEont7 t4is.Se!ect=eaderEont7t4is."rintButton7t4is.re,ortData7t4is.Se!ectBodEont7 t4is.bodEontDefinition7 t4is.!b!=eaderEont7 t4is.!b!Co$,an7t4is.!b!2e,ortData7t4is.4eaderEontDefinition7t4is.co$,an'a$eQ*Kt4is.'a$e O PEor$1PKt4is.(ext O PCusto$er List "rintin# Sa$,!ePKt4is.Load CO ne5 Sste$.Event=and!er%t4is.Eor$1TLoad*Kt4is.2esu$eLaout%fa!se*KQHendre#ionBBB Usu$$ar[- ci -BBB (4e $ain entr ,oint for t4e a,,!ication.BBB UBsu$$ar[MS(A(4readNstatic void -ain%* LA,,!ication.2un%ne5 Eor$1%**KQBBB Usu$$ar[BBB Occurs before a for$ is dis,!aed for t4e first ti$e.BBB Contains code to u,date read an @-L fi!e and u,dateBBB t4e text of so$e for$ contro!s.BBB UBsu$$ar[BBB U,ara$ na$eOPsenderP[(4e source of t4e event.UB,ara$[BBB U,ara$ na$eOPeP[An EventAr#s t4at contains t4e event data.UB,ara$[,rivate void Eor$1TLoad%object sender7 Sste$.EventAr#s e*LBB Set t4e defau!t fonts for t4e 4eader and text.4eaderEont O ne5 Eont%PAria!P7 14*KbodEont O ne5 Eont%PAria!P7 1?*KBB ),date t4e for$ contro!s to dis,!a t4e defau!t font settin#s.4eaderEontDefinition.(ext O 4eaderEont.(oStrin#%*KbodEontDefinition.(ext O bodEont.(oStrin#%*KBB "erfor$ t4e readin# of t4e data fi!e 5it4in a tr b!oc6 in caseBB t4e data fi!e doesnRt exist or an error is encountered readin# t4e fi!e.trLBB (4e @$!(ext2eader reads t4e s,ecified @-L fi!e and ,rovides a 5a toBB scro!! t4rou#4 t4e data e!e$ents.x$!2eader O ne5 Sste$.@$!.@$!(ext2eader%P..^^..^^..^^-isc^^2e,ortData.x$!P*KBB Ca!! t4e 2ead $et4od in order to ,osition t4e reader at t4eBB first e!e$ent.x$!2eader.2ead%*KBB S4o5 t4e entire contents of t4e data fi!e in BB a textbox for co$,arison to t4e ,rinted re,ort.re,ortData.(ext O x$!2eader.2eadOuter@$!%*KBB C!oses t4e @$!2eader.x$!2eader.C!ose%*KQcatc4%Exce,tion ex* L- cii -BB An error 5as encountered o,enin# or readin# t4e data fi!e.BB Dis,!a an a,,ro,riate $essa#e to t4e user.-essa#eBox.S4o5%PError o,enin# fi!e3 ^r^nP C ex.-essa#e*KBB C!ose t4e for$ since a re,ort canRt be ,rinted 5it4out accessBB to t4e data fi!e.t4is.C!ose%*KQQBBB Usu$$ar[BBB (4is event dis,!as a ,rinter se!ection dia!o# and t4en starts t4e ,rintBBB ,rocess.BBB UBsu$$ar[BBB U,ara$ na$eOPsenderP[(4e source of t4e event.UB,ara$[BBB U,ara$ na$eOPeP[An EventAr#s t4at contains t4e event data.UB,ara$[,rivate void "rintButtonTC!ic6%object sender7 Sste$.EventAr#s e*LBB "erfor$ t4e ,rint 5it4in a tr b!oc6 in case a fai!ureBB of an t,e occurs.Eor t4is sa$,!e7 a!! errors 5i!!BB be 4and!ed #enerica!! b si$,! dis,!ain# a $essa#ebox.- ciii -tr LBB O,en t4e @-L Data fi!e.x$!2eader O ne5 Sste$.@$!.@$!(ext2eader%P..^^..^^..^^-isc^^2e,ortData.x$!P*KBB "osition t4e ,ointer to t4e first e!e$ent.x$!2eader.2ead%*KBB Dis,!a a ,rinter se!ection dia!o#.BB On! ,rint t4e docu$ent if t4e user c!ic6s OD.if %,rintDia!o#1.S4o5Dia!o#%* OO Dia!o#2esu!t.OD*LBB (4is starts t4e actua! ,rint.(4e code to out,utBB text to t4e se!ected ,rinter resides in t4e "rintDocu$ent1T"rint"a#eBB event 4and!er."rintDocu$ent1."rint%*KQBB C!ose t4e data fi!e.x$!2eader.C!ose%*KQcatc4 %Exce,tion ex*LBB If an error occurs7 dis,!a a $essa#ebox.-essa#eBox.S4o5%PError ,rintin# re,ort3 ^r^nP C ex.-essa#e*KQQBBB Usu$$ar[BBB (4is event occurs 54en t4e out,ut to ,rint for t4e current ,a#e is needed7and BBB contains t4e !o#ic to 4and!e t4e content and !aout of t4e ,rinted ,a#e.BBB UBsu$$ar[BBB U,ara$ na$eOPsenderP[(4e source of t4e event.UB,ara$[BBB U,ara$ na$eOPeP[A "rint"a#eEventAr#s t4at contains t4e event ata.UB,ara$[,rivate void ,rintDocu$ent1T"rint"a#e%object sender7 Sste$.Dra5in#."rintin#."rint"a#eEventAr#s e*LBB Deter$ine t4e 4ei#4t of t4e 4eader7 based on t4e se!ected font.f!oat 4eader=ei#4t O 4eaderEont.e O ne5 Sste$.Dra5in#.Si>e%3/07 1/3*Kt4is.!ist(,es.(abIndex O 3KBB 2ef!ectionEor$t4is.AutoSca!eBaseSi>e O ne5 Sste$.Dra5in#.Si>e%+7 13*Kt4is.C!ientSi>e O ne5 Sste$.Dra5in#.Si>e%4??7 2/3*Kt4is.Contro!s.Add2an#e%ne5 Sste$..indo5s.Eor$s.Contro!MN Lt4is.!ist(,es7t4is.!abe!17t4is.!istAsse$b!ies7t4is.ab!e.!ist(,es.Ite$s.Add%PSeria!i>ab!e3 P C base(,e.IsSeria!i>ab!e*KBBis t4e asse$b! defined as abstract.!ist(,es.Ite$s.Add%PAbstract3 P C base(,e.IsAbstract*KBBis t4e asse$b! a c!ass !ibrar.!ist(,es.Ite$s.Add%PC!ass3 P C base(,e.IsC!ass*KBBis t4e asse$b! ,ub!ic.!ist(,es.Ite$s.Add%P"ub!ic3 P C base(,e.Is"ub!ic*KBBis t4e asse$b! sea!ed.!ist(,es.Ite$s.Add%PSea!ed3 P C base(,e.IsSea!ed*KBB#et t4e attributes defined F returns on! .'E( base attributes.BBfor custo$attributes use t4e PeCo$,onent ca!!QBBB Usu$$ar[BBB C!ean u, an resources bein# used.BBB UBsu$$ar[,rotected override void Dis,ose% boo! dis,osin# *Lif% dis,osin# *Lif %co$,onents SO nu!!* Lco$,onents.Dis,ose%*KQQbase.Dis,ose% dis,osin# *KQHre#ion .indo5s Eor$ Desi#ner #enerated codeBBB Usu$$ar[BBB 2e:uired $et4od for Desi#ner su,,ort F do not $odifBBB t4e contents of t4is $et4od 5it4 t4e code editor.BBB UBsu$$ar[,rivate void Initia!i>eCo$,onent%*L4is.tar#et)2I O ne5 Sste$..indo5s.Eor$s.(extBox%*Kt4is.Labe!1 O ne5 Sste$..indo5s.Eor$s.Labe!%*Kt4is.e%A07 10*Kt4is.Labe!2.(abIndex O /Kt4is.Labe!2.(ext O PSave (o Address3PKBB textOut,utt4is.textOut,ut.Location O ne5 Sste$.Dra5in#."oint%17 04*Kt4is.textOut,ut.-axLen#t4 O +????Kt4is.textOut,ut.-u!ti!ine O trueKt4is.textOut,ut.'a$e O PtextOut,utPKt4is.textOut,ut.Scro!!Bars O Sste$..indo5s.Eor$s.Scro!!Bars.Bot4Kt4is.textOut,ut.Si>e O ne5 Sste$.Dra5in#.Si>e%AA27 +2?*Kt4is.textOut,ut.(abIndex O 1Kt4is.textOut,ut.(ext O PPKBB .ebC!ientEor$t4is.AutoSca!eBaseSi>e O ne5 Sste$.Dra5in#.Si>e%+7 13*Kt4is.C!ientSi>e O ne5 Sste$.Dra5in#.Si>e%1??17 0+0*Kt4is.Contro!s.Add2an#e%ne5 Sste$..indo5s.Eor$s.Contro!MN Lt4is.textOut,ut7t4is.Labe!27t4is.Save(ext(o(ar#et7t4is.save(ar#et(oAddress7t4is.e O ne5 Sste$.Dra5in#.Si>e%317 13*K- clv -t4is.!abe!1.(abIndex O 3Kt4is.!abe!1.(ext O POut,utPKBB "ass5ordt4is."ass5ord.Location O ne5 Sste$.Dra5in#."oint%/27 1?*Kt4is."ass5ord.'a$e O P"ass5ordPKt4is."ass5ord."ass5ordC4ar O RJRKt4is."ass5ord.Si>e O ne5 Sste$.Dra5in#.Si>e%1307 2?*Kt4is."ass5ord.(abIndex O 1Kt4is."ass5ord.(ext O PPKBB )ser'a$et4is.)ser'a$e.Location O ne5 Sste$.Dra5in#."oint%/27 41*Kt4is.)ser'a$e.'a$e O P)ser'a$ePKt4is.)ser'a$e.Si>e O ne5 Sste$.Dra5in#.Si>e%1307 2?*Kt4is.)ser'a$e.(abIndex O ?Kt4is.)ser'a$e.(ext O PPKBB !abe!2t4is.!abe!2.AutoSi>e O trueKt4is.!abe!2.Location O ne5 Sste$.Dra5in#."oint%17 1?*Kt4is.!abe!2.'a$e O P!abe!2PKt4is.!abe!2.Si>e O ne5 Sste$.Dra5in#.Si>e%+47 13*Kt4is.!abe!2.(abIndex O +Kt4is.!abe!2.(ext O P"ass5ordPKBB !abe!3t4is.!abe!3.AutoSi>e O trueKt4is.!abe!3.Location O ne5 Sste$.Dra5in#."oint%17 41*Kt4is.!abe!3.'a$e O P!abe!3PKt4is.!abe!3.Si>e O ne5 Sste$.Dra5in#.Si>e%017 13*Kt4is.!abe!3.(abIndex O 4Kt4is.!abe!3.(ext O P)ser 'a$ePKBB Eor$1t4is.AutoSca!eBaseSi>e O ne5 Sste$.Dra5in#.Si>e%+7 13*Kt4is.C!ientSi>e O ne5 Sste$.Dra5in#.Si>e%2327 100*Kt4is.Contro!s.Add2an#e%ne5 Sste$..indo5s.Eor$s.Contro!MN Lt4is.!abe!37t4is.!abe!27 t4is.)ser'a$e7t4is."ass5ord7t4is.!abe!17t4is..ebServit4is.button1Q*Kt4is.'a$e O PEor$1Pt4is.(ext O PEor$1PKt4is.2esu$eLaout%fa!se*KQHendre#ionBBB Usu$$ar[BBB void -ain $ere! !oads t4e for$.BBB UBsu$$ar[- clvi -MS(A(4readNstatic void -ain%* LA,,!ication.2un%ne5 Eor$1%**KQBBB Usu$$ar[BBB (4e button1TC!ic6 event 4and!er runs 54en t4e button is c!ic6ed. (4e reference to t4eBBB eCo$,onent%*KBB (ODO3 Add an constructor code after Initia!i>eCo$,onent ca!!QBBB Usu$$ar[BBB C!ean u, an resources bein# used.BBB UBsu$$ar[,rotected override void Dis,ose% boo! dis,osin# *Lif% dis,osin# *Lif%co$,onents SO nu!!*Lco$,onents.Dis,ose%*KQ- clxv -Qbase.Dis,ose% dis,osin# *KQHre#ion .indo5s Eor$ Desi#ner #enerated codeBBB Usu$$ar[BBB 2e:uired $et4od for Desi#ner su,,ort F do not $odifBBB t4e contents of t4is $et4od 5it4 t4e code editor.BBB UBsu$$ar[,rivate void Initia!i>eCo$,onent%*Lt4is.!abe!1 O ne5 Sste$..indo5s.Eor$s.Labe!%*Kt4is.Out,utEi!e'a$e O ne5 Sste$..indo5s.Eor$s.(extBox%*Kt4is.statusBar1 O ne5 Sste$..indo5s.Eor$s.StatusBar%*Kt4is..riteEi!e O ne5 Sste$..indo5s.Eor$s.Button%*Kt4is.Sus,endLaout%*KBB !abe!1t4is.!abe!1.Location O ne5 Sste$.Dra5in#."oint%107 24*Kt4is.!abe!1.'a$e O P!abe!1PKt4is.!abe!1.(abIndex O ?Kt4is.!abe!1.(ext O PEi!e 'a$ePKBB Out,utEi!e'a$et4is.Out,utEi!e'a$e.Location O ne5 Sste$.Dra5in#."oint%1447 24*Kt4is.Out,utEi!e'a$e.'a$e O POut,utEi!e'a$ePKt4is.Out,utEi!e'a$e.Si>e O ne5 Sste$.Dra5in#.Si>e%4047 2?*Kt4is.Out,utEi!e'a$e.(abIndex O 1Kt4is.Out,utEi!e'a$e.(ext O Pcusto$ers.x$!PKBB statusBar1t4is.statusBar1.Location O ne5 Sste$.Dra5in#."oint%?7 410*Kt4is.statusBar1.'a$e O PstatusBar1PKt4is.statusBar1.Si>e O ne5 Sste$.Dra5in#.Si>e%/?47 22*Kt4is.statusBar1.(abIndex O 2Kt4is.statusBar1.(ext O PstatusBar1PKBB .riteEi!et4is..riteEi!e.Location O ne5 Sste$.Dra5in#."oint%1447 +0*Kt4is..riteEi!e.'a$e O P.riteEi!ePKt4is..riteEi!e.(abIndex O 3Kt4is..riteEi!e.(ext O P.rite Ei!ePKt4is..riteEi!e.C!ic6 CO ne5 Sste$.Event=and!er%t4is..riteEi!eTC!ic6*KBB -ainEor$t4is.AutoSca!eBaseSi>e O ne5 Sste$.Dra5in#.Si>e%+7 13*Kt4is.C!ientSi>e O ne5 Sste$.Dra5in#.Si>e%/?47 431*Kt4is.Contro!s.Add2an#e%ne5 Sste$..indo5s.Eor$s.Contro!MN Lt4is..riteEi!e7t4is.statusBar17t4is.Out,utEi!e'a$e7t4is.!abe!1Q*Kt4is.'a$e O P-ainEor$PKt4is.(ext O P-ainEor$PK- clxvi -t4is.2esu$eLaout%fa!se*KQHendre#ionstatic void -ain%* LA,,!ication.2un%ne5 -ainEor$%**KQ,rivate void .riteEi!eTC!ic6%object sender7 Sste$.EventAr#s e*Lstrin# @$!Ei!eKSste$.IO.DirectorInfo directorInfoKSste$.IO.DirectorInfo director@-LKBB