C4_Context.puml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  1. ' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally
  2. !if %variable_exists("RELATIVE_INCLUDE")
  3. !include ./C4.puml
  4. !else
  5. !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4.puml
  6. !endif
  7. ' Scope: A single software system.
  8. ' Primary elements: The software system in scope.
  9. ' Supporting elements: People and software systems directly connected to the software system in scope.
  10. ' Intended audience: Everybody, both technical and non-technical people, inside and outside of the software development team.
  11. ' Colors
  12. ' ##################################
  13. !$PERSON_FONT_COLOR ?= $ELEMENT_FONT_COLOR
  14. !$PERSON_BG_COLOR ?= "#08427B"
  15. !$PERSON_BORDER_COLOR ?= "#073B6F"
  16. !$EXTERNAL_PERSON_FONT_COLOR ?= $ELEMENT_FONT_COLOR
  17. !$EXTERNAL_PERSON_BG_COLOR ?= "#686868"
  18. !$EXTERNAL_PERSON_BORDER_COLOR ?= "#8A8A8A"
  19. !$SYSTEM_FONT_COLOR ?= $ELEMENT_FONT_COLOR
  20. !$SYSTEM_BG_COLOR ?= "#1168BD"
  21. !$SYSTEM_BORDER_COLOR ?= "#3C7FC0"
  22. !$SYSTEM_BOUNDARY_COLOR ?= $BOUNDARY_COLOR
  23. !$SYSTEM_BOUNDARY_BG_COLOR ?= $BOUNDARY_BG_COLOR
  24. !$SYSTEM_BOUNDARY_BORDER_STYLE ?= $BOUNDARY_BORDER_STYLE
  25. !$EXTERNAL_SYSTEM_FONT_COLOR ?= $ELEMENT_FONT_COLOR
  26. !$EXTERNAL_SYSTEM_BG_COLOR ?= "#999999"
  27. !$EXTERNAL_SYSTEM_BORDER_COLOR ?= "#8A8A8A"
  28. !$ENTERPRISE_BOUNDARY_COLOR ?= $BOUNDARY_COLOR
  29. !$ENTERPRISE_BOUNDARY_BG_COLOR ?= $BOUNDARY_BG_COLOR
  30. !$ENTERPRISE_BOUNDARY_BORDER_STYLE ?= $BOUNDARY_BORDER_STYLE
  31. ' Labels
  32. ' ##################################
  33. !$PERSON_LEGEND_TEXT ?= "person"
  34. !$EXTERNAL_PERSON_LEGEND_TEXT ?= "external person"
  35. !$SYSTEM_LEGEND_TEXT ?= "system"
  36. !$SYSTEM_BOUNDARY_TYPE ?= "system"
  37. !$SYSTEM_BOUNDARY_LEGEND_TEXT ?= "system boundary"
  38. !$EXTERNAL_SYSTEM_LEGEND_TEXT ?= "external system"
  39. !$ENTERPRISE_BOUNDARY_TYPE ?= "enterprise"
  40. !$ENTERPRISE_BOUNDARY_LEGEND_TEXT ?= "enterprise boundary"
  41. ' Styling
  42. ' ##################################
  43. UpdateElementStyle("person", $PERSON_BG_COLOR, $PERSON_FONT_COLOR, $PERSON_BORDER_COLOR, $shape=$DEFAULT_SHAPE, $legendText="$PERSON_LEGEND_TEXT")
  44. UpdateElementStyle("external_person", $EXTERNAL_PERSON_BG_COLOR, $EXTERNAL_PERSON_FONT_COLOR, $EXTERNAL_PERSON_BORDER_COLOR, $shape=$DEFAULT_SHAPE, $legendText="$EXTERNAL_PERSON_LEGEND_TEXT")
  45. UpdateElementStyle("system", $SYSTEM_BG_COLOR, $SYSTEM_FONT_COLOR, $SYSTEM_BORDER_COLOR, $shape=$DEFAULT_SHAPE, $legendText="$SYSTEM_LEGEND_TEXT")
  46. UpdateElementStyle("external_system", $EXTERNAL_SYSTEM_BG_COLOR, $EXTERNAL_SYSTEM_FONT_COLOR, $EXTERNAL_SYSTEM_BORDER_COLOR, $shape=$DEFAULT_SHAPE, $legendText="$EXTERNAL_SYSTEM_LEGEND_TEXT")
  47. UpdateBoundaryStyle("system", $bgColor=$SYSTEM_BOUNDARY_BG_COLOR, $fontColor=$SYSTEM_BOUNDARY_COLOR, $borderColor=$SYSTEM_BOUNDARY_COLOR, $type="$SYSTEM_BOUNDARY_TYPE", $shape=$DEFAULT_SHAPE, $legendText="$SYSTEM_BOUNDARY_LEGEND_TEXT")
  48. UpdateBoundaryStyle("enterprise", $bgColor=$ENTERPRISE_BOUNDARY_BG_COLOR, $fontColor=$ENTERPRISE_BOUNDARY_COLOR, $borderColor=$ENTERPRISE_BOUNDARY_COLOR, $type="$ENTERPRISE_BOUNDARY_TYPE", $shape=$DEFAULT_SHAPE, $legendText="$ENTERPRISE_BOUNDARY_LEGEND_TEXT")
  49. ' shortcuts with default colors
  50. !unquoted procedure AddPersonTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="")
  51. $addElementTagInclReuse("person", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness)
  52. !endprocedure
  53. !unquoted procedure AddExternalPersonTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="")
  54. $addElementTagInclReuse("external_person", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness)
  55. !endprocedure
  56. !unquoted procedure AddSystemTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="")
  57. $addElementTagInclReuse("system", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness)
  58. !endprocedure
  59. !unquoted procedure AddExternalSystemTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="")
  60. $addElementTagInclReuse("external_system", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness)
  61. !endprocedure
  62. !unquoted procedure UpdateEnterpriseBoundaryStyle($bgColor=$ENTERPRISE_BOUNDARY_BG_COLOR, $fontColor=$ENTERPRISE_BOUNDARY_COLOR, $borderColor=$ENTERPRISE_BOUNDARY_COLOR, $shadowing="", $shape="", $type="Enterprise", $legendText="", $borderStyle="", $borderThickness="", $sprite="", $legendSprite="")
  63. UpdateBoundaryStyle("enterprise", $bgColor, $fontColor, $borderColor, $shadowing, $shape, $type, $legendText, $borderStyle, $borderThickness, $sprite, $legendSprite)
  64. !endprocedure
  65. !unquoted procedure UpdateSystemBoundaryStyle($bgColor=$SYSTEM_BOUNDARY_BG_COLOR, $fontColor=$SYSTEM_BOUNDARY_COLOR, $borderColor=$SYSTEM_BOUNDARY_COLOR, $shadowing="", $shape="", $type="System", $legendText="", $borderStyle="", $borderThickness="", $sprite="", $legendSprite="")
  66. UpdateBoundaryStyle("system", $bgColor, $fontColor, $borderColor, $shadowing, $shape, $type, $legendText, $borderStyle, $borderThickness, $sprite, $legendSprite)
  67. !endprocedure
  68. ' Sprites
  69. ' ##################################
  70. sprite $person [48x48/16] {
  71. 000000000000000000000000000000000000000000000000
  72. 000000000000000000000000000000000000000000000000
  73. 0000000000000000000049BCCA7200000000000000000000
  74. 0000000000000000006EFFFFFFFFB3000000000000000000
  75. 00000000000000001CFFFFFFFFFFFF700000000000000000
  76. 0000000000000001EFFFFFFFFFFFFFF80000000000000000
  77. 000000000000000CFFFFFFFFFFFFFFFF6000000000000000
  78. 000000000000007FFFFFFFFFFFFFFFFFF100000000000000
  79. 00000000000001FFFFFFFFFFFFFFFFFFF900000000000000
  80. 00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000
  81. 0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000
  82. 0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000
  83. 0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
  84. 0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
  85. 0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000
  86. 0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000
  87. 00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000
  88. 00000000000000EFFFFFFFFFFFFFFFFFF800000000000000
  89. 000000000000007FFFFFFFFFFFFFFFFFF100000000000000
  90. 000000000000000BFFFFFFFFFFFFFFFF5000000000000000
  91. 0000000000000001DFFFFFFFFFFFFFF70000000000000000
  92. 00000000000000000BFFFFFFFFFFFF500000000000000000
  93. 0000000000000000005DFFFFFFFFA1000000000000000000
  94. 0000000000000000000037ABB96100000000000000000000
  95. 000000000000000000000000000000000000000000000000
  96. 000000000000000000000000000000000000000000000000
  97. 000000000000025788300000000005886410000000000000
  98. 000000000007DFFFFFFD9643347BFFFFFFFB400000000000
  99. 0000000004EFFFFFFFFFFFFFFFFFFFFFFFFFFB1000000000
  100. 000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFD200000000
  101. 00000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE10000000
  102. 0000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0000000
  103. 000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000
  104. 000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000000
  105. 000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF200000
  106. 00000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000
  107. 00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000
  108. 00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000
  109. 00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
  110. 00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
  111. 00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
  112. 00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000
  113. 00000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000
  114. 000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000
  115. 0000008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3000000
  116. 000000014555555555555555555555555555555300000000
  117. 000000000000000000000000000000000000000000000000
  118. 000000000000000000000000000000000000000000000000
  119. }
  120. sprite $person2 [48x48/16] {
  121. 0000000000000000000049BCCA7200000000000000000000
  122. 0000000000000000006EFFFFFFFFB3000000000000000000
  123. 00000000000000001CFFFFFFFFFFFF700000000000000000
  124. 0000000000000001EFFFFFFFFFFFFFF80000000000000000
  125. 000000000000000CFFFFFFFFFFFFFFFF6000000000000000
  126. 000000000000007FFFFFFFFFFFFFFFFFF100000000000000
  127. 00000000000001FFFFFFFFFFFFFFFFFFF900000000000000
  128. 00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000
  129. 0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000
  130. 0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000
  131. 0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
  132. 0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
  133. 0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000
  134. 0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000
  135. 00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000
  136. 00000000000000EFFFFFFFFFFFFFFFFFF800000000000000
  137. 000000000000007FFFFFFFFFFFFFFFFFF100000000000000
  138. 000000000000000BFFFFFFFFFFFFFFFF5000000000000000
  139. 0000000000000001DFFFFFFFFFFFFFF70000000000000000
  140. 00000000000000000BFFFFFFFFFFFF500000000000000000
  141. 0000000000000000005DFFFFFFFFA1000000000000000000
  142. 0000000000000000000037ABB96100000000000000000000
  143. 000000000002578888300000000005888864100000000000
  144. 0000000007DFFFFFFFFD9643347BFFFFFFFFFB4000000000
  145. 00000004EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB10000000
  146. 0000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2000000
  147. 000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000
  148. 00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
  149. 0000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50000
  150. 0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0000
  151. 0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2000
  152. 000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
  153. 000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  154. 001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
  155. 001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
  156. 001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
  157. 001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
  158. 000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  159. 000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
  160. 0009FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF2000
  161. 0003FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFD0000
  162. 0000BFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF50000
  163. 00003FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFB00000
  164. 000006FFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFE100000
  165. 0000007FFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFD2000000
  166. 00000004EFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFB10000000
  167. 0000000007DF8FFFFFFFFFFFFFFFFFFFFFF8FB4000000000
  168. 000000000002578888888888888888888864100000000000
  169. }
  170. sprite $robot [48x48/16] {
  171. 000000000000000000000000000000000000000000000000
  172. 000000000000000000000000000000000000000000000000
  173. 000000000000000000000000000000000000000000000000
  174. 000000000000000000000000000000000000000000000000
  175. 000000000000000000000000000000000000000000000000
  176. 000000000000000000000000000000000000000000000000
  177. 000000000000000000000000000000000000000000000000
  178. 000000000000000000000000000000000000000000000000
  179. 000000000000000000000000000000000000000000000000
  180. 000000000000000000000000000000000000000000000000
  181. 000000000005BFFFFFFFFFFFFFFFFFFFFFE9100000000000
  182. 0000000000AFFFFFFFFFFFFFFFFFFFFFFFFFE30000000000
  183. 0000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFE1000000000
  184. 000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000000000
  185. 000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC000000000
  186. 000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000000000
  187. 000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000
  188. 000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000
  189. 000699405FFFFFFC427FFFFFFFFFC427FFFFFFE009982000
  190. 008FFF705FFFFFE10006FFFFFFFE00007FFFFFE00FFFF100
  191. 00CFFF705FFFFFA00001FFFFFFF900002FFFFFE00FFFF500
  192. 00DFFF705FFFFFB00002FFFFFFFA00003FFFFFE00FFFF500
  193. 00DFFF705FFFFFF4000AFFFFFFFF3000BFFFFFE00FFFF500
  194. 00DFFF705FFFFFFFA8DFFFFFFFFFFA8DFFFFFFE00FFFF500
  195. 00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500
  196. 00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500
  197. 00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500
  198. 00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500
  199. 00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500
  200. 00CFFF705FFFFFF87777777777777777CFFFFFE00FFFF500
  201. 008FFF705FFFFFF100000000000000009FFFFFE00FFFF100
  202. 000699405FFFFFF76666666666666666CFFFFFE009982000
  203. 000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000
  204. 000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000
  205. 000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC000000000
  206. 000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFFF7000000000
  207. 0000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFD0000000000
  208. 00000000004CFFFFFFFFFFFFFFFFFFFFFFFF910000000000
  209. 000000000000011111111111111111111110000000000000
  210. 000000000000000000000000000000000000000000000000
  211. 000000000000000000000000000000000000000000000000
  212. 000000000000000000000000000000000000000000000000
  213. 000000000000000000000000000000000000000000000000
  214. 000000000000000000000000000000000000000000000000
  215. 000000000000000000000000000000000000000000000000
  216. 000000000000000000000000000000000000000000000000
  217. 000000000000000000000000000000000000000000000000
  218. 000000000000000000000000000000000000000000000000
  219. }
  220. sprite $robot2 [48x48/16] {
  221. 000000000000000088888888888888880000000000000000
  222. 000000000000000AFFFFFFFFFFFFFFFFA000000000000000
  223. 00000000000000CFFFFFFFFFFFFFFFFFFC00000000000000
  224. 00000000000004EFFFFFFFFFFFFFFFFFFE40000000000000
  225. 0000000000000AFFFFFFFFFFFFFFFFFFFFA0000000000000
  226. 00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000
  227. 00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000
  228. 00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000
  229. 00000000000888FFFFFFFFFFFFFFFFFFFF88800000000000
  230. 00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000
  231. 00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000
  232. 00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000
  233. 00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000
  234. 00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000
  235. 00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000
  236. 00000000000888FFFFFFFFFFFFFFFFFFFF88800000000000
  237. 00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000
  238. 00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000
  239. 00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000
  240. 00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000
  241. 00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000
  242. 00000000000004CFFFFFFFFFFFFFFFFFFC40000000000000
  243. 000000488888848CFFFFFFFFFFFFFFFFC848888884000000
  244. 00000CFFFFFFFFC888888888888888888CFFFFFFFFC00000
  245. 00008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000
  246. 0000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000
  247. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  248. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  249. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  250. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  251. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  252. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  253. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  254. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  255. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  256. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  257. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  258. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  259. 0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
  260. 0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000
  261. 0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000
  262. 0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000
  263. 0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000
  264. 0000CFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFC0000
  265. 00008FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF80000
  266. 00000CFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFC00000
  267. 000000488887578888888888888888888864688884000000
  268. 000000000000000000000000000000000000000000000000
  269. }
  270. ' Layout
  271. ' ##################################
  272. SetDefaultLegendEntries("person\nsystem\nexternal_person\nexternal_system\nenterprise_boundary\nsystem_boundary\nboundary")
  273. !procedure LAYOUT_WITH_LEGEND()
  274. hide stereotype
  275. legend right
  276. |<color:$LEGEND_TITLE_COLOR>**Legend**</color> |
  277. |<$PERSON_BG_COLOR> person |
  278. |<$SYSTEM_BG_COLOR> system|
  279. |<$EXTERNAL_PERSON_BG_COLOR> external person |
  280. |<$EXTERNAL_SYSTEM_BG_COLOR> external system |
  281. endlegend
  282. !endprocedure
  283. !global $defaultPersonSprite = "person"
  284. !$dummy = $restoreEmpty("person", "sprite", $defaultPersonSprite, %true())
  285. UpdateElementStyle("person")
  286. ' workaround of plantuml.jar bug - person overwrites external_person setting
  287. !$dummy = $restoreEmpty("external_person", "sprite", $defaultPersonSprite, %true())
  288. UpdateElementStyle("external_person")
  289. !global $portraitPerson = "false"
  290. !procedure $clearPersonRestore()
  291. !$dummy = $clearRestore("person", "sprite")
  292. !$dummy = $clearRestore("person", "legendSprite")
  293. %set_variable_value("$" + "person" + "ElementTagSprite", "")
  294. UpdateElementStyle("person")
  295. ' workaround of plantuml.jar bug - person overwrites external_person setting
  296. !$dummy = $clearRestore("external_person", "sprite")
  297. !$dummy = $clearRestore("external_person", "legendSprite")
  298. %set_variable_value("$" + "external_person" + "ElementTagSprite", "")
  299. UpdateElementStyle("external_person")
  300. !endprocedure
  301. !procedure HIDE_PERSON_SPRITE()
  302. !$defaultPersonSprite = ""
  303. !$portraitPerson = "false"
  304. $clearPersonRestore()
  305. !endprocedure
  306. !unquoted procedure SHOW_PERSON_SPRITE($sprite="")
  307. !if ($sprite == "")
  308. !$defaultPersonSprite = "person"
  309. !else
  310. !$defaultPersonSprite = $sprite
  311. !endif
  312. !$dummy = $restoreEmpty("person", "sprite", $defaultPersonSprite, %true())
  313. UpdateElementStyle("person")
  314. ' workaround of plantuml.jar bug - person overwrites external_person setting
  315. !$dummy = $restoreEmpty("external_person", "sprite", $defaultPersonSprite, %true())
  316. UpdateElementStyle("external_person")
  317. !$portraitPerson = "false"
  318. !endprocedure
  319. !unquoted procedure SHOW_PERSON_PORTRAIT()
  320. !$defaultPersonSprite = ""
  321. !$portraitPerson = "portrait"
  322. $clearPersonRestore()
  323. !endprocedure
  324. !unquoted procedure SHOW_PERSON_OUTLINE()
  325. !$defaultPersonSprite = ""
  326. !$portraitPerson = "outline"
  327. $clearPersonRestore()
  328. !endprocedure
  329. ' Elements
  330. ' ##################################
  331. !function $getPerson($label, $type, $descr, $sprite)
  332. !if ($sprite == "") && ($defaultPersonSprite != "")
  333. !$sprite = $defaultPersonSprite
  334. !endif
  335. !return $getElementBase($label, $type, $descr, $sprite)
  336. !endfunction
  337. !unquoted procedure Person($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="")
  338. !$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "person")
  339. ' $type reuses $techn definition of $tags
  340. !$type=$toElementArg($type, $tags, "ElementTagTechn", "person")
  341. !if ($portraitPerson == "portrait") && ($sprite == "")
  342. actor "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link)
  343. !elseif ($portraitPerson == "outline") && ($sprite == "")
  344. person "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link)
  345. !else
  346. rectangle "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link)
  347. !endif
  348. !endprocedure
  349. !unquoted procedure Person_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="")
  350. !$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "external_person")
  351. ' $type reuses $techn definition of $tags
  352. !$type=$toElementArg($type, $tags, "ElementTagTechn", "external_person")
  353. !if ($portraitPerson == "portrait") && ($sprite == "")
  354. actor "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link)
  355. !elseif ($portraitPerson == "outline") && ($sprite == "")
  356. person "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link)
  357. !else
  358. rectangle "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link)
  359. !endif
  360. !endprocedure
  361. !unquoted procedure System($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle")
  362. ' $type reuses $techn definition of $tags
  363. $getElementLine($baseShape, "system", $alias, $label, $type, $descr, $sprite, $tags, $link)
  364. !endprocedure
  365. !unquoted procedure SystemDb($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="")
  366. ' $type reuses $techn definition of $tags
  367. $getElementLine("database", "system", $alias, $label, $type, $descr, $sprite, $tags, $link)
  368. !endprocedure
  369. !unquoted procedure SystemQueue($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="")
  370. ' $type reuses $techn definition of $tags
  371. $getElementLine("queue", "system", $alias, $label, $type, $descr, $sprite, $tags, $link)
  372. !endprocedure
  373. !unquoted procedure System_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle")
  374. ' $type reuses $techn definition of $tags
  375. $getElementLine($baseShape , "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link)
  376. !endprocedure
  377. !unquoted procedure SystemDb_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="")
  378. ' $type reuses $techn definition of $tags
  379. $getElementLine("database", "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link)
  380. !endprocedure
  381. !unquoted procedure SystemQueue_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="")
  382. ' $type reuses $techn definition of $tags
  383. $getElementLine("queue", "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link)
  384. !endprocedure
  385. ' Boundaries
  386. ' ##################################
  387. !unquoted procedure Enterprise_Boundary($alias, $label, $tags="", $link="", $descr = "")
  388. !if ($tags != "")
  389. !$allTags = $tags + '+enterprise'
  390. !else
  391. !$allTags = 'enterprise'
  392. !endif
  393. ' $type defined via $tag style
  394. Boundary($alias, $label, "", $allTags, $link, $descr)
  395. !endprocedure
  396. !unquoted procedure System_Boundary($alias, $label, $tags="", $link="", $descr = "")
  397. !if ($tags != "")
  398. !$allTags = $tags + '+system'
  399. !else
  400. !$allTags = 'system'
  401. !endif
  402. ' $type defined via $tag style
  403. Boundary($alias, $label, "", $allTags, $link, $descr)
  404. !endprocedure