package Ġt edit Ċ Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Paths Ċ import Ġjavax . swing . JOptionPane Ċ import Ġjavax . swing . J FileChooser Ċ import Ġpen . eco . Target Ċ import Ġt edit . Lang Ċ import Ġt edit . session . Session Ċ import Ġt edit . session . KT ender Document Ċ import Ġt edit . gui . GUI Ċ import Ġt edit . utils . users Dir Ċ Ċ class ĠVoid File Ġ: ĠFile ( Ġ"" Ġ) Ċ Ċ enum Ġclass ĠFile Co oser Mode Ċ { ĠOPEN , ĠSAVE _ AS , ĠEX PORT Ġ} Ċ Ċ /** ĠSets Ġthe Ġtitle Ġaccording Ġto Ġfile Ġname Ġand Ġmodification Ġstatus . Ġ*/ Ċ internal Ġfun Ġupdate Title Ġ() Ġ= Ġwith ( ĠSession . documents . active Document Ġ) Ċ { ĊĠĠ Ġval Ġtitle Ġ= ĠLang . word ( Ġ 3 0 1 Ġ) Ġ+ Ġ" Ġ- Ġ" Ġ+ Ġfilename Exclude Path () Ġ+ Ġif Ġ( proposal Table . modified ) Ġ" Ġ*" Ġelse Ġ"" ĊĠĠ ĠGUI . frame . setTitle ( Ġtitle Ġ) Ċ } Ċ Ċ /** ĠL ets Ġthe Ġuser Ġchoose Ġwhat Ġfile Ġto Ġsave Ġor Ġexport . Ġ*/ Ċ internal Ġfun Ġchoose File Ġ( encrypted Ġ: ĠBoolean Ġ= Ġfalse ) Ġ: ĠFile Ċ { ĊĠĠ Ġvar Ġret Ġ: ĠFile Ġ= ĠVoid File () ĊĠĠ Ġval Ġfile Chooser Ġ= Ġif Ġ( encrypted ) ĊĠĠĠĠĠĠĠĠ ĠGUI . file Chooser ( ĠFile Co oser Mode . EXPORT Ġ) ĊĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠ ĠGUI . file Chooser ( ĠFile Co oser Mode . SAVE _ AS Ġ) ĊĊĠĠ Ġval Ġresult Ġ= Ġfile Chooser . show Save Dialog ( ĠGUI . frame Ġ) ĊĠĠ Ġif Ġ( result Ġ== ĠJ FileChooser . APPRO VE _ OPTION ) ĊĠĠĠĠĠ Ġret Ġ= Ġfile Chooser . selected File ĊĊĠĠ Ġreturn Ġret Ċ } Ċ Ċ /** ĠG ives Ġthe Ġuser Ġa Ġchance Ġto Ġbail Ġout Ġbefore Ġover writing Ġa Ġfile . Ġ*/ Ċ internal Ġfun Ġoverwrite Accept Ġ( file Ġ: ĠFile ) Ġ: ĠBoolean Ċ { ĊĠĠ Ġval Ġbutton Texts Ġ= ĠarrayOf ( Lang . word ( Ġ 8 Ġ), ĠLang . word ( Ġ 9 Ġ)) ĊĠĠ Ġval Ġresult Ġ= ĠJOptionPane . show Option Dialog ( ĠGUI . frame , Ġ" Ġ\" ${ file . name }\" Ġ${ Lang . word ( 6 9 )}\ n ${ Lang . word ( 7 2 )} ", ĊĠĠĠĠĠ ĠLang . word ( Ġ 3 4 Ġ), ĠJOptionPane . YES _ NO _ OPTION , ĠJOptionPane . WARNING _ MESSAGE , Ġnull , Ġbutton Texts , Ġbutton Texts [ 1 ] Ġ) ĊĊĠĠ Ġreturn Ġresult Ġ== ĠJOptionPane . YES _ OPTION Ċ } Ċ Ċ /** ĠDisplays Ġproduct Ġinfo Ġin Ġthe Ġinfo Ġpane . Ġ*/ Ċ internal Ġfun Ġshow Product Ġ( productId Ġ: ĠString ) Ċ { ĊĠĠ Ġval Ġrelation Ġ= ĠSession . documents . active Document . relation ĊĊĠĠ Ġif Ġ(! relation . is Void () Ġ&& Ġrelation . target Ġ> ĠTarget . UNDEFINED ) ĊĠĠ Ġ{ ĊĠĠĠĠĠ Ġval Ġinfo Path Ġ= ĠPaths . get ( Ġ" users ", ĠSession . user . me . contact . info . name , Ġif Ġ( relation . target Ġ== ĠTarget . PRO DU CTION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" job info " ĊĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" product info " ĊĠĠĠĠĠĠĠĠ Ġ, ĠproductId Ġ+ Ġ". html " Ġ) ĊĊĠĠĠĠĠ ĠGUI . info Pane . load ( Ġinfo Path . to File () Ġ) ĊĠĠ Ġ} Ċ } Ċ Ċ /** ĠIn forms Ġabout Ġun saved Ġdocument Ġand Ġlets Ġthe Ġuser Ġchoose Ġwhat Ġto Ġdo . Ġ*/ Ċ internal Ġfun Ġoptional Save Ġ( un saved Document Ġ: ĠK T ender Document ) Ġ: ĠBoolean Ċ { ĊĠĠ Ġvar Ġpro ce de Ġ= Ġtrue ĊĠĠ Ġval Ġbutton Texts Ġ= ĠarrayOf ( ĠLang . word ( Ġ 1 8 Ġ), ĠLang . word ( Ġ 9 Ġ), ĠLang . word ( Ġ 1 1 Ġ) Ġ) ĊĠĠ Ġval Ġcho ise Ġ= ĠJOptionPane . show Option Dialog ( ĠGUI . frame , Ġ"\" ${ un saved Document . filename Exclude Path ()} \" Ġ${ Lang . word ( 4 9 )}\ n ${ Lang . word ( 7 1 )} ", ĊĠĠ ĠLang . word ( Ġ 3 4 Ġ), ĠJOptionPane . YES _ NO _ CANCEL _ OPTION , ĠJOptionPane . WARNING _ MESSAGE , Ġnull , Ġbutton Texts , Ġbutton Texts [ 2 ]); ĊĊĠĠ Ġif Ġ( cho ise Ġ== ĠJOptionPane . YES _ OPTION ) ĊĠĠĠĠĠ Ġpro ce de Ġ= Ġsave Document ( Ġun saved Document Ġ) ĊĠĠ Ġelse ĊĠĠĠĠĠ Ġif Ġ( cho ise Ġ== ĠJOptionPane . CANCEL _ OPTION ) ĊĠĠĠĠĠĠĠĠ Ġpro ce de Ġ= Ġfalse ĊĊĠĠ Ġreturn Ġpro ce de Ċ } Ċ Ċ /** ĠT ries Ġto Ġsave Ġdocument , Ġshows Ġerror Ġmessage Ġif Ġit Ġfails . Ġ*/ Ċ internal Ġfun Ġactual Save Ġ( document Ġ: ĠK T ender Document ) Ġ: ĠBoolean Ċ { ĊĠĠ Ġval Ġsuccess Ġ= Ġdocument . save () ĊĠĠ Ġif Ġ( success ) ĊĠĠ Ġ{ ĊĠĠĠĠĠ Ġdocument . proposal Table . modified Ġ= Ġfalse ĊĠĠĠĠĠ ĠGUI . tabs . setTitle At ( ĠGUI . tabs . selectedIndex , Ġdocument . filename Exclude Path () Ġ) ĊĠĠĠĠĠ Ġupdate Title () ĊĠĠ Ġ} ĊĠĠ Ġelse ĊĠĠĠĠĠ Ġcould Not Be Saved Dialog ( Ġdocument . filename Exclude Path () Ġ) ĊĊĠĠ Ġreturn Ġsuccess Ċ } Ċ Ċ internal Ġfun Ġcould Not Be Saved Dialog Ġ( filename Ġ: ĠString ) Ġ= ĠJOptionPane . showMessageDialog ( GUI . frame , ĠĊĠĠ Ġ"\" $ filename () \" Ġ${ Lang . word ( 7 3 )} ", ĠLang . word ( Ġ 7 4 Ġ), ĠJOptionPane . ERROR _ MESSAGE ) Ċ