package Ġit . uni bo . tup ro log . ui . gui Ċ Ċ import Ġit . uni bo . tup ro log . solve . Mutable Solver Ċ import Ġit . uni bo . tup ro log . solve . Solution Ċ import Ġit . uni bo . tup ro log . solve . library . Libraries Ċ import Ġit . uni bo . tup ro log . solve . libs . io . I OL ib Ċ import Ġit . uni bo . tup ro log . solve . libs . oop . O OP Lib Ċ import Ġit . uni bo . tup ro log . solve . pro blog . pro blog Classic WithDefault Built ins Ċ import Ġit . uni bo . tup ro log . solve . set Prob abil istic Ċ import Ġjavafx . application . Application Ċ import Ġjavafx . application . Platform Ċ import Ġjavafx . scene . control . ListView Ċ import Ġjavafx . scene . control . Tab Ċ import Ġjavafx . stage . Stage Ċ import Ġkotlin . system . exit Process Ċ Ċ class ĠP LP IDE Application Ġ: ĠApplication () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( PL P IDE Application :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart ( stage : ĠStage ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsolutions ListView Ġ= ĠListView < Solution >() ĊĠĠĠĠĠĠĠ Ġval Ġcustom Solutions Tab Ġ= ĠTab (" Solutions ", Ġsolutions ListView ) ĊĠĠĠĠĠĠĠ Ġcustom Solutions Tab . id Ġ= Ġ" tab Solutions " Ġ// ĠThis Ġsubstit utes Ġthe Ġexisting Ġsolution Ġtab ĊĠĠĠĠĠĠĠ Ġsolutions ListView . set Cell Factory Ġ{ ĠList Cell View Ġ{ ĠPL PS olution View . of ( it ) Ġ} Ġ} ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGraph viz Renderer . initialize () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT u Pro log IDE Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" tu Pro log ĠIDE Ġfor ĠProb abil istic ĠLogic ĠProgramming ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Tabs Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Tab ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Solutions Tab , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġthis . configure Model ( it , Ġsolutions ListView , Ġcustom Solutions Tab ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠError ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġexit Process ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Model ( ĊĠĠĠĠĠĠĠ Ġmodel : ĠT u Pro log IDE Model , ĊĠĠĠĠĠĠĠ ĠlistView : ĠListView < Solution >, ĊĠĠĠĠĠĠĠ Ġlist Tab : ĠTab , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHook Ġevents Ġto Ġthe Ġcustom Ġsolutions Ġtab ĊĠĠĠĠĠĠĠ Ġmodel . on Reset . subscribe Ġ{ ĠlistView . items . clear () Ġ} ĊĠĠĠĠĠĠĠ Ġmodel . on New Query . subscribe Ġ{ ĠlistView . items . clear () Ġ} ĊĠĠĠĠĠĠĠ Ġmodel . on New Solution . subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . run Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistView . items . add ( it . event ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistView . scrollTo ( it . event ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Tab . show Notification () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe ĠSolve Options . prob abil istic Ġflag Ġto Ġtrue ĊĠĠĠĠĠĠĠ Ġmodel . solve Options Ġ= Ġmodel . solve Options . set Prob abil istic ( true ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġsolver Ġwith ĠP LP Ġsupport ĊĠĠĠĠĠĠĠ Ġmodel . customize Solver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMutable Solver . pro blog Classic WithDefault Built ins ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlibraries Ġ= ĠLibraries . of ( O OP Lib , ĠI OL ib ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstd In Ġ= Ġit . standard Input , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstd Out Ġ= Ġit . standard Output , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstd Err Ġ= Ġit . standard Error , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwarnings Ġ= Ġit . warnings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTab . show Notification () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! isSelected Ġ&& Ġ! text . endsWith ("* ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ+= Ġ"*" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