package Ġcom . cent ury link . md w . studio . action Ċ Ċ import Ġcom . cent ury link . md w . model . workflow . Process Ċ import Ġcom . cent ury link . md w . studio . file . Asset Ċ import Ġcom . cent ury link . md w . studio . file . Asset Usage Ċ import Ġcom . cent ury link . md w . studio . file . Icons Ċ import Ġcom . cent ury link . md w . studio . proc . Process Editor Ċ import Ġcom . cent ury link . md w . studio . proj . Project Setup Ċ import Ġcom . intellij . navigation . Item Presentation Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . file Editor . File Editor Ċ import Ġcom . intellij . openapi . file Editor . File Editor Location Ċ import Ġcom . intellij . openapi . file Editor . File Editor Manager Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . ui . Simple Text Attributes Ċ import Ġcom . intellij . us ages .* Ċ import Ġcom . intellij . us ages . impl . rules . Usage Type Ċ import Ġjavax . swing . Icon Ċ Ċ class ĠProcess Usage s Ġ: ĠAn Action () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( event : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocator Ġ= ĠLoc ator ( event ) ĊĠĠĠĠĠĠĠ ĠLoc ator ( event ). project Setup ?. let Ġ{ Ġproject Setup Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocator . asset ?. let Ġ{ Ġasset Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresentation Ġ= ĠUsage View Presentation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Caption Text Ġ= Ġ" Process ĠUs ages " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresentation . tab Name Ġ= Ġtab Caption Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresentation . tab Text Ġ= Ġtab Caption Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresentation . isOpen In New Tab Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresentation . targets Node Text Ġ= Ġ" Process " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocess Ġ= ĠProcess . fromString ( String ( asset . file . contents To ByteArray ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess . name Ġ= Ġasset . name . substring ( 0 , Ġasset . name . indexOf ('. ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess . packageName Ġ= Ġasset . pkg . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess . version Ġ= Ġasset . version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtargets Ġ= ĠarrayOf ( Process Usage Target ( project Setup , Ġprocess )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusage s Ġ= Ġmutable ListOf < Process Usage >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( process Asset Ġin Ġproject Setup . find Assets OfType (" proc ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Ġ= ĠProcess . fromString ( String ( process Asset . file . contents To ByteArray ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent . inv okes Sub process ( process )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusage s . add ( Process Usage ( project Setup , Ġprocess Asset , Ġprocess )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUsage View Manager . getInstance ( project Setup . project ). show Usage s ( targets , Ġusage s . to Typed Array (), Ġpresentation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( event : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLoc ator ( event ). asset ?. let Ġ{ Ġasset Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplicable Ġ= Ġasset . ext Ġ== Ġ" proc " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . presentation . isVisible Ġ= Ġapplicable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . presentation . isEnabled Ġ= Ġapplicable ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠProcess Usage Target ( private Ġval Ġproject Setup : ĠProject Setup , Ġprivate Ġval Ġprocess : ĠProcess ) ĊĠĠĠ Ġ: ĠUsage Target Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠisValid (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis ReadOnly (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Files (): ĠArray < Virtual File >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġproject Setup . get Asset File ( process . qualified Name Ġ+ Ġ". proc " Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( file Ġ== Ġnull ) Ġnull Ġelse ĠarrayOf ( file ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Navigate (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠisValid ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Navigate To Source (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcan Navigate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprocess . name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Presentation (): ĠItem Presentation Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠItem Presentation Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Location String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Icon ( unused : ĠBoolean ): ĠIcon Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIcons . PROCESS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Present able Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnavigate ( request Focus : ĠBoolean ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhighlight Usage s ( file : ĠPsi File , Ġeditor : ĠEditor , Ġclear Highlight s : ĠBoolean ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind Usage s () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind Usage s In Editor ( editor : ĠFile Editor ) Ġ{ ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠProcess Usage ( private Ġval Ġproject Setup : ĠProject Setup , Ġprivate Ġval Ġprocess Asset : ĠAsset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocess : ĠProcess ) Ġ: ĠAsset Usage Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġasset Ġ= Ġprocess Asset ĊĠĠĠ Ġoverride Ġval Ġtarget Name : ĠString Ġ= Ġprocess . name ĊĠĠĠ Ġval Ġproc Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġprocess . name . replace ("\\ r ", Ġ""). replace ('\ n ', Ġ' Ġ') ĊĊĠĠĠ Ġoverride Ġfun ĠisValid (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= ĠProcess . fromString ( String ( process Asset . file . contents To ByteArray ())) ĊĠĠĠĠĠĠĠ Ġreturn Ġprocess Asset . file . isValid Ġ&& Ġparent . inv okes Sub process ( process ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis ReadOnly (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Navigate (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠisValid ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Navigate To Source (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcan Navigate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnavigate ( request Focus : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( ed Ġin ĠFile Editor Manager . getInstance ( project Setup . project ). open File ( process Asset . file , Ġrequest Focus )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ed Ġis ĠProcess Editor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Ġ= ĠProcess . fromString ( String ( process Asset . file . contents To ByteArray ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent . activities Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( activity Ġin Ġparent . activities ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity . inv okes Sub process ( process )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġed . canvas . pre Select ( activity . logical Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Presentation (): ĠUsage Presentation Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠUsage Presentation Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Icon (): ĠIcon Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIcons . IMPL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Plain Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġprocess . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetText (): ĠArray < Text Chunk > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( Text Chunk ( Simple Text Attributes . REG ULAR _ BOLD _ ATTRIBUTES . to Text Attributes (), Ġproc Name , ĠPROCESS _ USAGE _ TYPE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tooltip Text (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Location (): ĠFile Editor Location ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= ĠFile Editor Manager . getInstance ( project Setup . project ). getSelected Editor ( process Asset . file ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( editor Ġis ĠProcess Editor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProcess Editor Location ( editor , Ġprocess . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġselect In Editor () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġnot Ġcalled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhighlight In Editor () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġnot Ġcalled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠProcess Editor Location ( private Ġval Ġprocess Editor : ĠProcess Editor , Ġprivate Ġval Ġname : ĠString ) ĊĠĠĠĠĠĠĠ Ġ: ĠFile Editor Location Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Editor (): ĠFile Editor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġprocess Editor ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠFile Editor Location ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( other Ġis ĠProcess Editor Location ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . substring ( 1 ). toInt () Ġ- Ġother . name . substring ( 1 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠPROCESS _ USAGE _ TYPE Ġ= ĠUsage Type (" Process ") ĊĠĠĠ Ġ} Ċ }