//---------------------------------------------------------------- ----------------------- Ċ // ĠCopyright Ġ( c ) Ġ 2 0 0 1 - 2 0 1 8 Ġby ĠPDF Tr on ĠSystems ĠInc . ĠAll ĠRights ĠReserved . Ċ // ĠConsult Ġlegal . txt Ġregarding Ġlegal Ġand Ġlicense Ġinformation . Ċ //---------------------------------------------------------------- ----------------------- Ċ Ċ package Ġcom . pdf tron . android . pdf net sdk samples . samples Ċ Ċ import Ġcom . pdf tron . android . pdf net sdk samples . Output Listener Ċ import Ġcom . pdf tron . android . pdf net sdk samples . PDF Net Sample Ċ import Ġcom . pdf tron . android . pdf net sdk samples . R Ċ import Ġcom . pdf tron . android . pdf net sdk samples . util . Utils Ċ import Ġcom . pdf tron . common . PDF Net Exception Ċ import Ġcom . pdf tron . pdf . Action Ċ import Ġcom . pdf tron . pdf . Bookmark Ċ import Ġcom . pdf tron . pdf . Destination Ċ import Ġcom . pdf tron . pdf . File Spec Ċ import Ġcom . pdf tron . pdf . PDF Doc Ċ import Ġcom . pdf tron . pdf . Page Ċ import Ġcom . pdf tron . sdf . Obj Ċ import Ġcom . pdf tron . sdf . SD F Doc Ċ Ċ import Ġjava . io . File Ċ import Ġjava . util . ArrayList Ċ Ċ class ĠBook mark Test Ġ: ĠPDF Net Sample () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠsetTitle ( R . string . sample _ bookmarks _ title ) ĊĠĠĠĠĠĠĠ Ġset Description ( R . string . sample _ bookmarks _ description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrun ( output Listener : ĠOutput Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . run ( output Listener ) ĊĠĠĠĠĠĠĠ Ġm Output Listener Ġ= Ġoutput Listener ĊĠĠĠĠĠĠĠ Ġm FileList . clear () ĊĠĠĠĠĠĠĠ Ġprint Header ( output Listener !! ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġfollowing Ġexample Ġillustr ates Ġhow Ġto Ġcreate Ġand Ġedit Ġthe Ġoutline Ġtree ĊĠĠĠĠĠĠĠ Ġ// Ġusing Ġhigh - level ĠBook mark Ġmethods . ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Opening Ġthe Ġinput Ġfile ...") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠPDF Doc ( Utils . get Asset TempFile ( PDF Net Sample . Companion . INPUT _ PATH Ġ+ Ġ" number ed . pdf ") !!. absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . init Security Handler () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠL ets Ġfirst Ġcreate Ġthe Ġroot Ġbookmark Ġitems . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġred Ġ= ĠBook mark . create ( doc , Ġ" Red ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgreen Ġ= ĠBook mark . create ( doc , Ġ" Green ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblue Ġ= ĠBook mark . create ( doc , Ġ" Blue ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . add Root Bookmark ( red ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . add Root Bookmark ( green ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . add Root Bookmark ( blue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠYou Ġcan Ġalso Ġadd Ġnew Ġroot Ġbook marks Ġusing ĠBook mark . Add Next (" ...") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblue . add Next (" foo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblue . add Next (" bar ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġcan Ġnow Ġassociate Ġnew Ġbook marks Ġwith Ġpage Ġdest inations : ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġfollowing Ġexample Ġcreates Ġan Ġ' explicit ' Ġdestination Ġ( see ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsection Ġ' 8 . 2 . 1 ĠDest inations ' Ġin ĠPDF ĠReference Ġfor Ġmore Ġdetails ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġred _ dest Ġ= ĠDestination . create Fit ( doc . page Iterator . next ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġred . action Ġ= ĠAction . create G oto ( red _ dest ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġan Ġexplicit Ġdestination Ġto Ġthe Ġfirst Ġgreen Ġpage Ġin Ġthe Ġdocument ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgreen . action Ġ= ĠAction . create G oto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDestination . create Fit ( doc . getPage ( 1 0 ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġfollowing Ġexample Ġcreates Ġa Ġ' named ' Ġdestination Ġ( see ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsection Ġ' 8 . 2 . 1 ĠDest inations ' Ġin ĠPDF ĠReference Ġfor Ġmore Ġdetails ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNamed Ġdest inations Ġhave Ġcertain Ġadv antages Ġover Ġexplicit Ġdest inations . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġbyte ArrayOf (' b '. to Byte (), Ġ' l '. to Byte (), Ġ' u '. to Byte (), Ġ' e '. to Byte (), Ġ' 1 '. to Byte ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblue _ action Ġ= ĠAction . create G oto ( key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDestination . create Fit ( doc . getPage ( 1 9 ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġblue . action Ġ= Ġblue _ action ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġcan Ġnow Ġadd Ġchildren ĠBook marks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub _ red 1 Ġ= Ġred . addChild (" Red Ġ- ĠPage Ġ 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub _ red 1 . action Ġ= ĠAction . create G oto ( Destination . create Fit ( doc . getPage ( 1 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub _ red 2 Ġ= Ġred . addChild (" Red Ġ- ĠPage Ġ 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub _ red 2 . action Ġ= ĠAction . create G oto ( Destination . create Fit ( doc . getPage ( 2 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub _ red 3 Ġ= Ġred . addChild (" Red Ġ- ĠPage Ġ 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub _ red 3 . action Ġ= ĠAction . create G oto ( Destination . create Fit ( doc . getPage ( 3 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub _ red 4 Ġ= Ġsub _ red 3 . addChild (" Red Ġ- ĠPage Ġ 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub _ red 4 . action Ġ= ĠAction . create G oto ( Destination . create Fit ( doc . getPage ( 4 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub _ red 5 Ġ= Ġsub _ red 3 . addChild (" Red Ġ- ĠPage Ġ 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub _ red 5 . action Ġ= ĠAction . create G oto ( Destination . create Fit ( doc . getPage ( 5 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub _ red 6 Ġ= Ġsub _ red 3 . addChild (" Red Ġ- ĠPage Ġ 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub _ red 6 . action Ġ= ĠAction . create G oto ( Destination . create Fit ( doc . getPage ( 6 ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠExample Ġof Ġhow Ġto Ġfind Ġand Ġdelete Ġa Ġbookmark Ġby Ġtitle Ġtext . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġ= Ġdoc . first Bookmark . find (" foo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( foo . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoo . delete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Foo Ġis Ġnot ĠValid ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbar Ġ= Ġdoc . first Bookmark . find (" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bar . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbar . delete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Bar Ġis Ġnot ĠValid ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdding Ġcolor Ġto ĠBook marks . ĠColor Ġand Ġother Ġformatting Ġcan Ġhelp Ġreaders ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Ġaround Ġmore Ġeasily Ġin Ġlarge ĠPDF Ġdocuments . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġred . setColor ( 1 . 0 , Ġ 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgreen . setColor ( 0 . 0 , Ġ 1 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgreen . flags Ġ= Ġ 2 ĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġbold Ġfont ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblue . setColor ( 0 . 0 , Ġ 0 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblue . flags Ġ= Ġ 3 ĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġbold Ġand Ġit al lic ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . save ( Utils . create External File (" bookmark . pdf "). absolute Path , ĠS DF Doc . Save Mode . NO _ FLAGS , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc . fileName ). name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Done . ĠResult Ġsaved Ġin Ġbookmark . pdf ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println ( e . stack Trace ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġfollowing Ġexample Ġillustr ates Ġhow Ġto Ġtraverse Ġthe Ġoutline Ġtree Ġusing ĊĠĠĠĠĠĠĠ Ġ// ĠBook mark Ġnavigation Ġmethods : ĠBook mark . GetNext (), ĠBook mark . Get Prev (), ĊĠĠĠĠĠĠĠ Ġ// ĠBook mark . Get First Child Ġ() Ġand ĠBook mark . Get Last Child Ġ(). ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOpen Ġthe Ġdocument Ġthat Ġwas Ġsaved Ġin Ġthe Ġprevious Ġcode Ġsample ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠPDF Doc ( Utils . create External File (" bookmark . pdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . init Security Handler () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġdoc . first Bookmark ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPrint Outline Tree ( root ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Done .") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println ( e . stack Trace ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġfollowing Ġexample Ġillustr ates Ġhow Ġto Ġcreate Ġa ĠBook mark Ġto Ġa Ġpage ĊĠĠĠĠĠĠĠ Ġ// Ġin Ġa Ġremote Ġdocument . ĠA Ġremote Ġgo - to Ġaction Ġis Ġsimilar Ġto Ġan Ġordinary ĊĠĠĠĠĠĠĠ Ġ// Ġgo - to Ġaction , Ġbut Ġjumps Ġto Ġa Ġdestination Ġin Ġanother ĠPDF Ġfile Ġinstead ĊĠĠĠĠĠĠĠ Ġ// Ġof Ġthe Ġcurrent Ġfile . ĠSee ĠSection Ġ 8 . 5 . 3 Ġ' Remote ĠGo - To ĠActions ' Ġin ĠPDF ĊĠĠĠĠĠĠĠ Ġ// ĠReference ĠManual Ġfor Ġdetails . ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOpen Ġthe Ġdocument Ġthat Ġwas Ġsaved Ġin Ġthe Ġprevious Ġcode Ġsample ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠPDF Doc ( Utils . create External File (" bookmark . pdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . init Security Handler () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġfile Ġspecification Ġ( the Ġfile Ġre ffer ed Ġto Ġby Ġthe Ġremote Ġbookmark ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile _ spec Ġ= Ġdoc . create Indirect Dict () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile _ spec . put Name (" Type ", Ġ" File spec ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile _ spec . putString (" F ", Ġ" bookmark . pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠFile Spec ( file _ spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgoto _ remote Ġ= ĠAction . create G oto Remote ( spec , Ġ 5 , Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremote Bookmark 1 Ġ= ĠBook mark . create ( doc , Ġ" REMOTE ĠBO OK MARK Ġ 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Bookmark 1 . action Ġ= Ġgoto _ remote ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . add Root Bookmark ( remote Bookmark 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġanother Ġremote Ġboot mark , Ġbut Ġthis Ġtime Ġusing Ġthe Ġlow - level ĠS DF / Cos ĠAPI . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġremote Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremote Bookmark 2 Ġ= ĠBook mark . create ( doc , Ġ" REMOTE ĠBO OK MARK Ġ 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . add Root Bookmark ( remote Bookmark 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgoto R Ġ= Ġremote Bookmark 2 . sdf Obj . put Dict (" A ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoto R . put Name (" S ", Ġ" Go To R ") Ġ// ĠSet Ġaction Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoto R . put Bool (" New Window ", Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġfile Ġspecification ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoto R . put (" F ", Ġfile _ spec ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġjump Ġto Ġthe Ġfirst Ġpage . ĠNote Ġthat Ġpages Ġare Ġindexed Ġfrom Ġ 0 . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdest Ġ= Ġgoto R . put Array (" D ") Ġ// ĠSet Ġthe Ġdestination ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdest . push Back Number ( 9 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdest . push Back Name (" Fit ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . save ( Utils . create External File (" bookmark _ remote . pdf "). absolute Path , ĠS DF Doc . Save Mode . LINEAR IZED , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc . fileName ). name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Done . ĠResult Ġsaved Ġin Ġbookmark _ remote . pdf ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println ( e . stack Trace ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( file Ġin Ġm FileList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ToFile List ( file ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprint Footer ( output Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Output Listener : ĠOutput Listener ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm FileList Ġ= ĠArrayList < String >() ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( PDF Net Exception :: class ) ĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠPrint Indent ( item : ĠBook mark ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġident Ġ= Ġitem . indent Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġident ) Ġm Output Listener !!. print (" Ġ Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠPrints Ġout Ġthe Ġoutline Ġtree Ġto Ġthe Ġstandard Ġoutput ĊĠĠĠĠĠĠĠ Ġ@ Throws ( PDF Net Exception :: class ) ĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠPrint Outline Tree ( item : ĠBook mark ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġitem Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( item . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrint Indent ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. print (( if Ġ( item . isOpen ) Ġ"- Ġ" Ġelse Ġ"+ Ġ") Ġ+ Ġitem . title Ġ+ Ġ" ĠACTION Ġ-> Ġ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPrint ĠAction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġitem . action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action . type Ġ== ĠAction . e _ Go To ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdest Ġ= Ġaction . dest ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dest . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġdest . page ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Go To ĠPage Ġ# " Ġ+ Ġpage . index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Not Ġa Ġ' Go To ' Ġaction ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" NULL ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . has Children ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRe cursively Ġprint Ġchildren Ġsub - trees ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrint Outline Tree ( item . firstChild ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= Ġitem . next ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }