package Ġcom . mad fish . ide . view Ċ Ċ import Ġcom . intellij . ide . Browser Util Ċ import Ġcom . intellij . ide . Ide Tooltip Ċ import Ġcom . intellij . ide . Ide Tooltip Manager Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . ui . Hyper link Label Ċ import Ġcom . intellij . ui . components . panels . Horizontal Layout Ċ import Ġcom . intellij . util . ui . Column Info Ċ import Ġcom . intellij . util . ui . J BU I Ċ import Ġcom . intellij . util . ui . UI Util Ċ import Ġcom . mad fish . ide . model . RH Base Item Ċ import Ġcom . mad fish . ide . model . RH Category Ċ import Ġcom . mad fish . ide . model . R HT op ic Ċ import Ġcom . mad fish . ide . util . RH Util Ċ import Ġjava . awt . Font Ċ import Ġjava . awt . event . MouseEvent Ċ import Ġjava . awt . event . Mouse Motion Adapter Ċ import Ġjavax . swing . Icon Ċ import Ġjavax . swing . JLabel Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . J Table Ċ import Ġjavax . swing . table . TableCell Renderer Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠR og er âĦ ¢ Ċ Ġ*/ Ċ class ĠR HT op ic Window Content ( project : ĠProject ) Ġ: ĠR H Tool Window Content ( project , ĠR H Category . TOPIC ) Ġ{ ĊĊĠĠĠ Ġval Ġhint Column Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun Ġinit Table Style () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Table Style () ĊĠĠĠĠĠĠĠ Ġmy Table . table Header Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġmy Table . add Mouse Motion Listener ( object Ġ: ĠMouse Motion Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Moved ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= Ġe . point ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolumn Ġ= Ġmy Table . column At Point ( point ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( column Ġ!= Ġhint Column ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠJLabel ( RH Util . message (" R HT op ic Table . hint ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIde Tooltip Manager . getInstance (). show ( Ide Tooltip ( my Table , Ġpoint , Ġcomponent ), Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Columns (): ĠArray < Column Info < RH Base Item , Ġ* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumns Ġ= Ġsuper . get Columns (). to Mutable List () ĊĠĠĠĠĠĠĠ Ġcolumns . add ( hint Column , Ġobject Ġ: ĠColumn Info < RH Base Item , ĠIcon >(" extra ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvalue Of ( item : ĠR H Base Item ?): ĠIcon ? Ġ= Ġif Ġ( item Ġis ĠR HT op ic Ġ&& Ġitem . extra . instant View ) ĠR H Icons . PRE VIEW Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Renderer ( item : ĠR H Base Item ?): ĠTable Cell Renderer ? Ġ= ĠR H Icon Cell Renderer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Width ( table : ĠJ Table ?) Ġ= ĠJ BU I . scale ( 3 2 ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġcolumns . to Typed Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Link Content ( parent : ĠJPanel , Ġitem : ĠR H Base Item ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item Ġis ĠR HT op ic ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . news Array . map Ġ{ Ġit . duplicate Id Ġ}. toSet (). forEach Ġ{ Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews Ġ= Ġitem . news Array . filter Ġ{ Ġit . duplicate Id Ġ== Ġid Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( news . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Panel Ġ= ĠJPanel ( Horizontal Layout ( 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= ĠHyper link Label ( news [ 0 ]. title , ĠUI Util . getLabel Foreground (), ĠUI Util . getLabel Background (), ĠUI Util . getLabel Foreground ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . font Ġ= ĠJ BU I . Fonts . small Font () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . add Hyper link Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġnews [ 0 ]. url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! url . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Util . browse ( url . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Panel . add ( label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Panel . background Ġ= Ġbackground ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews . forEach Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsite Label Ġ= ĠHyper link Label ( item . site Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsite Label . add Hyper link Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġitem . url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! url . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Util . browse ( url . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsite Label . font Ġ= ĠJ BU I . Fonts . small Font (). derive Font ( Font . BOLD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Panel . add ( site Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġ!= Ġnews . last ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Panel . add ( JLabel ("/ ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . add ( item Panel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }