package Ġmain view Ċ Ċ import Ġdata . Change Version Ċ import Ġde . j up f . static log . Log Ċ import Ġio . reactivex . rx java fx . schedul ers . Java Fx Scheduler Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjavafx . scene . input . Drag Event Ċ import Ġjavafx . stage . FileChooser Ċ import Ġt orn ad of x .* Ċ import Ġjava . io . File Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġon Ġ 2 7 / 0 8 / 2 0 1 7 . Ċ Ġ* Ċ Ġ* ĠShould Ġprovide Ġall Ġlogic Ġneeded Ġfor Ġthe ĠMain View Ċ Ġ* Ċ Ġ* Ġ@ property Ġchange Version Ġis Ġan Ġinjected Ġinterface Ġof Ġthe Ġ[ Change Version ] Ġclass Ġthat Ġchanges Ċ Ġ* Ġthe Ġpre mi ere Ġxml Ġversion Ġnumber Ċ Ġ*/ Ċ class ĠMain ViewController Ċ @ Inject Ġconstructor ( private Ġval Ġchange Version : ĠChange Version ) Ġ: ĠController () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġaccess Ġto Ġthe Ġ[ Main View ] ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġmain View : ĠMain View Ġby Ġinject () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġafter Ġbutton Ġpress Ġor Ġdrag , Ġsub scri bes Ġto Ġthe Ġ[ Change Version . To 1 ] ĠComp letable ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthe ĠComp letable Ġcompletes Ġsuccessfully , Ġwait Ġfor Ġthe Ġanimation Ġto Ġfinish Ġa Ġloop Ġby Ġlistening Ġfor ĊĠĠĠĠ Ġ* Ġan Ġalert Ġcreated Ġby Ġthe Ġanimation , Ġsee Ġindex . html ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfile To Change Ġis Ġthe Ġpre mi ere Ġ[ File ] Ġto Ġchange ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġchange Version ( file To Change : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Loading Screen () ĊĠĠĠĠĠĠĠ Ġchange Version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. To 1 ( file To Change ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . computation ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Java Fx Scheduler . platform ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonComplete Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . info (" Version Ġchanged ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain View . default Engine . setOn Alert Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetDefault Screen () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ Ġthrowable Ġ-> ĠLog . error ( throwable . toString ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġstate Ġof Ġthe Ġscreen Ġto Ġa Ġspinner ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Loading Screen () Ġ= Ġwith ( main View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Engine . load ( index Url ) ĊĠĠĠĠĠĠĠ Ġroot . center Ġ= Ġweb view ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġstate Ġof Ġthe Ġscreen Ġto Ġa Ġthe Ġdefault Ġstate Ġ( drag Ġand Ġdrop Ġor Ġbrowse ) ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsetDefault Screen () Ġ= Ġwith ( main View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġroot . center . opacity Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġroot . center Ġ= Ġmain View . default Center ĊĠĠĠĠĠĠĠ Ġdefault Engine . load ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalls Ġthe Ġlocal Ġ[ change Version ] Ġfunction ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġevent Ġa Ġ[ Drag Event ] Ġthat Ġcontains Ġthe Ġfile Ġpath Ġstring Ġand Ġother Ġinfo , Ġlike Ġthe Ġfile Ġextension ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġon Drag Dropped ( event : ĠDrag Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Accept able File ( event )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Version ( file To Change Ġ= ĠFile ( event . drag board . files . first (). path )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġif Ġthe Ġfile Ġis Ġacceptable Ġinput , Ġat Ġthe Ġmoment Ġthat Ġis Ġonly Ġpre mi ere Ġfiles Ġ(. pr proj ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġevent Ġa Ġ[ Drag Event ] Ġthat Ġcontains Ġthe Ġfile Ġpath Ġstring Ġand Ġother Ġinfo , Ġlike Ġthe Ġfile Ġextension ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġis Accept able File ( event : ĠDrag Event ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . drag board . has Files () Ġ&& Ġevent . drag board . files . first (). name . toLowerCase (). endsWith (". pr proj ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSends Ġthe Ġpre mi ere Ġfile Ġto Ġ[ change Version ] Ġby Ġbutton Ġclick ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġon Button Action () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilepath : ĠList < File >? Ġ= Ġchoose File ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Pick Ġa Ġpre mi ere Ġproject ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilters Ġ= ĠarrayOf ( FileChooser . Extension Filter (" Pre mi ere ĠProjects ", Ġ"*. pr proj ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠFile Chooser Mode . Single ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġfilepath ?. let Ġ{ Ġlist Ġ-> Ġif Ġ( list . isNotEmpty ()) Ġchange Version ( list . first ()) Ġ} ĊĠĠĠ Ġ} Ċ Ċ }