/* Ċ Ġ* Ġ( C ) ĠCopyright Ġ 2 0 1 8 ĠL uk as ĠMor aw iet z Ġ( https :// github . com / F 4 3 nd 1 r ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . fa endir . ac ra . ui . view . bug . tabs Ċ Ċ import Ġcom . fa endir . ac ra . i 1 8 n . Messages Ċ import Ġcom . fa endir . ac ra . model . Bug Ċ import Ġcom . fa endir . ac ra . model . Permission Ċ import Ġcom . fa endir . ac ra . security . Security Utils Ċ import Ġcom . fa endir . ac ra . service . DataService Ċ import Ġcom . fa endir . ac ra . ui . component . Card Ċ import Ġcom . fa endir . ac ra . ui . component . Trans latable Ċ import Ġcom . fa endir . ac ra . ui . ext . Align Ċ import Ġcom . fa endir . ac ra . ui . ext . hon or Wh ites p aces Ċ import Ġcom . fa endir . ac ra . ui . ext . set Align Self Ċ import Ġcom . fa endir . ac ra . ui . view . bug . Bug View Ċ import Ġcom . fa endir . ac ra . util . re trace Ċ import Ġcom . vaadin . flow . component . Has Size Ċ import Ġcom . vaadin . flow . component . Has Style Ċ import Ġcom . vaadin . flow . component . button . Button Variant Ċ import Ġcom . vaadin . flow . component . html . Div Ċ import Ġcom . vaadin . flow . component . html . Label Ċ import Ġcom . vaadin . flow . component . icon . Icon Ċ import Ġcom . vaadin . flow . component . icon . V aad in Icon Ċ import Ġcom . vaadin . flow . component . ordered layout . Flex Layout Ċ import Ġcom . vaadin . flow . router . Route Ċ import Ġcom . vaadin . flow . spring . annotation . Spring Component Ċ import Ġcom . vaadin . flow . spring . annotation . UIS cope Ċ import Ġorg . apache . catalina . security . Security Util Ċ Ċ /** Ċ Ġ* Ġ@ author Ġl uk as Ċ Ġ* Ġ@ since Ġ 1 9 . 1 1 . 1 8 Ċ Ġ*/ Ċ @ UIS cope Ċ @ Spring Component Ċ @ Route ( value Ġ= Ġ" stack trace ", Ġlayout Ġ= ĠBug View :: class ) Ċ class ĠStack trace Tab ( data Service : ĠData Service ) Ġ: ĠBug Tab < Div >( data Service ), ĠHas Size , ĠHas Style Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Width Full () ĊĠĠĠĠĠĠĠ Ġstyle [" overflow "] Ġ= Ġ" auto " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ( bug : ĠBug ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent . removeAll () ĊĠĠĠĠĠĠĠ Ġval Ġstack traces Ġ= Ġdata Service . get Stack traces ( bug ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( stack trace Ġin Ġstack traces ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmapping Ġ= Ġstack trace . version . mappings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrace Ġ= Ġmapping ?. let Ġ{ Ġstack trace . re trace ( it ) Ġ} Ġ?: Ġstack trace . stack trace ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠFlex Layout ( Label ( trace ). hon or Wh ites p aces ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout . set Flex Direction ( Flex Layout . Flex Direction . COLUMN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( stack traces . size Ġ> Ġ 1 Ġ&& ĠSecurity Utils . has Permission ( bug . app , ĠPermission . Level . EDIT )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout . add ( Trans latable . create Button ( Messages . NOT _ SAME _ BUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Service . un merge Stack trace ( stack trace ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit ( bug ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. with Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠIcon ( V aad in Icon . UN LINK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Theme Variants ( Button Variant . L UM O _ PRIMARY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Theme Variants ( Button Variant . L UM O _ TER TI ARY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Align Self ( Align . END ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard Ġ= ĠCard ( layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard . allow Collapse Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard . setHeader ( Trans latable . create Label ( Messages . STACK TRACE _ TITLE , Ġstack trace . version . name , Ġtrace . lines (). first ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . children . find Any (). if Present Ġ{ Ġcard . collapse () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . add ( card ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }