@aj-shadow/actorjs-app 0.0.0-aj-beta.221

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/.gitattributes +29 -0
  2. package/.vscode/launch.json +18 -0
  3. package/CHANGELOG.md +79 -0
  4. package/LICENSE.txt +96 -0
  5. package/README.md +86 -0
  6. package/contributors.txt +3 -0
  7. package/main.js +14 -0
  8. package/npm-post-install.js +618 -0
  9. package/npm-shrinkwrap.json +14 -0
  10. package/package.json +16 -0
  11. package/project/actorjs-project.tree +466 -0
  12. package/project/client/actions/action-actor-editor/action-actor-editor-file.js +101 -0
  13. package/project/client/actions/action-actor-editor/action-actor-editor-folder.js +41 -0
  14. package/project/client/actions/action-actor-editor/action-actor-editor-persistent-data.js +23 -0
  15. package/project/client/actions/action-actor-editor/action-actor-editor-project.js +23 -0
  16. package/project/client/actions/action-actor-editor/data-action-actor-editor-file.js +70 -0
  17. package/project/client/actions/action-actor-editor/data-action-actor-editor-folder.js +26 -0
  18. package/project/client/actions/action-actor-editor/data-action-actor-editor-project.js +27 -0
  19. package/project/client/actions/action-actor-editor/realtime-action-actors-editor.js +14 -0
  20. package/project/client/actions/action-addresses/action-addresses.js +180 -0
  21. package/project/client/actions/action-addresses/data-action-addresses.js +174 -0
  22. package/project/client/actions/action-console/action-console.js +11 -0
  23. package/project/client/actions/action-console/data-action-console.js +12 -0
  24. package/project/client/actions/action-content/action-content.js +101 -0
  25. package/project/client/actions/action-content/data-action-content.js +90 -0
  26. package/project/client/actions/action-function-under-test.js +45 -0
  27. package/project/client/actions/action-load/action-load.js +29 -0
  28. package/project/client/actions/action-load/data-action-load.js +4 -0
  29. package/project/client/actions/action-login/action-login.js +95 -0
  30. package/project/client/actions/action-login/data-action-login.js +83 -0
  31. package/project/client/actions/action-plugins/action-plugins.js +17 -0
  32. package/project/client/actions/action-plugins/data-action-plugins.js +20 -0
  33. package/project/client/actions/action-plus-services/action-plus-services.js +17 -0
  34. package/project/client/actions/action-plus-services/data-action-plus-services.js +20 -0
  35. package/project/client/actions/action-repos/action-repos.js +35 -0
  36. package/project/client/actions/action-repos/data-action-repos.js +42 -0
  37. package/project/client/actions/action-stack-editor/action-stack-editor-file.js +84 -0
  38. package/project/client/actions/action-stack-editor/action-stack-editor-folder.js +41 -0
  39. package/project/client/actions/action-stack-editor/action-stack-editor-persistent-data.js +23 -0
  40. package/project/client/actions/action-stack-editor/action-stack-editor-project.js +29 -0
  41. package/project/client/actions/action-stack-editor/data-action-stack-editor-file.js +49 -0
  42. package/project/client/actions/action-stack-editor/data-action-stack-editor-folder.js +26 -0
  43. package/project/client/actions/action-stack-editor/data-action-stack-editor-project.js +34 -0
  44. package/project/client/actions/action-sut-fut-filter.js +23 -0
  45. package/project/client/actions/action-system-under-test/action-system-under-test.js +164 -0
  46. package/project/client/actions/action-system-under-test/data-action-system-under-test.js +70 -0
  47. package/project/client/actions/action-test-case/action-test-case.js +323 -0
  48. package/project/client/actions/action-test-case/data-action-test-case.js +133 -0
  49. package/project/client/actions/action-test-case/realtime-action-test-case.js +69 -0
  50. package/project/client/actions/action-test-cases.js +49 -0
  51. package/project/client/actions/action-test-data/action-test-data.js +77 -0
  52. package/project/client/actions/action-test-data/data-action-test-data.js +62 -0
  53. package/project/client/actions/action-test-suite/action-test-suite.js +122 -0
  54. package/project/client/actions/action-test-suite/data-action-test-suite.js +76 -0
  55. package/project/client/actions/action-test-suite/realtime-action-test-suite.js +20 -0
  56. package/project/client/actions/action-test-suites.js +47 -0
  57. package/project/client/actor-default.js +18 -0
  58. package/project/client/communication/messages/messages-c-to-c/message-new-actor-index.js +15 -0
  59. package/project/client/communication/messages/messages-c-to-c/message-test-case-clear.js +15 -0
  60. package/project/client/communication/messages/messages-c-to-c/message-test-case-not-started.js +15 -0
  61. package/project/client/communication/messages/messages-c-to-c/message-test-suite-clear.js +15 -0
  62. package/project/client/components/footer/footer.jsx +94 -0
  63. package/project/client/components/header/header-status-login.jsx +78 -0
  64. package/project/client/components/header/header-status-staging-environment.jsx +132 -0
  65. package/project/client/components/header/header.jsx +27 -0
  66. package/project/client/components/header/header_icon.jsx +37 -0
  67. package/project/client/components/header/header_status.jsx +33 -0
  68. package/project/client/components/middle/abbreviation/middle-abbreviation-toolbar.jsx +126 -0
  69. package/project/client/components/middle/abbreviation/middle-abbreviation.jsx +27 -0
  70. package/project/client/components/middle/actor-editor/middle-actor-editor-sidebar.jsx +101 -0
  71. package/project/client/components/middle/actor-editor/middle-actor-editor-toolbar.jsx +612 -0
  72. package/project/client/components/middle/actor-editor/middle-actor-editor-view.jsx +157 -0
  73. package/project/client/components/middle/actor-editor/middle-actor-editor.jsx +38 -0
  74. package/project/client/components/middle/addresses/helpers/stage-filter.js +32 -0
  75. package/project/client/components/middle/addresses/middle-addresses-toolbar.jsx +183 -0
  76. package/project/client/components/middle/addresses/middle-addresses-view-client-address.jsx +67 -0
  77. package/project/client/components/middle/addresses/middle-addresses-view-client-interface.jsx +68 -0
  78. package/project/client/components/middle/addresses/middle-addresses-view-dns.jsx +67 -0
  79. package/project/client/components/middle/addresses/middle-addresses-view-dst.jsx +67 -0
  80. package/project/client/components/middle/addresses/middle-addresses-view-network-interface.jsx +67 -0
  81. package/project/client/components/middle/addresses/middle-addresses-view-ports.jsx +67 -0
  82. package/project/client/components/middle/addresses/middle-addresses-view-server-address.jsx +68 -0
  83. package/project/client/components/middle/addresses/middle-addresses-view-server-interface.jsx +68 -0
  84. package/project/client/components/middle/addresses/middle-addresses-view-src.jsx +67 -0
  85. package/project/client/components/middle/addresses/middle-addresses-view-srv.jsx +67 -0
  86. package/project/client/components/middle/addresses/middle-addresses-view-sut-address.jsx +67 -0
  87. package/project/client/components/middle/addresses/middle-addresses-view-sut-interface.jsx +67 -0
  88. package/project/client/components/middle/addresses/middle-addresses-view.jsx +155 -0
  89. package/project/client/components/middle/addresses/middle-addresses.jsx +39 -0
  90. package/project/client/components/middle/content/middle-content-toolbar.jsx +135 -0
  91. package/project/client/components/middle/content/middle-content-view-audio.jsx +60 -0
  92. package/project/client/components/middle/content/middle-content-view-documents.jsx +60 -0
  93. package/project/client/components/middle/content/middle-content-view-image.jsx +60 -0
  94. package/project/client/components/middle/content/middle-content-view-other.jsx +60 -0
  95. package/project/client/components/middle/content/middle-content-view-text.jsx +60 -0
  96. package/project/client/components/middle/content/middle-content-view-video.jsx +60 -0
  97. package/project/client/components/middle/content/middle-content-view.jsx +111 -0
  98. package/project/client/components/middle/content/middle-content.jsx +39 -0
  99. package/project/client/components/middle/middle-not-found.jsx +24 -0
  100. package/project/client/components/middle/middle-sut-fut-filter.jsx +90 -0
  101. package/project/client/components/middle/middle.jsx +90 -0
  102. package/project/client/components/middle/middle_sidebar.jsx +256 -0
  103. package/project/client/components/middle/plugins/middle-plugins.jsx +64 -0
  104. package/project/client/components/middle/plus-services/middle-plus-services.jsx +63 -0
  105. package/project/client/components/middle/repos/middle-repos-toolbar.jsx +137 -0
  106. package/project/client/components/middle/repos/middle-repos-view.jsx +47 -0
  107. package/project/client/components/middle/repos/middle-repos.jsx +36 -0
  108. package/project/client/components/middle/stack-editor/middle-stack-editor-sidebar.jsx +101 -0
  109. package/project/client/components/middle/stack-editor/middle-stack-editor-toolbar.jsx +525 -0
  110. package/project/client/components/middle/stack-editor/middle-stack-editor-view.jsx +156 -0
  111. package/project/client/components/middle/stack-editor/middle-stack-editor.jsx +38 -0
  112. package/project/client/components/middle/staging/helper.js +58 -0
  113. package/project/client/components/middle/staging/middle-staging-modal-interface-create.jsx +244 -0
  114. package/project/client/components/middle/staging/middle-staging-modal-interface-delete.jsx +186 -0
  115. package/project/client/components/middle/staging/middle-staging-toolbar.jsx +267 -0
  116. package/project/client/components/middle/staging/middle-staging-view.jsx +67 -0
  117. package/project/client/components/middle/staging/middle-staging.jsx +40 -0
  118. package/project/client/components/middle/staging/tabs/middle-staging-tab-logical.jsx +27 -0
  119. package/project/client/components/middle/staging/tabs/middle-staging-tab-report.jsx +62 -0
  120. package/project/client/components/middle/staging/tabs/middle-staging-tab-repos.jsx +96 -0
  121. package/project/client/components/middle/staging/tabs/middle-staging-tab-setup.jsx +73 -0
  122. package/project/client/components/middle/start/middle-start-toolbar.jsx +134 -0
  123. package/project/client/components/middle/start/middle-start-view.jsx +335 -0
  124. package/project/client/components/middle/start/middle-start.jsx +36 -0
  125. package/project/client/components/middle/system-under-test/middle-system-under-test-toolbar.jsx +171 -0
  126. package/project/client/components/middle/system-under-test/middle-system-under-test-view-multi.jsx +119 -0
  127. package/project/client/components/middle/system-under-test/middle-system-under-test-view-single.jsx +85 -0
  128. package/project/client/components/middle/system-under-test/middle-system-under-test.jsx +40 -0
  129. package/project/client/components/middle/system-under-test/tabs/middle-system-under-test-tab-instances.jsx +164 -0
  130. package/project/client/components/middle/system-under-test/tabs/middle-system-under-test-tab-nodes.jsx +160 -0
  131. package/project/client/components/middle/system-under-test/tabs/middle-system-under-test-tab-specification.jsx +463 -0
  132. package/project/client/components/middle/test-cases/general-helpers/actors-sorting.js +52 -0
  133. package/project/client/components/middle/test-cases/middle-test-cases-not-found.jsx +51 -0
  134. package/project/client/components/middle/test-cases/middle-test-cases-toolbar.jsx +804 -0
  135. package/project/client/components/middle/test-cases/middle-test-cases-view-columns.jsx +222 -0
  136. package/project/client/components/middle/test-cases/middle-test-cases-view-fut.jsx +105 -0
  137. package/project/client/components/middle/test-cases/middle-test-cases-view-recent.jsx +74 -0
  138. package/project/client/components/middle/test-cases/middle-test-cases-view-sut.jsx +98 -0
  139. package/project/client/components/middle/test-cases/middle-test-cases-view-tc.jsx +108 -0
  140. package/project/client/components/middle/test-cases/middle-test-cases-view-test-case.jsx +104 -0
  141. package/project/client/components/middle/test-cases/middle-test-cases.jsx +59 -0
  142. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-analyze.jsx +289 -0
  143. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-debug.jsx +699 -0
  144. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-definition.jsx +103 -0
  145. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-execution.jsx +321 -0
  146. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-log.jsx +150 -0
  147. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-sequence-diagram.jsx +160 -0
  148. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-specification.jsx +472 -0
  149. package/project/client/components/middle/test-data/middle-test-data-toolbar.jsx +135 -0
  150. package/project/client/components/middle/test-data/middle-test-data-view-environment.jsx +64 -0
  151. package/project/client/components/middle/test-data/middle-test-data-view-general.jsx +61 -0
  152. package/project/client/components/middle/test-data/middle-test-data-view-output.jsx +60 -0
  153. package/project/client/components/middle/test-data/middle-test-data-view-system.jsx +61 -0
  154. package/project/client/components/middle/test-data/middle-test-data-view.jsx +98 -0
  155. package/project/client/components/middle/test-data/middle-test-data.jsx +39 -0
  156. package/project/client/components/middle/test-suites/middle-test-suites-toolbar.jsx +524 -0
  157. package/project/client/components/middle/test-suites/middle-test-suites-view-columns.jsx +222 -0
  158. package/project/client/components/middle/test-suites/middle-test-suites-view-fut.jsx +105 -0
  159. package/project/client/components/middle/test-suites/middle-test-suites-view-recent.jsx +74 -0
  160. package/project/client/components/middle/test-suites/middle-test-suites-view-sut.jsx +96 -0
  161. package/project/client/components/middle/test-suites/middle-test-suites-view-test-suite.jsx +593 -0
  162. package/project/client/components/middle/test-suites/middle-test-suites-view-ts.jsx +109 -0
  163. package/project/client/components/middle/test-suites/middle-test-suites.jsx +55 -0
  164. package/project/client/components/middle/test-suites/tabs/middle-test-suites-tab-definition.jsx +74 -0
  165. package/project/client/components/middle/test-suites/tabs/middle-test-suites-tab-execution.jsx +544 -0
  166. package/project/client/components/middle/test-suites/tabs/middle-test-suites-tab-log.jsx +118 -0
  167. package/project/client/components/middle/test-suites/tabs/middle-test-suites-tab-sequence-diagram.jsx +155 -0
  168. package/project/client/components/middle/user/middle-user-toolbar.jsx +32 -0
  169. package/project/client/components/middle/user/middle-user-view.jsx +32 -0
  170. package/project/client/components/middle/user/middle-user.jsx +39 -0
  171. package/project/client/components/middle/videos/middle-videos-view.jsx +135 -0
  172. package/project/client/components/middle/videos/middle-videos.jsx +32 -0
  173. package/project/client/css/components/component-video.css +15 -0
  174. package/project/client/css/components/modal-dialog-file.css +4 -0
  175. package/project/client/css/footer/footer-info.css +18 -0
  176. package/project/client/css/footer/footer-logo.css +39 -0
  177. package/project/client/css/from-code-editor/sidebar-dark.css +20 -0
  178. package/project/client/css/from-code-editor/sidebar-light.css +18 -0
  179. package/project/client/css/from-code-editor/tab.css +19 -0
  180. package/project/client/css/from-code-editor/tab_dark.css +9 -0
  181. package/project/client/css/from-code-editor/tab_light.css +9 -0
  182. package/project/client/css/from-code-editor/view-dark.css +11 -0
  183. package/project/client/css/from-code-editor/view-light.css +10 -0
  184. package/project/client/css/header/header-status.css +114 -0
  185. package/project/client/css/header/header.css +16 -0
  186. package/project/client/css/log-inner.css +46 -0
  187. package/project/client/css/main.css +4 -0
  188. package/project/client/css/middle/actor-editor.css +30 -0
  189. package/project/client/css/middle/address.css +57 -0
  190. package/project/client/css/middle/content.css +41 -0
  191. package/project/client/css/middle/login.css +118 -0
  192. package/project/client/css/middle/middle-start.css +5 -0
  193. package/project/client/css/middle/middle.css +13 -0
  194. package/project/client/css/middle/middle_sidebar.css +44 -0
  195. package/project/client/css/middle/middle_view.css +41 -0
  196. package/project/client/css/middle/stack-editor.css +30 -0
  197. package/project/client/css/middle/start/middle_start.css +94 -0
  198. package/project/client/css/middle/systems-under-test/systems-under-test-specification.css +48 -0
  199. package/project/client/css/middle/systems-under-test/systems-under-test.css +49 -0
  200. package/project/client/css/middle/test-case-and-test-suite/analyze.css +5 -0
  201. package/project/client/css/middle/test-case-and-test-suite/debug.css +281 -0
  202. package/project/client/css/middle/test-case-and-test-suite/execution.css +7 -0
  203. package/project/client/css/middle/test-case-and-test-suite/log.css +13 -0
  204. package/project/client/css/middle/test-case-and-test-suite/seq-dia.css +13 -0
  205. package/project/client/css/middle/test-cases/test-cases-analyze.css +9 -0
  206. package/project/client/css/middle/test-cases/test-cases-debug.css +61 -0
  207. package/project/client/css/middle/test-cases/test-cases-execution.css +4 -0
  208. package/project/client/css/middle/test-cases/test-cases-specification.css +82 -0
  209. package/project/client/css/middle/test-cases/test-cases.css +189 -0
  210. package/project/client/css/middle/test-data.css +52 -0
  211. package/project/client/css/middle/test-suites.css +525 -0
  212. package/project/client/css/middle/videos/videos.css +37 -0
  213. package/project/client/css/middle_test_cases_screen.css +8 -0
  214. package/project/client/css/middle_toolbar.css +10 -0
  215. package/project/client/css/repos.css +15 -0
  216. package/project/client/css/same_size_as_parent.css +6 -0
  217. package/project/client/css/test.css +116 -0
  218. package/project/client/html/index.html +61 -0
  219. package/project/client/main.jsx +59 -0
  220. package/project/client/stores/abbreviation-store.js +57 -0
  221. package/project/client/stores/actor-editor-store.js +758 -0
  222. package/project/client/stores/addresses-store.js +419 -0
  223. package/project/client/stores/console-store.js +27 -0
  224. package/project/client/stores/content-store.js +237 -0
  225. package/project/client/stores/documentation-store.js +14 -0
  226. package/project/client/stores/education-store.js +14 -0
  227. package/project/client/stores/filter-store.js +30 -0
  228. package/project/client/stores/function-under-test-store.js +58 -0
  229. package/project/client/stores/load-store.js +92 -0
  230. package/project/client/stores/login-store.js +232 -0
  231. package/project/client/stores/plugins-store.js +255 -0
  232. package/project/client/stores/plus-services-store.js +267 -0
  233. package/project/client/stores/repos-store.js +160 -0
  234. package/project/client/stores/stack-editor-store.js +691 -0
  235. package/project/client/stores/system-under-test-store.js +340 -0
  236. package/project/client/stores/test-case-store.js +1118 -0
  237. package/project/client/stores/test-cases-store.js +106 -0
  238. package/project/client/stores/test-data-store.js +181 -0
  239. package/project/client/stores/test-suite-store.js +438 -0
  240. package/project/client/stores/test-suites-store.js +86 -0
  241. package/project/client/stores/workshop-store.js +15 -0
  242. package/project/server/os/os-hardware.js +83 -0
  243. package/project/server/os/os-networks.js +50 -0
  244. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorBuild.js +185 -0
  245. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileDelete.js +21 -0
  246. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileGet.js +18 -0
  247. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileInlineGet.js +60 -0
  248. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileInlineUpdate.js +69 -0
  249. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileNew.js +396 -0
  250. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileRename.js +28 -0
  251. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileUpdate.js +18 -0
  252. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFolderDelete.js +21 -0
  253. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFolderNew.js +19 -0
  254. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFolderUpdate.js +19 -0
  255. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorProjectGet.js +77 -0
  256. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorProjectToggle.js +18 -0
  257. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorProjectUpdate.js +22 -0
  258. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorStacksGet.js +54 -0
  259. package/project/server/plugin-data/addresses/plugin_data_AddressesClientAddressGet.js +19 -0
  260. package/project/server/plugin-data/addresses/plugin_data_AddressesClientAddressUpdate.js +19 -0
  261. package/project/server/plugin-data/addresses/plugin_data_AddressesClientInterfaceGet.js +19 -0
  262. package/project/server/plugin-data/addresses/plugin_data_AddressesClientInterfaceUpdate.js +19 -0
  263. package/project/server/plugin-data/addresses/plugin_data_AddressesDnsGet.js +20 -0
  264. package/project/server/plugin-data/addresses/plugin_data_AddressesDnsUpdate.js +19 -0
  265. package/project/server/plugin-data/addresses/plugin_data_AddressesDstGet.js +19 -0
  266. package/project/server/plugin-data/addresses/plugin_data_AddressesDstUpdate.js +19 -0
  267. package/project/server/plugin-data/addresses/plugin_data_AddressesNetworkInterfaceGet.js +19 -0
  268. package/project/server/plugin-data/addresses/plugin_data_AddressesNetworkInterfaceUpdate.js +19 -0
  269. package/project/server/plugin-data/addresses/plugin_data_AddressesPortsGet.js +19 -0
  270. package/project/server/plugin-data/addresses/plugin_data_AddressesPortsUpdate.js +19 -0
  271. package/project/server/plugin-data/addresses/plugin_data_AddressesServerAddressGet.js +19 -0
  272. package/project/server/plugin-data/addresses/plugin_data_AddressesServerAddressUpdate.js +19 -0
  273. package/project/server/plugin-data/addresses/plugin_data_AddressesServerInterfaceGet.js +19 -0
  274. package/project/server/plugin-data/addresses/plugin_data_AddressesServerInterfaceUpdate.js +19 -0
  275. package/project/server/plugin-data/addresses/plugin_data_AddressesSrcGet.js +38 -0
  276. package/project/server/plugin-data/addresses/plugin_data_AddressesSrcUpdate.js +19 -0
  277. package/project/server/plugin-data/addresses/plugin_data_AddressesSrvGet.js +19 -0
  278. package/project/server/plugin-data/addresses/plugin_data_AddressesSrvUpdate.js +19 -0
  279. package/project/server/plugin-data/addresses/plugin_data_AddressesSutAddressGet.js +19 -0
  280. package/project/server/plugin-data/addresses/plugin_data_AddressesSutAddressUpdate.js +19 -0
  281. package/project/server/plugin-data/addresses/plugin_data_AddressesSutInterfaceGet.js +19 -0
  282. package/project/server/plugin-data/addresses/plugin_data_AddressesSutInterfaceUpdate.js +19 -0
  283. package/project/server/plugin-data/console/plugin_data_ConsoleClear.js +20 -0
  284. package/project/server/plugin-data/content/plugin_data_ContentAudioGet.js +19 -0
  285. package/project/server/plugin-data/content/plugin_data_ContentAudioUpdate.js +19 -0
  286. package/project/server/plugin-data/content/plugin_data_ContentDocumentsGet.js +19 -0
  287. package/project/server/plugin-data/content/plugin_data_ContentDocumentsUpdate.js +19 -0
  288. package/project/server/plugin-data/content/plugin_data_ContentImageGet.js +19 -0
  289. package/project/server/plugin-data/content/plugin_data_ContentImageUpdate.js +19 -0
  290. package/project/server/plugin-data/content/plugin_data_ContentOtherGet.js +19 -0
  291. package/project/server/plugin-data/content/plugin_data_ContentOtherUpdate.js +19 -0
  292. package/project/server/plugin-data/content/plugin_data_ContentTextGet.js +19 -0
  293. package/project/server/plugin-data/content/plugin_data_ContentTextUpdate.js +19 -0
  294. package/project/server/plugin-data/content/plugin_data_ContentVideoGet.js +19 -0
  295. package/project/server/plugin-data/content/plugin_data_ContentVideoUpdate.js +19 -0
  296. package/project/server/plugin-data/function-under-test/plugin_data_FunctionUnderTestAdd.js +60 -0
  297. package/project/server/plugin-data/function-under-test/plugin_data_FunctionUnderTestDelete.js +20 -0
  298. package/project/server/plugin-data/function-under-test/plugin_data_FunctionUnderTestGet.js +92 -0
  299. package/project/server/plugin-data/login/plugin_data_LoginButtonsAdd.js +18 -0
  300. package/project/server/plugin-data/login/plugin_data_LoginButtonsGet.js +18 -0
  301. package/project/server/plugin-data/login/plugin_data_LoginButtonsUpdate.js +18 -0
  302. package/project/server/plugin-data/login/plugin_data_LoginCreateInterfaces.js +73 -0
  303. package/project/server/plugin-data/login/plugin_data_LoginDataGet.js +88 -0
  304. package/project/server/plugin-data/login/plugin_data_LoginDeleteInterfaces.js +38 -0
  305. package/project/server/plugin-data/login/plugin_data_LoginGet.js +22 -0
  306. package/project/server/plugin-data/login/plugin_data_LoginPing.js +72 -0
  307. package/project/server/plugin-data/login/plugin_data_LoginReposGet.js +18 -0
  308. package/project/server/plugin-data/login/plugin_data_LoginUpdate.js +44 -0
  309. package/project/server/plugin-data/login/plugin_data_LoginWsGet.js +39 -0
  310. package/project/server/plugin-data/plugins/plugin_data_PluginsBundleGet.js +34 -0
  311. package/project/server/plugin-data/plugins/plugin_data_PluginsGet.js +26 -0
  312. package/project/server/plugin-data/plus-services/plugin_data_PlusServicesBundleGet.js +34 -0
  313. package/project/server/plugin-data/plus-services/plugin_data_PlusServicesGet.js +78 -0
  314. package/project/server/plugin-data/repos/plugin_data_ReposAnalyzeLocalReposGet.js +142 -0
  315. package/project/server/plugin-data/repos/plugin_data_ReposClone.js +154 -0
  316. package/project/server/plugin-data/repos/plugin_data_ReposGet.js +18 -0
  317. package/project/server/plugin-data/repos/plugin_data_ReposVerifyGit.js +79 -0
  318. package/project/server/plugin-data/repos/repos.js +94 -0
  319. package/project/server/plugin-data/stack-editor/helpers/template.js +351 -0
  320. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorBuild.js +185 -0
  321. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileDelete.js +21 -0
  322. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileGet.js +18 -0
  323. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileNew.js +24 -0
  324. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileRename.js +27 -0
  325. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileUpdate.js +18 -0
  326. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFolderDelete.js +21 -0
  327. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFolderNew.js +19 -0
  328. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFolderUpdate.js +19 -0
  329. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorProjectGet.js +77 -0
  330. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorProjectToggle.js +18 -0
  331. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorProjectUpdate.js +22 -0
  332. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorWizard.js +43 -0
  333. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestAdd.js +72 -0
  334. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestDelete.js +20 -0
  335. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestGet.js +138 -0
  336. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestInstancesUpdate.js +21 -0
  337. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestNodesUpdate.js +21 -0
  338. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestRepoAdd.js +46 -0
  339. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestRepoGet.js +57 -0
  340. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestSpecificationUpdate.js +21 -0
  341. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestUpdate.js +24 -0
  342. package/project/server/plugin-data/test-case/debug.js +39 -0
  343. package/project/server/plugin-data/test-case/debugger-api.js +398 -0
  344. package/project/server/plugin-data/test-case/debugger.js +129 -0
  345. package/project/server/plugin-data/test-case/plugin_data_TestCaseActorsFileGet.js +26 -0
  346. package/project/server/plugin-data/test-case/plugin_data_TestCaseAdd.js +74 -0
  347. package/project/server/plugin-data/test-case/plugin_data_TestCaseAnalyze.js +451 -0
  348. package/project/server/plugin-data/test-case/plugin_data_TestCaseButtonsAdd.js +19 -0
  349. package/project/server/plugin-data/test-case/plugin_data_TestCaseButtonsGet.js +19 -0
  350. package/project/server/plugin-data/test-case/plugin_data_TestCaseButtonsUpdate.js +19 -0
  351. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugBreakpointClear.js +56 -0
  352. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugBreakpointClearAll.js +23 -0
  353. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugBreakpointSet.js +118 -0
  354. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugBreakpointUpdate.js +84 -0
  355. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugGet.js +40 -0
  356. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugGetMembers.js +40 -0
  357. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugGetProperty.js +47 -0
  358. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugGetSource.js +29 -0
  359. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugLoad.js +35 -0
  360. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugRun.js +52 -0
  361. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugStart.js +217 -0
  362. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugStop.js +23 -0
  363. package/project/server/plugin-data/test-case/plugin_data_TestCaseDelete.js +20 -0
  364. package/project/server/plugin-data/test-case/plugin_data_TestCaseExecutionStart.js +73 -0
  365. package/project/server/plugin-data/test-case/plugin_data_TestCaseGet.js +118 -0
  366. package/project/server/plugin-data/test-case/plugin_data_TestCaseRecentDelete.js +57 -0
  367. package/project/server/plugin-data/test-case/plugin_data_TestCaseRecentGet.js +20 -0
  368. package/project/server/plugin-data/test-case/plugin_data_TestCaseRecentUpdate.js +62 -0
  369. package/project/server/plugin-data/test-case/plugin_data_TestCaseRename.js +43 -0
  370. package/project/server/plugin-data/test-case/plugin_data_TestCaseSpecificationUpdate.js +21 -0
  371. package/project/server/plugin-data/test-case/plugin_data_TestCaseStacksGet.js +54 -0
  372. package/project/server/plugin-data/test-case/plugin_data_TestCaseUpdate.js +42 -0
  373. package/project/server/plugin-data/test-data/plugin_data_TestDataEnvironmentGet.js +72 -0
  374. package/project/server/plugin-data/test-data/plugin_data_TestDataEnvironmentUpdate.js +19 -0
  375. package/project/server/plugin-data/test-data/plugin_data_TestDataGeneralGet.js +19 -0
  376. package/project/server/plugin-data/test-data/plugin_data_TestDataGeneralUpdate.js +19 -0
  377. package/project/server/plugin-data/test-data/plugin_data_TestDataOutputGet.js +19 -0
  378. package/project/server/plugin-data/test-data/plugin_data_TestDataOutputUpdate.js +19 -0
  379. package/project/server/plugin-data/test-data/plugin_data_TestDataSystemGet.js +19 -0
  380. package/project/server/plugin-data/test-data/plugin_data_TestDataSystemUpdate.js +19 -0
  381. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteAdd.js +51 -0
  382. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteButtonsAdd.js +19 -0
  383. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteButtonsGet.js +18 -0
  384. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteButtonsUpdate.js +18 -0
  385. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteDelete.js +20 -0
  386. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteExecutionStart.js +401 -0
  387. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteGet.js +110 -0
  388. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteRecentDelete.js +54 -0
  389. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteRecentGet.js +18 -0
  390. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteRecentUpdate.js +59 -0
  391. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteUpdate.js +42 -0
  392. package/project/server/plugin-service/platform-fs/plugin_service_Platform-Fs.js +65 -0
  393. package/project/server/plugin-service/platform-fs/verify-or-create-files.js +57 -0
  394. package/repos.json +19 -0
  395. package/server-test-case.js +50 -0
  396. package/settings - Copy (2).json +77 -0
  397. package/settings.json +63 -0
  398. package/workspace/Bundle-AppLayer-client.bld +77 -0
  399. package/workspace/Bundle-AppLayer-cs.bld +37 -0
  400. package/workspace/Client-AppLayer-client-jsx.bld +10 -0
  401. package/workspace/Client-AppLayer-client.bld +10 -0
  402. package/workspace/Client-AppLayer-cs.bld +10 -0
  403. package/workspace/Server-AppLayer-cs.bld +12 -0
  404. package/workspace/Server-AppLayer-server.bld +12 -0
  405. package/workspace/actorjs.wrk +336 -0
  406. package/workspace/clean-all.tsk +11 -0
  407. package/workspace/clean-build.tsk +8 -0
  408. package/workspace/clean-compiled.tsk +9 -0
  409. package/workspace/clean-dist.tsk +7 -0
  410. package/workspace/clean-generated.tsk +7 -0
  411. package/workspace/clean-node.tsk +7 -0
  412. package/workspace/clean-temp.tsk +7 -0
  413. package/workspace/client-css-actorjs-bundle.bld +10 -0
  414. package/workspace/list-debug.tsk +4 -0
  415. package/workspace/list-default.tsk +4 -0
  416. package/workspace/list-redebug.tsk +4 -0
  417. package/workspace/list-release.tsk +4 -0
  418. package/workspace/list-rerelease.tsk +4 -0
  419. package/workspace/list-start.tsk +4 -0
  420. package/workspace/server-html-rc.bld +10 -0
  421. package/workspace/server-image-actorjs-rc.bld +9 -0
  422. package/workspace/simple-help.tsk +5 -0
  423. package/workspace/simple-help.txt +39 -0
