package Ġde . tum . www 1 . or ion . ui . assessment Ċ Ċ import Ġcom . intellij . collabor ation . ui . coder e view . diff . Editor Component In lay s Manager Ċ import Ġcom . intellij . diff . util . File Editor Base Ċ import Ġcom . intellij . openapi . components . service Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . editor . Editor Factory Ċ import Ġcom . intellij . openapi . editor . impl . Editor Impl Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġde . tum . www 1 . or ion . exercise . Or ion Assessment Service Ċ import Ġde . tum . www 1 . or ion . util . Or ion Assessment Utils . create Header Ċ import Ġde . tum . www 1 . or ion . util . translate Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JLabel Ċ Ċ /** Ċ Ġ* ĠFile Editor Ġshowing Ġthe Ġcontents Ġof Ġthe Ġgiven Ġeditor Ġwith Ġthe Ġadditional Ġability Ġto Ġshow Ġfeedback Ġcomments Ġand Ġg utter Ġicons Ġto Ġcreate Ġthem Ċ Ġ* Ċ Ġ* Ġ@ property Ġmy Editor Ġcontent Ġto Ġshow , Ġa Ġread - only Ġview Ġof Ġthe Ġstudent Ġsubmission Ġversion Ġof Ġthe Ġfile Ċ Ġ* Ġ@ property Ġrelative Path Ġof Ġthe Ġopened Ġfile , Ġrelative Ġto Ġthe Ġassignment Ġfolder . ĠMat ches Ġthe Ġway ĠArt emis Ġden otes Ġfiles Ġin Ġfeedback ; Ġpassed Ġover Ġto Ġany Ġnewly Ġcreated Ġfeedback Ġcomment Ċ Ġ* Ġ@ property Ġfile Ġwhose Ġstudent Ġsubmission Ġis Ġopened , Ġsee Ġ[ getFile ] Ċ Ġ*/ Ċ class ĠOr ion Assessment Editor ( ĊĠĠĠ Ġprivate Ġvar Ġmy Editor : ĠEditor , ĊĠĠĠ Ġprivate Ġval Ġrelative Path : ĠString , ĊĠĠĠ Ġprivate Ġval Ġfile : ĠVirtual File Ċ ) Ġ: ĠFile Editor Base () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġheader Label : ĠJLabel ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġheader Label Ġ= Ġcreate Header ( translate (" or ion . exercise . assessment Mode Loading "). uppercase ()) ĊĠĠĠĠĠĠĠ Ġmy Editor . header Component Ġ= Ġheader Label ĊĊĠĠĠĠĠĠĠ Ġinitialize Feedback () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Component (): ĠJ Component Ġ= Ġmy Editor . component ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= Ġtranslate (" or ion . exercise . assessment ") ĊĊĠĠĠ Ġoverride Ġfun Ġget Preferred Focused Component (): ĠJ Component ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġneeded Ġto Ġavoid Ġdeprecation Ġwarning ; ĠShould Ġreturn Ġthe Ġfile Ġfor Ġwhich Ġthe Ġprovider Ġwas Ġcalled , Ġnote Ġhowever Ġthis Ġeditor Ġis Ġshowing Ġa Ġdifferent Ġfile ĊĠĠĠ Ġoverride Ġfun ĠgetFile (): ĠVirtual File Ġ= Ġfile ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequests Ġthe Ġ[ Or ion Assessment Service ] Ġfor Ġfeedback Ġcomments Ġfor Ġthe Ġopened Ġfile . ĊĠĠĠĠ Ġ* ĠIf Ġsuccessful , Ġadds Ġthe Ġreturned Ġfeedback Ġcomments Ġas Ġwell Ġas Ġthe Ġg utter Ġicons Ġto Ġcreate Ġnew Ġcomments Ġto Ġthe Ġeditor ĊĠĠĠĠ Ġ* ĠIf Ġnot , Ġdoes Ġnothing . ĠRel ies Ġon Ġthe Ġ[ Or ion Assessment Service ] Ġto Ġbe Ġcalled Ġagain Ġif Ġfeedback Ġbecomes Ġavailable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinitialize Feedback () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġrequest Ġfeedback , Ġif Ġnot Ġyet Ġinitialized , Ġabort ĊĠĠĠĠĠĠĠ Ġval Ġfeedback Ġ= Ġmy Editor . project ?. service < Or ion Assessment Service >() ?. get Feedback For ( relative Path ) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġeditor Impl Ġ= Ġmy Editor Ġas ? ĠEditor Impl Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġ// Ġin lay s Ġmanager Ġthat Ġmanages Ġthe Ġinline Ġcomments ĊĠĠĠĠĠĠĠ Ġval Ġin lay s Manager Ġ= ĠEditor Component In lay s Manager ( editor Impl ) ĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġfeedback ĊĠĠĠĠĠĠĠ Ġfeedback . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInline Assessment Comment ( it , Ġin lay s Manager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġg utter Ġicons ĊĠĠĠĠĠĠĠ ĠOr ion G utter Icon Controller ( relative Path , Ġin lay s Manager ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġremove Ġloading Ġtext ĊĠĠĠĠĠĠĠ Ġheader Label . text Ġ= Ġtranslate (" or ion . exercise . assessment Mode "). uppercase () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . dispose () ĊĠĠĠĠĠĠĠ ĠEditor Factory . getInstance (). release Editor ( my Editor ) ĊĠĠĠ Ġ} Ċ } Ċ