package Ġcom . dom ker . lazy linker . widget Ċ Ċ import Ġcom . dom ker . lazy linker . command . Command Ċ import Ġcom . dom ker . lazy linker . data . Link er Ċ import Ġcom . dom ker . lazy linker . data . Link er Page Ċ import Ġcom . dom ker . lazy linker . data . TYPE _ COMMAND Ċ import Ġjava . awt . Flow Layout Ċ import Ġjava . awt . Label Ċ import Ġjavax . swing . JButton Ċ import Ġjavax . swing . J Frame Ċ import Ġjavax . swing . JPanel Ċ Ċ class ĠWidget Creator Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º åĪĨç±» Pane ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Tabs ( linker Pages : ĠList < Link er Page >): ĠMap < String , ĠJPanel > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanels Ġ= Ġmutable Map Of < String , ĠJPanel >() ĊĠĠĠĠĠĠĠ Ġlinker Pages . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanels [ it . page Name ] Ġ= Ġpanel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Page Items ( panel , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġpanels ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç»Ļ å®ļ æķ°æį®çļĦ æııè¿° ï¼Į çĶŁæĪĲ Page éĩĮéĿ¢ æ¯ıä¸ª Item åĪ° JPanel ä¸Ń ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Page Items ( panel : ĠJPanel , Ġlinker Page : ĠLink er Page ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpanel . layout Ġ= ĠFlow Layout () ĊĊĠĠĠĠĠĠĠ Ġlinker Page . link ers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġcreate Item ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Item ( linker : ĠLink er ): ĠJPanel ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( linker . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ COMMAND Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . layout Ġ= ĠFlow Layout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . add ( Label ( linker . content )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbutton Ġ= ĠJButton ( linker . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . addActionListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġframe Ġ= Ġshow Console Frame () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand . invoke ( linker , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframe . append ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . add ( button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpanel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º æİ§åĪ¶ åı° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Console Frame (): ĠConsole Frame Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġframe Ġ= ĠConsole Frame (" Console ") ĊĠĠĠĠĠĠĠ Ġframe . size Ġ= Ġget Frame Size () ĊĠĠĠĠĠĠĠ Ġframe . location Ġ= Ġget Frame Location () ĊĠĠĠĠĠĠĠ Ġframe . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġframe ĊĠĠĠ Ġ} Ċ }