@@ -0,0 +1,160 @@
1
+
2
+ 'use strict';
3
+
4
+ import TestCaseStore from '../../../../stores/test-case-store';
5
+ import LoginStore from '../../../../stores/login-store';
6
+ import MiddleTestCasesNotFound from '../middle-test-cases-not-found';
7
+ import { ActionTestCaseButtonsUpdate } from '../../../../actions/action-test-case/action-test-case';
8
+ import StyleStore from 'z-abs-complayer-markup-client/client/stores/style-store';
9
+ import Const from 'z-abs-complayer-visualizationsequencediagram-client/client/logic/const';
10
+ import SeqDiaFilter from 'z-abs-complayer-visualizationsequencediagram-client/client/logic/seq-dia-filter';
11
+ import RealtimeZoom from 'z-abs-complayer-bootstrap-client/client/realtime-components/realtime-zoom';
12
+ import RealtimeWidth from 'z-abs-complayer-bootstrap-client/client/realtime-components/realtime-width';
13
+ import SequenceDiagram from 'z-abs-complayer-visualizationsequencediagram-client/client/react-component/sequence-diagram';
14
+ import RealtimePressDownButton from 'z-abs-complayer-bootstrap-client/client/realtime-components/realtime-press-down-button';
15
+ import ActorPhaseConst from 'z-abs-funclayer-engine-cs/clientServer/execution/actor-phase-const';
16
+ import ReactComponentRealtime from 'z-abs-corelayer-client/client/react-component/react-component-realtime';
17
+ import React from 'react';
18
+
19
+
20
+ export default class MiddleTestCasesTabSequenceDiagram extends ReactComponentRealtime {
21
+ constructor(props) {
22
+ super(props, [TestCaseStore, LoginStore, StyleStore]);
23
+ this.refZoomDisplay = React.createRef();
24
+ this.refWidthDisplay = React.createRef();
25
+ this.refSeqDia = React.createRef();
26
+ this.refScrollButton = null;
27
+ this.filter = new SeqDiaFilter();
28
+ this.filter.init(this.state.TestCaseStore.buttons.sequenceDiagram);
29
+ this.cbIsRealtime = () => {
30
+ return this.state.TestCaseStore.execution !== TestCaseStore.EXECUTION_NOT_RUNNING;
31
+ };
32
+ }
33
+
34
+ static SHOW_HIDE = ['Show', 'Hide'];
35
+
36
+ didMount() {
37
+ this.refSeqDia.current.active(this.props.active);
38
+ }
39
+
40
+ shouldUpdate(nextProps, nextState) {
41
+ return !this.shallowCompare(this.props.active, nextProps.active)
42
+ || !this.shallowCompare(this.props.repo, nextProps.repo)
43
+ || !this.shallowCompare(this.props.sut, nextProps.sut)
44
+ || !this.shallowCompare(this.props.fut, nextProps.fut)
45
+ || !this.shallowCompare(this.props.tc, nextProps.tc)
46
+ || !this.shallowCompare(this.state.TestCaseStore.error, nextState.TestCaseStore.error)
47
+ || !this.shallowCompare(this.state.TestCaseStore.testCase, nextState.TestCaseStore.testCase)
48
+ || !this.shallowCompare(this.state.TestCaseStore.buttonsLoaded, nextState.TestCaseStore.buttonsLoaded)
49
+ || !this.shallowCompare(this.state.TestCaseStore.buttons.sequenceDiagram, nextState.TestCaseStore.buttons.sequenceDiagram)
50
+ || !this.shallowCompare(this.state.LoginStore.login.systemUnderTest, nextState.LoginStore.login.systemUnderTest)
51
+ || !this.shallowCompare(this.state.StyleStore.stackStyles, nextState.StyleStore.stackStyles);
52
+ }
53
+
54
+ didUpdate(prevProps, prevState) {
55
+ this.refSeqDia.current.active(this.props.active);
56
+ }
57
+
58
+ realtimeUpdate(nextProps, nextState) {
59
+ this.refSeqDia.current.active(nextProps.active);
60
+ }
61
+
62
+ _fireButtonAction(valueName, value, rt) {
63
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('sequenceDiagram', valueName, value));
64
+ if(this.cbIsRealtime()) {
65
+ this.renderRealtime(() => {
66
+ rt();
67
+ });
68
+ }
69
+ }
70
+
71
+ render() {
72
+ if(this.state.TestCaseStore.error) {
73
+ return (
74
+ <div className="test_cases_tab_view">
75
+ <MiddleTestCasesNotFound code={this.state.TestCaseStore.error.code} error={this.state.TestCaseStore.error} sut={this.props.sut} fut={this.props.fut} tc={this.props.tc} repo={this.props.repo} />
76
+ </div>
77
+ );
78
+ }
79
+ else {
80
+ const stateSequenceDiagram = this.state.TestCaseStore.buttons.sequenceDiagram;
81
+ return (
82
+ <>
83
+ <div className="seq_dia_panel">
84
+ <div className="seq_dia_panel_inner btn-toolbar" role="toolbar" aria-label="...">
85
+ <div className="aj_btn_group" role="group" aria-label="...">
86
+ <RealtimeZoom zoom={stateSequenceDiagram.zoom} colorMark="zoom_events"
87
+ onAction={(zoom) => {
88
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('sequenceDiagram', 'zoom', zoom));
89
+ }}
90
+ />
91
+ </div>
92
+ <div className="aj_btn_group" role="group" aria-label="...">
93
+ <RealtimeWidth width={stateSequenceDiagram.width} colorMark="zoom_events"
94
+ onAction={(width) => {
95
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('sequenceDiagram', 'width', width));
96
+ }}
97
+ />
98
+ </div>
99
+ <div className="aj_btn_group" role="group" aria-label="...">
100
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.scroll} icon={'icon-scroll-auto'} toolTipContent={['On', 'Off']} toolTipHeading="Auto scroll"
101
+ onLoad={(e) => {
102
+ this.refScrollButton = e;
103
+ }}
104
+ onAction={this._fireButtonAction.bind(this, 'scroll')}
105
+ />
106
+ </div>
107
+ <div className="aj_btn_group" role="group" aria-label="...">
108
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.executedStateEvents} icon={'icon-state-event-executed'} toolTipContent="Executed State Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'executedStateEvents')} />
109
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.notExecutedStateEvents} icon={'icon-state-event-not-executed'} toolTipContent="Not Executed State Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'notExecutedStateEvents')} />
110
+ </div>
111
+ <div className="aj_btn_group" role="group" aria-label="...">
112
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.messageDetailEvents} icon={'icon-con-message-events'} colorMark="" toolTipContent="Message Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'messageDetailEvents')} />
113
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.connectionEvents} icon={'icon-con-connection-events'} colorMark="" toolTipContent="Connection Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'connectionEvents')} />
114
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.serverEvents} icon={'icon-con-server-events'} colorMark="" toolTipContent="Server Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'serverEvents')} />
115
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.messageEvents} icon={'icon-con-messages'} colorMark="" toolTipContent="Messages" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'messageEvents')} />
116
+ </div>
117
+ <div className="aj_btn_group" role="group" aria-label="...">
118
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.protocolData} icon={'icon-communication'} colorMark="" toolTipContent="Communication Data" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'protocolData')} />
119
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.protocolAddressNameData} icon={'icon-communication-address'} colorMark="" toolTipContent="Communication Address" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'protocolAddressNameData')} />
120
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.protocolIpData} icon={'icon-communication-ip'} colorMark="" toolTipContent="Communication Ip" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'protocolIpData')} />
121
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.protocolTransportData} icon={'icon-communication-transport'} colorMark="" toolTipContent="Communication Transport" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'protocolTransportData')} />
122
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.protocolInfoData} icon={'icon-communication-info'} colorMark="" toolTipContent="Communication Info" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'protocolInfoData')} />
123
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.protocolInstanceData} icon={'icon-communication-instance'} colorMark="" toolTipContent="Communication Instance" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'protocolInstanceData')} />
124
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.protocolNameData} icon={'icon-communication-stack'} colorMark="" toolTipContent="Communication Stack" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'protocolNameData')} />
125
+ </div>
126
+ <div className="aj_btn_group" role="group" aria-label="...">
127
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.stackEvents} icon={'icon-stack-events'} toolTipContent="Stack Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'stackEvents')} />
128
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.stackInfoEvents} icon={'icon-stack-event-info'} toolTipContent="Stack Info" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'stackInfoEvents')} />
129
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.stackInstanceEvents} icon={'icon-stack-event-instance'} toolTipContent="Stack Instance" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'stackInstanceEvents')} />
130
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.stackProtocolEvents} icon={'icon-stack-event-stack'} toolTipContent="Stack name" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'stackProtocolEvents')} />
131
+ </div>
132
+ <div className="aj_btn_group" role="group" aria-label="...">
133
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.guiEvents} icon={'icon-gui-events'} toolTipContent="GUI Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'guiEvents')} />
134
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.guiObjectEvents} icon={'icon-gui-event-object'} toolTipContent="GUI Object" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'guiObjectEvents')} />
135
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.guiActionEvents} icon={'icon-gui-event-action'} toolTipContent="GUI Actions" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'guiActionEvents')} />
136
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.guiFunctionEvents} icon={'icon-gui-event-function'} toolTipContent="GUI Function" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'guiFunctionEvents')} />
137
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.guiInfoData} icon={'icon-gui-event-info'} toolTipContent="GUI Info" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'guiInfoData')} />
138
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.guiInstanceData} icon={'icon-gui-event-instance'} toolTipContent="GUI Instance" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'guiInstanceData')} />
139
+ <RealtimePressDownButton size="aj_btn_xs" buttonValue={stateSequenceDiagram.guiProtocolData} icon={'icon-gui-event-stack'} toolTipContent="GUI Stack name" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'guiProtocolData')} />
140
+ </div>
141
+ <div className="aj_btn_group" role="group" aria-label="...">
142
+ <RealtimePressDownButton size="aj_btn_xs" name="Data" buttonValue={stateSequenceDiagram.phases} icon={'icon-phase-data'} buttonIndex={ActorPhaseConst.DATA} toolTipContent="Data Phase Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'phases')} />
143
+ <RealtimePressDownButton size="aj_btn_xs" name="Precondition" buttonValue={stateSequenceDiagram.phases} icon={'icon-phase-precondition'} buttonIndex={ActorPhaseConst.PRE} toolTipContent="Precondition Phase Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'phases')} />
144
+ <RealtimePressDownButton size="aj_btn_xs" name="Execution" buttonValue={stateSequenceDiagram.phases} icon={'icon-phase-execution'} buttonIndex={ActorPhaseConst.EXEC} toolTipContent="Execution Phase Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'phases')} />
145
+ <RealtimePressDownButton size="aj_btn_xs" name="Postcondition" buttonValue={stateSequenceDiagram.phases} icon={'icon-phase-postcondition'} buttonIndex={ActorPhaseConst.POST} toolTipContent="Postcondition Phase Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'phases')} />
146
+ <RealtimePressDownButton size="aj_btn_xs" name="None" buttonValue={stateSequenceDiagram.phases} icon={'icon-phase-none'} buttonIndex={ActorPhaseConst.NONE} toolTipContent="None Phase Events" toolTipHeading={MiddleTestCasesTabSequenceDiagram.SHOW_HIDE} onAction={this._fireButtonAction.bind(this, 'phases')} />
147
+ </div>
148
+ </div>
149
+ </div>
150
+ <SequenceDiagram ref={this.refSeqDia} filter={this.filter} name="test-case-seq-dia" clearMsgPrefix="TestCase" store={TestCaseStore} storeName="TestCaseStore" buttonsLoaded={this.state.TestCaseStore.buttonsLoaded} stackStyles={this.state.StyleStore.stackStyles} testCase={this.state.TestCaseStore.testCase} systemUnderTest={this.state.LoginStore.login.systemUnderTest}
151
+ onOnit={() => {}}
152
+ onAutoScroll={(autoScroll) => {
153
+ this.refScrollButton.click();
154
+ }}
155
+ />
156
+ </>
157
+ );
158
+ }
159
+ }
160
+ }
@@ -0,0 +1,472 @@
1
+
2
+ 'use strict';
3
+
4
+ import TestCaseStore from '../../../../stores/test-case-store';
5
+ import TestCaseStores from '../../../../stores/test-cases-store';
6
+ import MiddleTestCasesNotFound from '../middle-test-cases-not-found';
7
+ import { ActionTestCaseSpecificationMarkup, ActionTestCaseSpecificationMarkupChange, ActionTestCaseSpecificationMarkupCancel, ActionTestCaseSpecificationMarkupSave } from '../../../../actions/action-test-case/action-test-case';
8
+ import ComponentMarkedTextarea from 'z-abs-complayer-bootstrap-client/client/marked-textarea';
9
+ import Button from 'z-abs-complayer-bootstrap-client/client/button';
10
+ import ButtonNew from 'z-abs-complayer-bootstrap-client/client/button-new';
11
+ import ScrollData from 'z-abs-complayer-markup-client/client/react-components/helper/scroll-data';
12
+ import ComponentDocument from 'z-abs-complayer-markup-client/client/react-components/markup/component-document';
13
+ import ReactComponentStore from 'z-abs-corelayer-client/client/react-component/react-component-store';
14
+ import React from 'react';
15
+
16
+
17
+ export default class MiddleTestCasesTabSpecification extends ReactComponentStore {
18
+ constructor(props) {
19
+ super(props, [TestCaseStore, TestCaseStores], {
20
+ autoScroll: true,
21
+ breaks: false,
22
+ whiteSpaceClass: 'no_word_wrap',
23
+ documentationOrder: true
24
+ });
25
+ this.boundKeyDown = this._keyDown.bind(this);
26
+ this.boundKeyUp = this._keyUp.bind(this);
27
+ this.ctrlKey = false;
28
+ this.markupDisabledOpen = false;
29
+ this.markupDisabledSave = true;
30
+ this.markupDisabledHelp = false;
31
+ this.markupDisabledCancel = true;
32
+ this.refDocumentDiv = React.createRef();
33
+ this.refDocumentComponentDocument = React.createRef();
34
+ this.refPreviewDiv = React.createRef();
35
+ this.refPreviewComponentDocument = React.createRef();
36
+ this.refMarkupComponentMarkedTextarea = React.createRef();
37
+ this.scrollData = new ScrollData();
38
+ }
39
+
40
+ didMount() {
41
+ //window.addEventListener('keydown', this.boundKeyDown, true);
42
+ //window.addEventListener('keyup', this.boundKeyUp, true);
43
+ }
44
+
45
+ shouldUpdate(nextProps, nextState) {
46
+ return nextProps.active
47
+ && (
48
+ !this.shallowCompare(this.props.active, nextProps.active)
49
+ || !this.shallowCompare(this.props.repo, nextProps.repo)
50
+ || !this.shallowCompare(this.props.sut, nextProps.sut)
51
+ || !this.shallowCompare(this.props.fut, nextProps.fut)
52
+ || !this.shallowCompare(this.props.tc, nextProps.tc)
53
+ || !this.shallowCompare(this.state.breaks, nextState.breaks)
54
+ || !this.shallowCompare(this.state.whiteSpaceClass, nextState.whiteSpaceClass)
55
+ || !this.shallowCompare(this.state.documentationOrder, nextState.documentationOrder)
56
+ || !this.shallowCompare(this.state.TestCasesStore, nextState.TestCasesStore)
57
+ || !this.shallowCompare(this.state.TestCaseStore.error, nextState.TestCaseStore.error)
58
+ || !this.shallowCompare(this.state.TestCaseStore.testCase, nextState.TestCaseStore.testCase)
59
+ || !this.shallowCompare(this.state.TestCaseStore.specification, nextState.TestCaseStore.specification)
60
+ );
61
+ }
62
+
63
+ didUpdate(prevProps, prevState) {
64
+ if(this.state.TestCaseStore.specification.definition) {
65
+ if(!prevState.TestCaseStore.specification.definition || this.state.documentationOrder !== prevState.documentationOrder) {
66
+ const lines = this.state.TestCaseStore.specification.contentLines;
67
+ const lineHeight = this.refMarkupComponentMarkedTextarea.current.refTextArea.current.scrollHeight / lines;
68
+ const visibleLines = this.refMarkupComponentMarkedTextarea.current.refTextArea.current.clientHeight / lineHeight;
69
+ this.scrollData.setLength(Math.floor(lines - visibleLines));
70
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
71
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
72
+ }
73
+ else {
74
+ const lineDelta = this.state.TestCaseStore.specification.contentLines - prevState.TestCaseStore.specification.contentLines;
75
+ if(0 !== lineDelta) {
76
+ this.scrollData.stepLines(lineDelta);
77
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
78
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
79
+ }
80
+ }
81
+ }
82
+ else {
83
+ if(null !== this.refDocumentComponentDocument.current) {
84
+ this.refDocumentComponentDocument.current.scroll(this.scrollData);
85
+ }
86
+ }
87
+ }
88
+
89
+ willUnmount() {
90
+ //window.removeEventListener('keyup', this.boundKeyUp, true);
91
+ //window.removeEventListener('keydown', this.boundKeyDown, true);
92
+ }
93
+
94
+ _keyDown(e) {
95
+ if(e.ctrlKey) {
96
+ this.ctrlKey = true;
97
+ }
98
+ if(e.ctrlKey && 'o' === e.key) {
99
+ if(!this.markupDisabledOpen) {
100
+ e.preventDefault();
101
+ this._markupOpen();
102
+ }
103
+ }
104
+ else if(e.ctrlKey && '?' === e.key) {
105
+ if(!this.markupDisabledHelp) {
106
+ e.preventDefault();
107
+ this._markupHelp();
108
+ }
109
+ }
110
+ else if(e.ctrlKey && e.shiftKey && 'C' === e.key) {
111
+ if(!this.markupDisabledCancel) {
112
+ e.preventDefault();
113
+ this._markupCancel();
114
+ }
115
+ }
116
+ else if(e.ctrlKey && 's' === e.key) {
117
+ if(!this.markupDisabledSave) {
118
+ e.preventDefault();
119
+ this._markupSave();
120
+ }
121
+ }
122
+ }
123
+
124
+ _keyUp(e) {
125
+ if(!e.ctrlKey) {
126
+ this.ctrlKey = false;
127
+ }
128
+ }
129
+
130
+ renderMarkupEditButton() {
131
+ if('tc' === this.state.TestCasesStore.current.view) {
132
+ return (
133
+ <ButtonNew id="test_case_specification_markup_open" icon="icon-markup-open" size="aj_btn_xs" colorMark="markup_color" placement="bottom" heading="Open" content="Markup" disabled={this.state.TestCaseStore.specification.definition}
134
+ onClick={(e) => {
135
+ this.dispatch(TestCaseStore, new ActionTestCaseSpecificationMarkup());
136
+ }}
137
+ />
138
+ );
139
+ }
140
+ }
141
+
142
+ renderMarkupSaveButton() {
143
+ if('tc' === this.state.TestCasesStore.current.view) {
144
+ return (
145
+ <ButtonNew id="test_case_specification_markup_save" icon="icon-markup-save" size="aj_btn_xs" colorMark="markup_color" placement="bottom" heading="Save" content="Markup"disabled={this.state.TestCaseStore.specification.content === this.state.TestCaseStore.testCase.tc.specification}
146
+ onClick={(e) => {
147
+ this.dispatch(TestCaseStore, new ActionTestCaseSpecificationMarkupSave(this.props.repo, this.props.sut, this.props.fut, this.props.tc, this.state.TestCaseStore.specification.content));
148
+ }}
149
+ />
150
+ );
151
+ }
152
+ }
153
+
154
+ renderMarkupCloseButton() {
155
+ if('tc' === this.state.TestCasesStore.current.view) {
156
+ return (
157
+ <ButtonNew id="test_case_specification_markup_close" icon="icon-markup-close" size="aj_btn_xs" colorMark="markup_color" placement="bottom" heading="Cancel" content="Markup" disabled={!this.state.TestCaseStore.specification.definition}
158
+ onClick={(e) => {
159
+ this.dispatch(TestCaseStore, new ActionTestCaseSpecificationMarkupCancel());
160
+ }}
161
+ />
162
+ );
163
+ }
164
+ }
165
+
166
+ renderMarkupHelpButton() {
167
+ return (
168
+ <ButtonNew id="test_case_specification_markup_help" icon="icon-markup-help" size="aj_btn_xs" colorMark="markup_color" placement="bottom" heading="Help" content="Markup" disabled={this.state.TestCaseStore.specification.definition}
169
+ onClick={(e) => {
170
+ }}
171
+ />
172
+ );
173
+ }
174
+
175
+ renderHorizontalOrVerticalButton() {
176
+ let toolTipInstruction;
177
+ let image1Style;
178
+ let image2Style;
179
+ if(this.state.documentationOrder) {
180
+ toolTipInstruction = 'Vertical';
181
+ image1Style = {top:'7px',left:'0px',transform:'scale(0.91, 0.67)'};
182
+ image2Style = {width:'0px',top:'-2px',left:'-11px',transform:'scale(0.91, 0.67)'};
183
+ }
184
+ else {
185
+ toolTipInstruction = 'Horizontal';
186
+ image1Style = {top:'2px',left:'-6px',transform:'scale(0.91, 0.67)'};
187
+ image2Style = {width:'0px',top:'2px',left:'-6px',transform:'scale(0.91, 0.67)'};
188
+ }
189
+ return (
190
+ <ButtonNew id="tc_specification_align" icon="icon-align" size="aj_btn_xs" colorMark="markup_color" active={this.state.documentationOrder} placement="bottom" heading={`${toolTipInstruction}`} content="Document Order" disabled={!this.state.TestCaseStore.specification.definition}
191
+ onClick={(e) => {
192
+ this.updateState({
193
+ documentationOrder: {$set: !this.state.documentationOrder}
194
+ });
195
+ }}
196
+ />
197
+ );
198
+ }
199
+
200
+ renderSpecificationMarkupScrollFirstLine() {
201
+ const disabled = !this.state.autoScroll;
202
+ return (
203
+ <ButtonNew id="tc_specifiction_first_line" colorMark="markup_color" icon="icon-line-first" size="aj_btn_xs" type="transparent" placement="bottom" heading="Goto" content="First line" disabled={disabled} sticky
204
+ onClick={(e) => {
205
+ this.scrollData.setLineFirst();
206
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
207
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
208
+ }}
209
+ />
210
+ );
211
+ }
212
+
213
+ renderSpecificationMarkupScrollPreviousBlock() {
214
+ const disabled = !this.state.autoScroll;
215
+ return (
216
+ <ButtonNew id="tc_specifiction_previous_block" colorMark="markup_color" icon="icon-line-previous-block" size="aj_btn_xs" type="transparent" placement="bottom" heading="Goto" content="Previous block" disabled={disabled} sticky
217
+ onClick={(e) => {
218
+ this.refPreviewComponentDocument.current.calculateObject(this.scrollData, 'previous_block');
219
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
220
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
221
+ }}
222
+ />
223
+ );
224
+ }
225
+
226
+ renderSpecificationMarkupScrollPreviousLine() {
227
+ const disabled = !this.state.autoScroll;
228
+ return (
229
+ <ButtonNew id="tc_specifiction_previous_line" colorMark="markup_color" icon="icon-line-previous-line" size="aj_btn_xs" type="transparent" placement="bottom" heading="Goto" content="Previous line" disabled={disabled} sticky
230
+ onClick={(e) => {
231
+ this.scrollData.decrement();
232
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
233
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
234
+ }}
235
+ />
236
+ );
237
+ }
238
+
239
+ renderSpecificationMarkupScrollNextLine() {
240
+ const disabled = !this.state.autoScroll;
241
+ return (
242
+ <ButtonNew id="tc_specifiction_next_line" colorMark="markup_color" icon="icon-line-next-line" size="aj_btn_xs" type="transparent" placement="bottom" heading="Goto" content="Next line" disabled={disabled} sticky
243
+ onClick={(e) => {
244
+ this.scrollData.increment();
245
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
246
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
247
+ }}
248
+ />
249
+ );
250
+ }
251
+
252
+ renderSpecificationMarkupScrollNextBlock() {
253
+ const disabled = !this.state.autoScroll;
254
+ return (
255
+ <ButtonNew id="tc_specifiction_next_block" colorMark="markup_color" icon="icon-line-next-block" size="aj_btn_xs" type="transparent" placement="bottom" heading="Goto" content="Next block" disabled={disabled} sticky
256
+ onClick={(e) => {
257
+ this.refPreviewComponentDocument.current.calculateObject(this.scrollData, 'next_block');
258
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
259
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
260
+ }}
261
+ />
262
+ );
263
+ }
264
+
265
+ renderSpecificationMarkupScrollEndLine() {
266
+ const disabled = !this.state.autoScroll;
267
+ return (
268
+ <ButtonNew id="tc_specifiction_lase_line" colorMark="markup_color" icon="icon-line-last" size="aj_btn_xs" type="transparent" placement="bottom" heading="Goto" content="Last line" disabled={disabled} sticky
269
+ onClick={(e) => {
270
+ this.scrollData.setLineLast();
271
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
272
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
273
+ }}
274
+ />
275
+ );
276
+ }
277
+
278
+ renderSpecificationMarkup() {
279
+ return (
280
+ <div className={`markup_filter_${this.state.documentationOrder ? 'horizontal' : 'vertical'}_2`}>
281
+ <div className="test_cases_group">
282
+ <div className="markup_heading">
283
+ <p className="test_cases_specification">Specification - Markup</p>
284
+ <p className="markup_checkbox">
285
+ auto-scroll:
286
+ </p>
287
+ <input type="checkbox" id="test_cases_specification_markup_auto-scroll" className="markup_checkbox" aria-label="..." autoComplete="off" checked={this.state.autoScroll}
288
+ onChange={(e) => {
289
+ if(this.state.autoScroll) {
290
+ this.updateState({
291
+ autoScroll: {$set: false}
292
+ });
293
+ }
294
+ else {
295
+ this.updateState({
296
+ autoScroll: {$set: true}
297
+ });
298
+ }
299
+ }}
300
+ />
301
+ <p className="markup_checkbox">
302
+ breaks:
303
+ </p>
304
+ <input type="checkbox" id="test_cases_specification_markup_breaks" className="markup_checkbox" aria-label="..." autoComplete="off" checked={this.state.breaks}
305
+ onChange={(e) => {
306
+ if(this.state.breaks) {
307
+ this.updateState({
308
+ breaks: {$set: false},
309
+ whiteSpaceClass: {$set: 'no_word_wrap'}
310
+ });
311
+ }
312
+ else {
313
+ this.updateState({
314
+ breaks: {$set: true},
315
+ whiteSpaceClass: {$set: 'word_wrap'}
316
+ });
317
+ }
318
+ }}
319
+ />
320
+ <div>
321
+ <div className="aj_btn_group" role="group" aria-label="...">
322
+ {this.renderSpecificationMarkupScrollFirstLine()}
323
+ {this.renderSpecificationMarkupScrollPreviousBlock()}
324
+ {this.renderSpecificationMarkupScrollPreviousLine()}
325
+ {this.renderSpecificationMarkupScrollNextLine()}
326
+ {this.renderSpecificationMarkupScrollNextBlock()}
327
+ {this.renderSpecificationMarkupScrollEndLine()}
328
+ </div>
329
+ </div>
330
+ </div>
331
+ <ComponentMarkedTextarea ref={this.refMarkupComponentMarkedTextarea} id="test_cases_specification_markup_textarea" className={this.state.whiteSpaceClass + " form-control content_definition"} rows="10" value={this.state.TestCaseStore.specification.content}
332
+ onScroll={(e) => {
333
+ const lines = this.state.TestCaseStore.specification.contentLines;
334
+ const scrollLines = (e.target.scrollHeight - e.target.clientHeight) / e.target.scrollHeight * lines;
335
+ const scrollLine = e.target.scrollTop / (e.target.scrollHeight - e.target.clientHeight) * scrollLines;
336
+ const line = Math.floor(scrollLine);
337
+ this.scrollData.setLine(line, scrollLine - line);
338
+ if(this.state.autoScroll) {
339
+ this.refPreviewComponentDocument.current.scroll(this.scrollData);
340
+ }
341
+ }}
342
+ onChange={(value) => {
343
+ this.dispatch(TestCaseStore, new ActionTestCaseSpecificationMarkupChange(value));
344
+ }}
345
+ />
346
+ </div>
347
+ </div>
348
+ );
349
+ }
350
+
351
+ renderSpecificationPreview() {
352
+ const storeState = this.state.TestCaseStore.specification.documentationPreview;
353
+ const lines = this.state.TestCaseStore.specification.contentLines;
354
+ return (
355
+ <div className={`markup_filter_${this.state.documentationOrder ? 'horizontal' : 'vertical'}_2`}>
356
+ <div className="test_cases_group">
357
+ <div className="markup_heading">
358
+ <p className="test_cases_specification">Specification - Preview</p>
359
+ </div>
360
+ <div ref={this.refPreviewDiv} id="test_cases_specification_markup_preview" className="test_cases_specification_preview"
361
+ onScroll={(e) => {
362
+ this.scrollData.setScroll(e.target.scrollTop);
363
+ }}
364
+ >
365
+ <div className="doc_nav_preview_middle">
366
+ <div className="doc_nav_preview_inner"
367
+ onMouseUp={(e) => {
368
+ if(this.ctrlKey) {
369
+ this.scrollData.setScroll(e.target.offsetTop);
370
+ this.refPreviewComponentDocument.current.calculateTop(this.scrollData);
371
+ this.refPreviewComponentDocument.current.scroll( this.scrollData);
372
+ this.refMarkupComponentMarkedTextarea.current.scroll(this.scrollData);
373
+ }
374
+ }}
375
+ >
376
+ <ComponentDocument ref={this.refPreviewComponentDocument} preview lines={lines} document={storeState.document}
377
+ onEditorScroll={(top) => {
378
+ this.refPreviewDiv.current.scrollTop = top;
379
+ }}
380
+ />
381
+ </div>
382
+ </div>
383
+ </div>
384
+ </div>
385
+ </div>
386
+ );
387
+ }
388
+
389
+ renderSpecification() {
390
+ if(this.state.TestCaseStore.specification.definition) {
391
+ return (
392
+ <div className="test_cases_tab_view_inner">
393
+ {this.renderSpecificationMarkup()}
394
+ {this.renderSpecificationPreview()}
395
+ </div>
396
+ );
397
+ }
398
+ else {
399
+ return (
400
+ <div ref={this.refDocumentDiv} className="test_cases_tab_view_inner"
401
+ onScroll={(e) => {
402
+ this.scrollData.setScroll(e.target.scrollTop);
403
+ }}
404
+ >
405
+ <ComponentDocument ref={this.refDocumentComponentDocument} document={this.state.TestCaseStore.specification.document}
406
+ onEditorScroll={(top) => {
407
+ this.refDocumentDiv.current.scrollTop = top;
408
+ }}
409
+ />
410
+ </div>
411
+ );
412
+ }
413
+ }
414
+
415
+ renderDescription() {
416
+ return (
417
+ <div className="test_cases_specification_description">
418
+ <h3 className="test_cases_specification">Test Case:&#160;</h3>
419
+ <h3 className="test_cases_specification_sut">{this.state.TestCaseStore.testCase.name}</h3>
420
+ <p className="test_cases_specification_data_last">Description:&#160;</p>
421
+ <p>{this.state.TestCaseStore.testCase.description}</p>
422
+ <p className="test_cases_specification_data_last">Requirements:&#160;</p>
423
+ <p>RQ_00001,&nbsp;RQ_00002</p>
424
+ </div>
425
+ );
426
+ }
427
+
428
+ renderMarkup() {
429
+ return (
430
+ <div className="test_cases_specification_markup">
431
+ <div className="test_cases_markup_panel">
432
+ <div className="toolbar" role="toolbar" aria-label="...">
433
+ <div className="aj_btn_group" role="group" aria-label="...">
434
+ {this.renderMarkupEditButton()}
435
+ {this.renderMarkupSaveButton()}
436
+ {this.renderMarkupHelpButton()}
437
+ {this.renderMarkupCloseButton()}
438
+ </div>
439
+ <div className="aj_btn_group" role="group" aria-label="...">
440
+ {this.renderHorizontalOrVerticalButton()}
441
+ </div>
442
+ </div>
443
+ </div>
444
+ {this.renderSpecification()}
445
+ </div>
446
+ );
447
+ }
448
+
449
+ render() {
450
+ if(!this.props.active) {
451
+ return null;
452
+ }
453
+ if(this.state.TestCaseStore.error) {
454
+ return (
455
+ <div className="test_cases_tab_view">
456
+ <MiddleTestCasesNotFound code={this.state.TestCaseStore.error.code} error={this.state.TestCaseStore.error} sut={this.props.sut} fut={this.props.fut} tc={this.props.tc} repo={this.props.repo} />
457
+ </div>
458
+ );
459
+ }
460
+ else if(this.state.TestCaseStore.testCase) {
461
+ return (
462
+ <div className="test_cases_tab_view test_cases_tab_view_specification_outer">
463
+ {this.renderDescription()}
464
+ {this.renderMarkup()}
465
+ </div>
466
+ );
467
+ }
468
+ else {
469
+ return null;
470
+ }
471
+ }
472
+ }