package Ġworks . chi ude su . d jd j . viewer Ċ Ċ import Ġjavafx . f xml . FXML Ċ import Ġjavafx . f xml . FXML Loader Ċ import Ġjavafx . scene . control . TableColumn Ċ import Ġjavafx . scene . control . TableView Ċ import Ġjavafx . scene . control . cell . PropertyValue Factory Ċ import Ġjavafx . scene . layout . Border Pane Ċ import Ġworks . chi ude su . d jd j . Audio Manager Ċ import Ġjava . util . concurrent . Scheduled ExecutorService Ċ import Ġjava . util . concurrent . Executors Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠJava FX ãģ§ Script ä¸Ģ è¦§ ãĤĴ è¡¨ç¤º ãģĻãĤĭ Ċ Ġ* Ġ@ param Ġinterval ĠæĽ´æĸ° éĸĵ éļĶ \[ ms ] Ċ Ġ* Ġ@ param Ġmanager ĠAudio Manager Ċ Ġ* Ċ Ġ* Ġ ãģŁ ãģł . show () ãģĻ ãĤĮãģ° ãĤĪ ãģĦ Ċ Ġ*/ Ċ class ĠScripts Viewer ( private Ġval Ġmanager Ġ: Audio Manager , Ġval Ġinterval Ġ: Long Ġ= Ġ 3 2 ) Ġ: Border Pane () Ġ{ ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġscript Table Ġ: TableView < Audio Script Item > ĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠcolumnIndex Ġ: TableColumn < Audio Script Item , Int > ĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠcolumnName Ġ: TableColumn < Audio Script Item , String > ĊĊĠĠĠ Ġprivate Ġval Ġupdate Timer Ġ: Scheduled ExecutorService Ġ= ĠExec utors . new Single Thread Scheduled Executor () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf xml Loader Ġ= ĠF XML Loader ( this . java Class . class Loader . getResource (" works / chi ude su / d jd j / viewer / Scripts Viewer . f xml ")) ĊĠĠĠĠĠĠĠ Ġf xml Loader . set Root ( this ) ĊĠĠĠĠĠĠĠ Ġf xml Loader . set Controller ( this ) ĊĠĠĠĠĠĠĠ Ġf xml Loader . load < Scripts Viewer >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ FXML ĊĠĠĠ Ġfun Ġinitialize () Ġ{ ĊĠĠĠĠĠĠĠ ĠcolumnIndex . cell Value Factory Ġ= ĠProperty Value Factory < Audio Script Item , Int >(" index ") ĊĠĠĠĠĠĠĠ ĠcolumnIndex . sort Type Ġ= ĠTable Column . Sort Type . ASC ENDING ĊĠĠĠĠĠĠĠ ĠcolumnIndex . is Sortable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠcolumnName . cell Value Factory Ġ= ĠProperty Value Factory < Audio Script Item , String >(" name ") ĊĠĠĠĠĠĠĠ ĠcolumnName . is Sortable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġscript Table . columns . set All ( column Index , ĠcolumnName ) ĊĊĠĠĠĠĠĠĠ Ġupdate Timer . schedule With Fixed Delay ( Viewer Task (), Ġinterval , Ġinterval , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ çĶ» éĿ¢ æĽ´æĸ° åĩ¦çĲĨ ãĤĴ Timer ãģ«ãĤĪ ãģ£ãģ¦ å®ļ æľŁ çļĦãģ« è¡Į ãģĨ Ġ*/ ĊĠĠĠ Ġprivate Ġinner Ġclass ĠViewer Task Ġ: Runnable { ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscript Table . items . set All ( manager . get Scripts (). map Indexed { index , Ġscript Ġ-> Ġ ĠAudio Script Item ( index , Ġscript . java Class . name )}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠAudio Script Item ( var Ġindex Ġ: Int , Ġvar Ġname Ġ: String ) Ċ }