jiji 1.2.5

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 (670) hide show
  1. data/ChangeLog +58 -0
  2. data/README +1 -0
  3. data/base/agents/moving_average_agent.rb +78 -0
  4. data/base/shared_lib/moving_average.rb +35 -0
  5. data/base/shared_lib/system/cross.rb +76 -0
  6. data/base/shared_lib/system/position_manager.rb +160 -0
  7. data/base/shared_lib/system/signal.rb +347 -0
  8. data/bin/jiji +5 -0
  9. data/html/css/calendar.css +432 -0
  10. data/html/css/datatable.css +299 -0
  11. data/html/css/default.css +627 -0
  12. data/html/css/dialog.css +77 -0
  13. data/html/css/treeview.css +205 -0
  14. data/html/img/auto_trade_off.gif +0 -0
  15. data/html/img/auto_trade_on.gif +0 -0
  16. data/html/img/back_bottom.gif +0 -0
  17. data/html/img/back_middle.gif +0 -0
  18. data/html/img/back_top.gif +0 -0
  19. data/html/img/bin_closed.png +0 -0
  20. data/html/img/bin_empty.png +0 -0
  21. data/html/img/bt-create-title-1.gif +0 -0
  22. data/html/img/bt-create-title-2.gif +0 -0
  23. data/html/img/bt-create-title-3.gif +0 -0
  24. data/html/img/button_add.gif +0 -0
  25. data/html/img/button_add_gray.gif +0 -0
  26. data/html/img/button_add_over.gif +0 -0
  27. data/html/img/button_add_small.gif +0 -0
  28. data/html/img/button_add_small_gray.gif +0 -0
  29. data/html/img/button_add_small_over.gif +0 -0
  30. data/html/img/button_apply.gif +0 -0
  31. data/html/img/button_apply_gray.gif +0 -0
  32. data/html/img/button_apply_over.gif +0 -0
  33. data/html/img/button_calendar.gif +0 -0
  34. data/html/img/button_calendar_over.gif +0 -0
  35. data/html/img/button_cancel.gif +0 -0
  36. data/html/img/button_cancel.jpg +0 -0
  37. data/html/img/button_cancel_gray.gif +0 -0
  38. data/html/img/button_cancel_over.gif +0 -0
  39. data/html/img/button_cancel_over.jpg +0 -0
  40. data/html/img/button_close.gif +0 -0
  41. data/html/img/button_close_gray.gif +0 -0
  42. data/html/img/button_close_over.gif +0 -0
  43. data/html/img/button_mkcol.gif +0 -0
  44. data/html/img/button_mkcol_gray.gif +0 -0
  45. data/html/img/button_mkcol_over.gif +0 -0
  46. data/html/img/button_no.gif +0 -0
  47. data/html/img/button_no_gray.gif +0 -0
  48. data/html/img/button_no_over.gif +0 -0
  49. data/html/img/button_ok.gif +0 -0
  50. data/html/img/button_ok_gray.gif +0 -0
  51. data/html/img/button_ok_over.gif +0 -0
  52. data/html/img/button_remove.gif +0 -0
  53. data/html/img/button_remove_gray.gif +0 -0
  54. data/html/img/button_remove_over.gif +0 -0
  55. data/html/img/button_remove_small.gif +0 -0
  56. data/html/img/button_remove_small_gray.gif +0 -0
  57. data/html/img/button_remove_small_over.gif +0 -0
  58. data/html/img/button_rename.gif +0 -0
  59. data/html/img/button_rename_gray.gif +0 -0
  60. data/html/img/button_rename_over.gif +0 -0
  61. data/html/img/button_save.gif +0 -0
  62. data/html/img/button_save_gray.gif +0 -0
  63. data/html/img/button_save_over.gif +0 -0
  64. data/html/img/button_start.gif +0 -0
  65. data/html/img/button_start_over.gif +0 -0
  66. data/html/img/button_update.gif +0 -0
  67. data/html/img/button_update_gray.gif +0 -0
  68. data/html/img/button_update_over.gif +0 -0
  69. data/html/img/button_update_s.gif +0 -0
  70. data/html/img/button_update_s_gray.gif +0 -0
  71. data/html/img/button_update_s_over.gif +0 -0
  72. data/html/img/button_yes.gif +0 -0
  73. data/html/img/button_yes_gray.gif +0 -0
  74. data/html/img/button_yes_over.gif +0 -0
  75. data/html/img/circle.gif +0 -0
  76. data/html/img/control_play.png +0 -0
  77. data/html/img/control_play_blue.png +0 -0
  78. data/html/img/delta.gif +0 -0
  79. data/html/img/dialog_info.jpg +0 -0
  80. data/html/img/dialog_input.jpg +0 -0
  81. data/html/img/dialog_warn.jpg +0 -0
  82. data/html/img/dt-arrow-dn.png +0 -0
  83. data/html/img/dt-arrow-up.png +0 -0
  84. data/html/img/folder.png +0 -0
  85. data/html/img/folder_brick.png +0 -0
  86. data/html/img/folder_user.png +0 -0
  87. data/html/img/foot.jpg +0 -0
  88. data/html/img/goto.gif +0 -0
  89. data/html/img/goto_o.gif +0 -0
  90. data/html/img/h3_bt-create_0.gif +0 -0
  91. data/html/img/h3_bt-create_1.gif +0 -0
  92. data/html/img/h3_bt-create_2.gif +0 -0
  93. data/html/img/h3_result_0.gif +0 -0
  94. data/html/img/h3_result_1.gif +0 -0
  95. data/html/img/h3_result_2.gif +0 -0
  96. data/html/img/h3_result_3.gif +0 -0
  97. data/html/img/h3_result_4.gif +0 -0
  98. data/html/img/h3_result_5.gif +0 -0
  99. data/html/img/h3_result_6.gif +0 -0
  100. data/html/img/h3_rt-setting_0.gif +0 -0
  101. data/html/img/h3_rt-setting_1.gif +0 -0
  102. data/html/img/head.jpg +0 -0
  103. data/html/img/line-numbers.png +0 -0
  104. data/html/img/line_white.gif +0 -0
  105. data/html/img/loading.gif +0 -0
  106. data/html/img/page_white_ruby.png +0 -0
  107. data/html/img/panel_100_bottom.gif +0 -0
  108. data/html/img/panel_100_middle.gif +0 -0
  109. data/html/img/panel_100_top.gif +0 -0
  110. data/html/img/panel_140_650_b.gif +0 -0
  111. data/html/img/panel_140_650_m.gif +0 -0
  112. data/html/img/panel_140_650_t.gif +0 -0
  113. data/html/img/panel_140_660_b.gif +0 -0
  114. data/html/img/panel_140_660_m.gif +0 -0
  115. data/html/img/panel_140_660_t.gif +0 -0
  116. data/html/img/panel_140_b.gif +0 -0
  117. data/html/img/panel_140_m.gif +0 -0
  118. data/html/img/panel_140_t.gif +0 -0
  119. data/html/img/panel_260_b.gif +0 -0
  120. data/html/img/panel_260_m.gif +0 -0
  121. data/html/img/panel_260_t.gif +0 -0
  122. data/html/img/panel_300_b.gif +0 -0
  123. data/html/img/panel_300_m.gif +0 -0
  124. data/html/img/panel_300_t.gif +0 -0
  125. data/html/img/panel_320_b.gif +0 -0
  126. data/html/img/panel_320_m.gif +0 -0
  127. data/html/img/panel_320_t.gif +0 -0
  128. data/html/img/panel_360_b.gif +0 -0
  129. data/html/img/panel_360_m.gif +0 -0
  130. data/html/img/panel_360_t.gif +0 -0
  131. data/html/img/panel_380_b.gif +0 -0
  132. data/html/img/panel_380_m.gif +0 -0
  133. data/html/img/panel_380_t.gif +0 -0
  134. data/html/img/panel_500_b.gif +0 -0
  135. data/html/img/panel_500_m.gif +0 -0
  136. data/html/img/panel_500_t.gif +0 -0
  137. data/html/img/panel_620_b.gif +0 -0
  138. data/html/img/panel_620_m.gif +0 -0
  139. data/html/img/panel_620_t.gif +0 -0
  140. data/html/img/panel_780_b.gif +0 -0
  141. data/html/img/panel_780_m.gif +0 -0
  142. data/html/img/panel_780_t.gif +0 -0
  143. data/html/img/problem.gif +0 -0
  144. data/html/img/progressbar.gif +0 -0
  145. data/html/img/result-title-1-1.gif +0 -0
  146. data/html/img/result-title-1-2.gif +0 -0
  147. data/html/img/result-title-2-1.gif +0 -0
  148. data/html/img/result-title-2-2.gif +0 -0
  149. data/html/img/result-title-3-1.gif +0 -0
  150. data/html/img/result-title-4-1.gif +0 -0
  151. data/html/img/rt-setting-title-1.gif +0 -0
  152. data/html/img/rt-setting-title-2.gif +0 -0
  153. data/html/img/s.gif +0 -0
  154. data/html/img/scroll.gif +0 -0
  155. data/html/img/separator.gif +0 -0
  156. data/html/img/sidebar_agent.png +0 -0
  157. data/html/img/sidebar_agent_edit.png +0 -0
  158. data/html/img/sidebar_agent_edit_agent.png +0 -0
  159. data/html/img/sidebar_agent_edit_agent_over.png +0 -0
  160. data/html/img/sidebar_agent_edit_agent_s.png +0 -0
  161. data/html/img/sidebar_agent_edit_over.png +0 -0
  162. data/html/img/sidebar_agent_edit_s.png +0 -0
  163. data/html/img/sidebar_agent_edit_shared_lib.png +0 -0
  164. data/html/img/sidebar_agent_edit_shared_lib_over.png +0 -0
  165. data/html/img/sidebar_agent_edit_shared_lib_s.png +0 -0
  166. data/html/img/sidebar_back.gif +0 -0
  167. data/html/img/sidebar_bt.png +0 -0
  168. data/html/img/sidebar_bt_create.png +0 -0
  169. data/html/img/sidebar_bt_create_over.png +0 -0
  170. data/html/img/sidebar_bt_create_s.png +0 -0
  171. data/html/img/sidebar_bt_result.png +0 -0
  172. data/html/img/sidebar_bt_result_over.png +0 -0
  173. data/html/img/sidebar_bt_result_s.png +0 -0
  174. data/html/img/sidebar_result_rmt.png +0 -0
  175. data/html/img/sidebar_result_rmt_over.png +0 -0
  176. data/html/img/sidebar_result_rmt_s.png +0 -0
  177. data/html/img/sidebar_rt.png +0 -0
  178. data/html/img/sidebar_rt_setting.png +0 -0
  179. data/html/img/sidebar_rt_setting_over.png +0 -0
  180. data/html/img/sidebar_rt_setting_s.png +0 -0
  181. data/html/img/sprite.png +0 -0
  182. data/html/img/submenu_agents.png +0 -0
  183. data/html/img/submenu_agents_over.png +0 -0
  184. data/html/img/submenu_agents_s.png +0 -0
  185. data/html/img/submenu_graph.png +0 -0
  186. data/html/img/submenu_graph_over.png +0 -0
  187. data/html/img/submenu_graph_s.png +0 -0
  188. data/html/img/submenu_info.png +0 -0
  189. data/html/img/submenu_info_over.png +0 -0
  190. data/html/img/submenu_info_s.png +0 -0
  191. data/html/img/submenu_log.png +0 -0
  192. data/html/img/submenu_log_over.png +0 -0
  193. data/html/img/submenu_log_s.png +0 -0
  194. data/html/img/submenu_operation.png +0 -0
  195. data/html/img/submenu_operation_over.png +0 -0
  196. data/html/img/submenu_operation_s.png +0 -0
  197. data/html/img/submenu_trade.png +0 -0
  198. data/html/img/submenu_trade_over.png +0 -0
  199. data/html/img/submenu_trade_s.png +0 -0
  200. data/html/img/td_over.gif +0 -0
  201. data/html/img/td_over_d.gif +0 -0
  202. data/html/img/td_selected.gif +0 -0
  203. data/html/img/thead.gif +0 -0
  204. data/html/img/transparent.gif +0 -0
  205. data/html/img/yui/treeview-sprite.gif +0 -0
  206. data/html/index.html +492 -0
  207. data/html/js/agent-editor/agent-editor-page.js +324 -0
  208. data/html/js/agent-editor/agent-editor.js +363 -0
  209. data/html/js/agent-editor/agent-list-tree.js +251 -0
  210. data/html/js/agent-selector.js +666 -0
  211. data/html/js/app.js +198 -0
  212. data/html/js/bt-create-page.js +205 -0
  213. data/html/js/container-min.js +1 -0
  214. data/html/js/container-utils.js +78 -0
  215. data/html/js/container.js +944 -0
  216. data/html/js/dialog.js +279 -0
  217. data/html/js/edit_area/autocompletion.js +491 -0
  218. data/html/js/edit_area/edit_area.css +546 -0
  219. data/html/js/edit_area/edit_area.js +539 -0
  220. data/html/js/edit_area/edit_area_compressor.php +408 -0
  221. data/html/js/edit_area/edit_area_full.gz +0 -0
  222. data/html/js/edit_area/edit_area_full.js +38 -0
  223. data/html/js/edit_area/edit_area_full_with_plugins.gz +0 -0
  224. data/html/js/edit_area/edit_area_full_with_plugins.js +39 -0
  225. data/html/js/edit_area/edit_area_functions.js +1205 -0
  226. data/html/js/edit_area/edit_area_loader.js +1082 -0
  227. data/html/js/edit_area/elements_functions.js +334 -0
  228. data/html/js/edit_area/highlight.js +391 -0
  229. data/html/js/edit_area/images/autocompletion.gif +0 -0
  230. data/html/js/edit_area/images/close.gif +0 -0
  231. data/html/js/edit_area/images/fullscreen.gif +0 -0
  232. data/html/js/edit_area/images/go_to_line.gif +0 -0
  233. data/html/js/edit_area/images/goto.png +0 -0
  234. data/html/js/edit_area/images/help.gif +0 -0
  235. data/html/js/edit_area/images/help.png +0 -0
  236. data/html/js/edit_area/images/highlight.gif +0 -0
  237. data/html/js/edit_area/images/load.gif +0 -0
  238. data/html/js/edit_area/images/move.gif +0 -0
  239. data/html/js/edit_area/images/newdocument.gif +0 -0
  240. data/html/js/edit_area/images/opacity.png +0 -0
  241. data/html/js/edit_area/images/processing.gif +0 -0
  242. data/html/js/edit_area/images/redo.gif +0 -0
  243. data/html/js/edit_area/images/redo.png +0 -0
  244. data/html/js/edit_area/images/reset_highlight.gif +0 -0
  245. data/html/js/edit_area/images/save.gif +0 -0
  246. data/html/js/edit_area/images/save.png +0 -0
  247. data/html/js/edit_area/images/search.gif +0 -0
  248. data/html/js/edit_area/images/search.png +0 -0
  249. data/html/js/edit_area/images/smooth_selection.gif +0 -0
  250. data/html/js/edit_area/images/spacer.gif +0 -0
  251. data/html/js/edit_area/images/statusbar_resize.gif +0 -0
  252. data/html/js/edit_area/images/undo.gif +0 -0
  253. data/html/js/edit_area/images/undo.png +0 -0
  254. data/html/js/edit_area/images/word_wrap.gif +0 -0
  255. data/html/js/edit_area/keyboard.js +145 -0
  256. data/html/js/edit_area/langs/bg.js +73 -0
  257. data/html/js/edit_area/langs/cs.js +67 -0
  258. data/html/js/edit_area/langs/de.js +67 -0
  259. data/html/js/edit_area/langs/dk.js +67 -0
  260. data/html/js/edit_area/langs/en.js +67 -0
  261. data/html/js/edit_area/langs/eo.js +67 -0
  262. data/html/js/edit_area/langs/es.js +64 -0
  263. data/html/js/edit_area/langs/fi.js +67 -0
  264. data/html/js/edit_area/langs/fr.js +67 -0
  265. data/html/js/edit_area/langs/hr.js +67 -0
  266. data/html/js/edit_area/langs/it.js +67 -0
  267. data/html/js/edit_area/langs/ja.js +67 -0
  268. data/html/js/edit_area/langs/mk.js +67 -0
  269. data/html/js/edit_area/langs/nl.js +67 -0
  270. data/html/js/edit_area/langs/pl.js +67 -0
  271. data/html/js/edit_area/langs/pt.js +67 -0
  272. data/html/js/edit_area/langs/ru.js +67 -0
  273. data/html/js/edit_area/langs/sk.js +67 -0
  274. data/html/js/edit_area/langs/zh.js +67 -0
  275. data/html/js/edit_area/license_apache.txt +7 -0
  276. data/html/js/edit_area/license_bsd.txt +10 -0
  277. data/html/js/edit_area/license_lgpl.txt +458 -0
  278. data/html/js/edit_area/manage_area.js +623 -0
  279. data/html/js/edit_area/plugins/charmap/charmap.js +90 -0
  280. data/html/js/edit_area/plugins/charmap/css/charmap.css +64 -0
  281. data/html/js/edit_area/plugins/charmap/images/charmap.gif +0 -0
  282. data/html/js/edit_area/plugins/charmap/jscripts/map.js +373 -0
  283. data/html/js/edit_area/plugins/charmap/langs/bg.js +12 -0
  284. data/html/js/edit_area/plugins/charmap/langs/cs.js +6 -0
  285. data/html/js/edit_area/plugins/charmap/langs/de.js +6 -0
  286. data/html/js/edit_area/plugins/charmap/langs/dk.js +6 -0
  287. data/html/js/edit_area/plugins/charmap/langs/en.js +6 -0
  288. data/html/js/edit_area/plugins/charmap/langs/eo.js +6 -0
  289. data/html/js/edit_area/plugins/charmap/langs/es.js +6 -0
  290. data/html/js/edit_area/plugins/charmap/langs/fr.js +6 -0
  291. data/html/js/edit_area/plugins/charmap/langs/hr.js +6 -0
  292. data/html/js/edit_area/plugins/charmap/langs/it.js +6 -0
  293. data/html/js/edit_area/plugins/charmap/langs/ja.js +6 -0
  294. data/html/js/edit_area/plugins/charmap/langs/mk.js +6 -0
  295. data/html/js/edit_area/plugins/charmap/langs/nl.js +6 -0
  296. data/html/js/edit_area/plugins/charmap/langs/pl.js +6 -0
  297. data/html/js/edit_area/plugins/charmap/langs/pt.js +6 -0
  298. data/html/js/edit_area/plugins/charmap/langs/ru.js +6 -0
  299. data/html/js/edit_area/plugins/charmap/langs/sk.js +6 -0
  300. data/html/js/edit_area/plugins/charmap/langs/zh.js +6 -0
  301. data/html/js/edit_area/plugins/charmap/popup.html +24 -0
  302. data/html/js/edit_area/plugins/test/css/test.css +3 -0
  303. data/html/js/edit_area/plugins/test/images/Thumbs.db +0 -0
  304. data/html/js/edit_area/plugins/test/images/test.gif +0 -0
  305. data/html/js/edit_area/plugins/test/langs/bg.js +10 -0
  306. data/html/js/edit_area/plugins/test/langs/cs.js +4 -0
  307. data/html/js/edit_area/plugins/test/langs/de.js +4 -0
  308. data/html/js/edit_area/plugins/test/langs/dk.js +4 -0
  309. data/html/js/edit_area/plugins/test/langs/en.js +4 -0
  310. data/html/js/edit_area/plugins/test/langs/eo.js +4 -0
  311. data/html/js/edit_area/plugins/test/langs/es.js +4 -0
  312. data/html/js/edit_area/plugins/test/langs/fr.js +4 -0
  313. data/html/js/edit_area/plugins/test/langs/hr.js +4 -0
  314. data/html/js/edit_area/plugins/test/langs/it.js +4 -0
  315. data/html/js/edit_area/plugins/test/langs/ja.js +4 -0
  316. data/html/js/edit_area/plugins/test/langs/mk.js +4 -0
  317. data/html/js/edit_area/plugins/test/langs/nl.js +4 -0
  318. data/html/js/edit_area/plugins/test/langs/pl.js +4 -0
  319. data/html/js/edit_area/plugins/test/langs/pt.js +4 -0
  320. data/html/js/edit_area/plugins/test/langs/ru.js +4 -0
  321. data/html/js/edit_area/plugins/test/langs/sk.js +4 -0
  322. data/html/js/edit_area/plugins/test/langs/zh.js +4 -0
  323. data/html/js/edit_area/plugins/test/test.js +110 -0
  324. data/html/js/edit_area/plugins/test/test2.js +1 -0
  325. data/html/js/edit_area/reg_syntax/basic.js +69 -0
  326. data/html/js/edit_area/reg_syntax/brainfuck.js +44 -0
  327. data/html/js/edit_area/reg_syntax/c.js +62 -0
  328. data/html/js/edit_area/reg_syntax/coldfusion.js +119 -0
  329. data/html/js/edit_area/reg_syntax/cpp.js +65 -0
  330. data/html/js/edit_area/reg_syntax/css.js +84 -0
  331. data/html/js/edit_area/reg_syntax/html.js +50 -0
  332. data/html/js/edit_area/reg_syntax/java.js +56 -0
  333. data/html/js/edit_area/reg_syntax/js.js +93 -0
  334. data/html/js/edit_area/reg_syntax/pas.js +82 -0
  335. data/html/js/edit_area/reg_syntax/perl.js +88 -0
  336. data/html/js/edit_area/reg_syntax/php.js +156 -0
  337. data/html/js/edit_area/reg_syntax/python.js +144 -0
  338. data/html/js/edit_area/reg_syntax/robotstxt.js +24 -0
  339. data/html/js/edit_area/reg_syntax/ruby.js +67 -0
  340. data/html/js/edit_area/reg_syntax/sql.js +55 -0
  341. data/html/js/edit_area/reg_syntax/tsql.js +87 -0
  342. data/html/js/edit_area/reg_syntax/vb.js +52 -0
  343. data/html/js/edit_area/reg_syntax/xml.js +56 -0
  344. data/html/js/edit_area/reg_syntax.js +166 -0
  345. data/html/js/edit_area/regexp.js +139 -0
  346. data/html/js/edit_area/resize_area.js +78 -0
  347. data/html/js/edit_area/search_replace.js +174 -0
  348. data/html/js/edit_area/template.html +101 -0
  349. data/html/js/json-broker-client.js +67 -0
  350. data/html/js/page-manager.js +93 -0
  351. data/html/js/prototype.js +4184 -0
  352. data/html/js/result-page.js +775 -0
  353. data/html/js/rt-setting-page.js +152 -0
  354. data/html/js/sidebar.js +263 -0
  355. data/html/js/templates.js +386 -0
  356. data/html/js/utils.js +890 -0
  357. data/html/js/uuid.js +103 -0
  358. data/html/js/yui/treeview.js +3671 -0
  359. data/html/swf/chart.swf +0 -0
  360. data/html/test/agent_editor_spec.js +815 -0
  361. data/html/test/index.html +40 -0
  362. data/html/test/jsspec/JSSpec.css +224 -0
  363. data/html/test/jsspec/JSSpec.js +1549 -0
  364. data/html/test/jsspec/diff_match_patch.js +1 -0
  365. data/html/test/utils_spec.js +111 -0
  366. data/lib/jiji/agent/agent.rb +149 -0
  367. data/lib/jiji/agent/agent_manager.rb +138 -0
  368. data/lib/jiji/agent/agent_registry.rb +165 -0
  369. data/lib/jiji/agent/permitter.rb +128 -0
  370. data/lib/jiji/agent/util.rb +16 -0
  371. data/lib/jiji/collector.rb +226 -0
  372. data/lib/jiji/command.rb +204 -0
  373. data/lib/jiji/configuration.rb +86 -0
  374. data/lib/jiji/dao/file_system_dao.rb +158 -0
  375. data/lib/jiji/dao/rate_dao.rb +149 -0
  376. data/lib/jiji/dao/timed_data_dao.rb +336 -0
  377. data/lib/jiji/dao/trade_result_dao.rb +128 -0
  378. data/lib/jiji/error.rb +49 -0
  379. data/lib/jiji/migration/migrator.rb +50 -0
  380. data/lib/jiji/migration/migrator1_0_3.rb +26 -0
  381. data/lib/jiji/migration/migrator1_1_0.rb +46 -0
  382. data/lib/jiji/migration/migrator1_2_0.rb +67 -0
  383. data/lib/jiji/models.rb +223 -0
  384. data/lib/jiji/observer.rb +105 -0
  385. data/lib/jiji/operator.rb +396 -0
  386. data/lib/jiji/output.rb +221 -0
  387. data/lib/jiji/output_manager.rb +84 -0
  388. data/lib/jiji/plugin/embedded/click_securities_demo_plugin.rb +141 -0
  389. data/lib/jiji/plugin/embedded/single_click_client.rb +116 -0
  390. data/lib/jiji/plugin/plugin_loader.rb +53 -0
  391. data/lib/jiji/plugin/securities_plugin.rb +134 -0
  392. data/lib/jiji/process.rb +234 -0
  393. data/lib/jiji/process_manager.rb +290 -0
  394. data/lib/jiji/registry.rb +349 -0
  395. data/lib/jiji/server.rb +127 -0
  396. data/lib/jiji/service/agent_service.rb +230 -0
  397. data/lib/jiji/service/hello_service.rb +10 -0
  398. data/lib/jiji/service/output_service.rb +82 -0
  399. data/lib/jiji/service/process_service.rb +76 -0
  400. data/lib/jiji/service/rate_service.rb +38 -0
  401. data/lib/jiji/service/system_service.rb +14 -0
  402. data/lib/jiji/service/trade_result_service.rb +31 -0
  403. data/lib/jiji/util/backtester.rb +116 -0
  404. data/lib/jiji/util/block_to_session.rb +70 -0
  405. data/lib/jiji/util/cache.rb +79 -0
  406. data/lib/jiji/util/csv_append_support.rb +15 -0
  407. data/lib/jiji/util/file_lock.rb +86 -0
  408. data/lib/jiji/util/fix_yaml_bug.rb +11 -0
  409. data/lib/jiji/util/include_proxy.rb +17 -0
  410. data/lib/jiji/util/iterator.rb +70 -0
  411. data/lib/jiji/util/json_broker.rb +55 -0
  412. data/lib/jiji/util/json_rpc_requestor.rb +30 -0
  413. data/lib/jiji/util/rate_data_importer.rb +219 -0
  414. data/lib/jiji/util/synchronize_interceptor.rb +41 -0
  415. data/lib/jiji/util/thread_use_generator.rb +52 -0
  416. data/lib/jiji/util/util.rb +112 -0
  417. data/lib/jiji_plugin.rb +6 -0
  418. data/swf/build.xml +23 -0
  419. data/swf/chart/FxChart-config.xml +9 -0
  420. data/swf/chart/FxChart.mxml +17 -0
  421. data/swf/chart/fx/chart/Chart.as +173 -0
  422. data/swf/chart/fx/chart/ctrl/AutoUpdate.as +96 -0
  423. data/swf/chart/fx/chart/ctrl/Controller.as +270 -0
  424. data/swf/chart/fx/chart/ctrl/Event.as +75 -0
  425. data/swf/chart/fx/chart/model/Model.as +228 -0
  426. data/swf/chart/fx/chart/model/TimedData.as +40 -0
  427. data/swf/chart/fx/chart/ui/AbstractChartUI.as +59 -0
  428. data/swf/chart/fx/chart/ui/AbstractDrawChartUI.as +63 -0
  429. data/swf/chart/fx/chart/ui/Constants.as +233 -0
  430. data/swf/chart/fx/chart/ui/InformationWindow.as +228 -0
  431. data/swf/chart/fx/chart/ui/LayerManager.as +95 -0
  432. data/swf/chart/fx/chart/ui/Loading.as +32 -0
  433. data/swf/chart/fx/chart/ui/Pointer.as +61 -0
  434. data/swf/chart/fx/chart/ui/RangeInfoWindow.as +84 -0
  435. data/swf/chart/fx/chart/ui/RenderingContext.as +54 -0
  436. data/swf/chart/fx/chart/ui/ScaleSelector.as +84 -0
  437. data/swf/chart/fx/chart/ui/Scroll.as +241 -0
  438. data/swf/chart/fx/chart/ui/ScrollBar.as +378 -0
  439. data/swf/chart/fx/chart/ui/Stage.as +97 -0
  440. data/swf/chart/fx/chart/ui/TradeDetailWindow.as +147 -0
  441. data/swf/chart/fx/chart/ui/TradeResult.as +330 -0
  442. data/swf/chart/fx/chart/ui/Window.as +96 -0
  443. data/swf/chart/fx/chart/ui/candle/Axis.as +112 -0
  444. data/swf/chart/fx/chart/ui/candle/Candle.as +79 -0
  445. data/swf/chart/fx/chart/ui/candle/CandleChart.as +81 -0
  446. data/swf/chart/fx/chart/ui/graph/Graph.as +200 -0
  447. data/swf/chart/fx/chart/ui/graph/GraphManager.as +192 -0
  448. data/swf/chart/fx/chart/ui/resource/buy.gif +0 -0
  449. data/swf/chart/fx/chart/ui/resource/cursor_hand.gif +0 -0
  450. data/swf/chart/fx/chart/ui/resource/diff_label.gif +0 -0
  451. data/swf/chart/fx/chart/ui/resource/down.gif +0 -0
  452. data/swf/chart/fx/chart/ui/resource/down_buy.gif +0 -0
  453. data/swf/chart/fx/chart/ui/resource/down_buy_1.gif +0 -0
  454. data/swf/chart/fx/chart/ui/resource/down_buy_2.gif +0 -0
  455. data/swf/chart/fx/chart/ui/resource/down_buy_3.gif +0 -0
  456. data/swf/chart/fx/chart/ui/resource/down_sell.gif +0 -0
  457. data/swf/chart/fx/chart/ui/resource/down_sell_1.gif +0 -0
  458. data/swf/chart/fx/chart/ui/resource/down_sell_2.gif +0 -0
  459. data/swf/chart/fx/chart/ui/resource/down_sell_3.gif +0 -0
  460. data/swf/chart/fx/chart/ui/resource/draw_buy.gif +0 -0
  461. data/swf/chart/fx/chart/ui/resource/draw_sell.gif +0 -0
  462. data/swf/chart/fx/chart/ui/resource/end_label.gif +0 -0
  463. data/swf/chart/fx/chart/ui/resource/fixed.gif +0 -0
  464. data/swf/chart/fx/chart/ui/resource/loading.gif +0 -0
  465. data/swf/chart/fx/chart/ui/resource/max_label.gif +0 -0
  466. data/swf/chart/fx/chart/ui/resource/min_label.gif +0 -0
  467. data/swf/chart/fx/chart/ui/resource/scroll_bar.gif +0 -0
  468. data/swf/chart/fx/chart/ui/resource/scroll_bar_a.gif +0 -0
  469. data/swf/chart/fx/chart/ui/resource/scroll_bar_handle.gif +0 -0
  470. data/swf/chart/fx/chart/ui/resource/scroll_bar_handle_a.gif +0 -0
  471. data/swf/chart/fx/chart/ui/resource/scroll_bar_handle_o.gif +0 -0
  472. data/swf/chart/fx/chart/ui/resource/scroll_bar_left.gif +0 -0
  473. data/swf/chart/fx/chart/ui/resource/scroll_bar_left_a.gif +0 -0
  474. data/swf/chart/fx/chart/ui/resource/scroll_bar_left_o.gif +0 -0
  475. data/swf/chart/fx/chart/ui/resource/scroll_bar_o.gif +0 -0
  476. data/swf/chart/fx/chart/ui/resource/scroll_bar_right.gif +0 -0
  477. data/swf/chart/fx/chart/ui/resource/scroll_bar_right_a.gif +0 -0
  478. data/swf/chart/fx/chart/ui/resource/scroll_bar_right_o.gif +0 -0
  479. data/swf/chart/fx/chart/ui/resource/scroll_handle.gif +0 -0
  480. data/swf/chart/fx/chart/ui/resource/scroll_info_handle.gif +0 -0
  481. data/swf/chart/fx/chart/ui/resource/scroll_left_button.gif +0 -0
  482. data/swf/chart/fx/chart/ui/resource/scroll_left_button_d.gif +0 -0
  483. data/swf/chart/fx/chart/ui/resource/scroll_left_button_down.gif +0 -0
  484. data/swf/chart/fx/chart/ui/resource/scroll_left_button_g.gif +0 -0
  485. data/swf/chart/fx/chart/ui/resource/scroll_left_button_o.gif +0 -0
  486. data/swf/chart/fx/chart/ui/resource/scroll_left_button_up.gif +0 -0
  487. data/swf/chart/fx/chart/ui/resource/scroll_outer.gif +0 -0
  488. data/swf/chart/fx/chart/ui/resource/scroll_outer_left.gif +0 -0
  489. data/swf/chart/fx/chart/ui/resource/scroll_outer_right.gif +0 -0
  490. data/swf/chart/fx/chart/ui/resource/scroll_right_button.gif +0 -0
  491. data/swf/chart/fx/chart/ui/resource/scroll_right_button_d.gif +0 -0
  492. data/swf/chart/fx/chart/ui/resource/scroll_right_button_down.gif +0 -0
  493. data/swf/chart/fx/chart/ui/resource/scroll_right_button_g.gif +0 -0
  494. data/swf/chart/fx/chart/ui/resource/scroll_right_button_o.gif +0 -0
  495. data/swf/chart/fx/chart/ui/resource/scroll_right_button_up.gif +0 -0
  496. data/swf/chart/fx/chart/ui/resource/scroll_slider_left.gif +0 -0
  497. data/swf/chart/fx/chart/ui/resource/scroll_slider_right.gif +0 -0
  498. data/swf/chart/fx/chart/ui/resource/sell.gif +0 -0
  499. data/swf/chart/fx/chart/ui/resource/start_label.gif +0 -0
  500. data/swf/chart/fx/chart/ui/resource/stripe.gif +0 -0
  501. data/swf/chart/fx/chart/ui/resource/stripe_b.gif +0 -0
  502. data/swf/chart/fx/chart/ui/resource/stripe_r.gif +0 -0
  503. data/swf/chart/fx/chart/ui/resource/unfixed.gif +0 -0
  504. data/swf/chart/fx/chart/ui/resource/up.gif +0 -0
  505. data/swf/chart/fx/chart/ui/resource/up_buy.gif +0 -0
  506. data/swf/chart/fx/chart/ui/resource/up_buy_1.gif +0 -0
  507. data/swf/chart/fx/chart/ui/resource/up_buy_2.gif +0 -0
  508. data/swf/chart/fx/chart/ui/resource/up_buy_3.gif +0 -0
  509. data/swf/chart/fx/chart/ui/resource/up_sell.gif +0 -0
  510. data/swf/chart/fx/chart/ui/resource/up_sell_1.gif +0 -0
  511. data/swf/chart/fx/chart/ui/resource/up_sell_2.gif +0 -0
  512. data/swf/chart/fx/chart/ui/resource/up_sell_3.gif +0 -0
  513. data/swf/chart/fx/net/StubFactory.as +113 -0
  514. data/swf/chart/fx/util/ListenerSupport.as +55 -0
  515. data/swf/chart/fx/util/PositionManager.as +95 -0
  516. data/swf/chart/fx/util/ScaleFormatter.as +156 -0
  517. data/swf/chart/fx/util/Util.as +61 -0
  518. data/swf/chart/log.as +40 -0
  519. data/swf/lib/corelib.swc +0 -0
  520. data/test/BackCollectorTest/basic/2008-08-04/AUDJPY.csv +5 -0
  521. data/test/BackCollectorTest/basic/2008-08-04/USDJPY.csv +5 -0
  522. data/test/BackCollectorTest/basic/2008-08-04/ZARJPY.csv +5 -0
  523. data/test/BackCollectorTest/basic/2008-08-05/AUDJPY.csv +5 -0
  524. data/test/BackCollectorTest/basic/2008-08-05/USDJPY.csv +5 -0
  525. data/test/BackCollectorTest/basic/2008-08-05/ZARJPY.csv +5 -0
  526. data/test/BackCollectorTest/basic/2008-08-06/AUDJPY.csv +5 -0
  527. data/test/BackCollectorTest/basic/2008-08-06/USDJPY.csv +5 -0
  528. data/test/BackCollectorTest/basic/2008-08-06/ZARJPY.csv +5 -0
  529. data/test/BackCollectorTest/basic/2008-08-07/AUDJPY.csv +5 -0
  530. data/test/BackCollectorTest/basic/2008-08-07/USDJPY.csv +5 -0
  531. data/test/BackCollectorTest/basic/2008-08-07/ZARJPY.csv +5 -0
  532. data/test/BackCollectorTest/basic/AUDJPY/raw/2008-08-04.csv +5 -0
  533. data/test/BackCollectorTest/basic/AUDJPY/raw/2008-08-05.csv +5 -0
  534. data/test/BackCollectorTest/basic/AUDJPY/raw/2008-08-06.csv +5 -0
  535. data/test/BackCollectorTest/basic/AUDJPY/raw/2008-08-07.csv +5 -0
  536. data/test/BackCollectorTest/basic/USDJPY/raw/2008-08-04.csv +5 -0
  537. data/test/BackCollectorTest/basic/USDJPY/raw/2008-08-05.csv +5 -0
  538. data/test/BackCollectorTest/basic/USDJPY/raw/2008-08-06.csv +5 -0
  539. data/test/BackCollectorTest/basic/USDJPY/raw/2008-08-07.csv +5 -0
  540. data/test/BackCollectorTest/basic/ZARJPY/raw/2008-08-04.csv +5 -0
  541. data/test/BackCollectorTest/basic/ZARJPY/raw/2008-08-05.csv +5 -0
  542. data/test/BackCollectorTest/basic/ZARJPY/raw/2008-08-06.csv +5 -0
  543. data/test/BackCollectorTest/basic/ZARJPY/raw/2008-08-07.csv +5 -0
  544. data/test/BackCollectorTest/lack/2008-08-04/AUDJPY.csv +5 -0
  545. data/test/BackCollectorTest/lack/2008-08-04/USDJPY.csv +5 -0
  546. data/test/BackCollectorTest/lack/2008-08-04/ZARJPY.csv +5 -0
  547. data/test/BackCollectorTest/lack/2008-08-06/AUDJPY.csv +5 -0
  548. data/test/BackCollectorTest/lack/2008-08-06/USDJPY.csv +5 -0
  549. data/test/BackCollectorTest/lack/2008-08-06/ZARJPY.csv +5 -0
  550. data/test/BackCollectorTest/lack/2008-08-07/AUDJPY.csv +5 -0
  551. data/test/BackCollectorTest/lack/2008-08-07/USDJPY.csv +5 -0
  552. data/test/BackCollectorTest/lack/2008-08-07/ZARJPY.csv +5 -0
  553. data/test/BackCollectorTest/lack/AUDJPY/raw/2008-08-04.csv +5 -0
  554. data/test/BackCollectorTest/lack/AUDJPY/raw/2008-08-06.csv +5 -0
  555. data/test/BackCollectorTest/lack/AUDJPY/raw/2008-08-07.csv +5 -0
  556. data/test/BackCollectorTest/lack/USDJPY/raw/2008-08-04.csv +5 -0
  557. data/test/BackCollectorTest/lack/USDJPY/raw/2008-08-06.csv +5 -0
  558. data/test/BackCollectorTest/lack/USDJPY/raw/2008-08-07.csv +5 -0
  559. data/test/BackCollectorTest/lack/ZARJPY/raw/2008-08-04.csv +5 -0
  560. data/test/BackCollectorTest/lack/ZARJPY/raw/2008-08-06.csv +5 -0
  561. data/test/BackCollectorTest/lack/ZARJPY/raw/2008-08-07.csv +5 -0
  562. data/test/OutputregistryTest/conf/configuration.yaml +3 -0
  563. data/test/ProcessManagerTest/agents/moving_average.rb +95 -0
  564. data/test/ProcessManagerTest/conf/configuration.yaml +6 -0
  565. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-21.csv +5853 -0
  566. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-22.csv +5821 -0
  567. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-23.csv +5921 -0
  568. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-24.csv +5956 -0
  569. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-25.csv +5796 -0
  570. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-21.csv +5853 -0
  571. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-22.csv +5821 -0
  572. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-23.csv +5921 -0
  573. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-24.csv +5956 -0
  574. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-25.csv +5796 -0
  575. data/test/ProcessTest/agents/foo.rb +10 -0
  576. data/test/ProcessTest/conf/configuration.yaml +3 -0
  577. data/test/agent/agent_tests.rb +10 -0
  578. data/test/agent/test_AgentManager.rb +321 -0
  579. data/test/agent/test_AgentRegistry.rb +662 -0
  580. data/test/agent/test_PeriodicallyAgent.rb +180 -0
  581. data/test/agent/test_Permitter.rb +217 -0
  582. data/test/all_tests.rb +24 -0
  583. data/test/dao/dao_tests.rb +9 -0
  584. data/test/dao/test_FileSystemDao.rb +431 -0
  585. data/test/dao/test_RateDao.rb +695 -0
  586. data/test/dao/test_TradeResultDao.rb +487 -0
  587. data/test/jiji_plugin.rb +7 -0
  588. data/test/migration/migration_tests.rb +10 -0
  589. data/test/migration/migrator1_0_3test_data/rmt/out/M2NlOTA2ODEtZDdlNi00NWU1LWIwNDQtMjBmODY2ZGNkNzBj/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  590. data/test/migration/migrator1_0_3test_data/rmt/out/NjM5YWFhZmQtNDFjNy00NjUxLWIwYmItNTc3ZjAyZTg5ODA5/56e75YuV5bmz5Z2H57ea/meta.yaml +12 -0
  591. data/test/migration/migrator1_0_3test_data/rmt/out/NjM5YWFhZmQtNDFjNy00NjUxLWIwYmItNTc3ZjAyZTg5ODA5/56e75Yuasdwqdd/meta.yaml +12 -0
  592. data/test/migration/migrator1_1_0test_data/configuration.yaml +11 -0
  593. data/test/migration/migrator1_2_0test_data/basic/out/M2NlOTA2ODEtZDdlNi00NWU1LWIwNDQtMjBmODY2ZGNkNzBj/56e75YuV5bmz5Z2H57ea/1d/2009-04.csv +8 -0
  594. data/test/migration/migrator1_2_0test_data/basic/out/M2NlOTA2ODEtZDdlNi00NWU1LWIwNDQtMjBmODY2ZGNkNzBj/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  595. data/test/migration/migrator1_2_0test_data/basic/out/MDVhYzcxMjYtMGFlMS00Mzk0LWEyNmUtYjVjZjgwNDA0ZmE2/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +1 -0
  596. data/test/migration/migrator1_2_0test_data/basic/out/MDVhYzcxMjYtMGFlMS00Mzk0LWEyNmUtYjVjZjgwNDA0ZmE2/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  597. data/test/migration/migrator1_2_0test_data/basic/out/MzA1YTk0NDgtNzhjNi00NDk3LTk2NTktYzE1ZjBhNzdiYjNj/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +1 -0
  598. data/test/migration/migrator1_2_0test_data/basic/out/MzA1YTk0NDgtNzhjNi00NDk3LTk2NTktYzE1ZjBhNzdiYjNj/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  599. data/test/migration/migrator1_2_0test_data/basic/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-04.csv +10 -0
  600. data/test/migration/migrator1_2_0test_data/basic/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-05.csv +20 -0
  601. data/test/migration/migrator1_2_0test_data/basic/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-06.csv +20 -0
  602. data/test/migration/migrator1_2_0test_data/basic/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +18 -0
  603. data/test/migration/migrator1_2_0test_data/basic/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/meta.yaml +9 -0
  604. data/test/migration/migrator1_2_0test_data/basic/props.yaml +85 -0
  605. data/test/migration/migrator1_2_0test_data/illegal_props/out/M2NlOTA2ODEtZDdlNi00NWU1LWIwNDQtMjBmODY2ZGNkNzBj/56e75YuV5bmz5Z2H57ea/1d/2009-04.csv +8 -0
  606. data/test/migration/migrator1_2_0test_data/illegal_props/out/M2NlOTA2ODEtZDdlNi00NWU1LWIwNDQtMjBmODY2ZGNkNzBj/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  607. data/test/migration/migrator1_2_0test_data/illegal_props/out/MDVhYzcxMjYtMGFlMS00Mzk0LWEyNmUtYjVjZjgwNDA0ZmE2/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +1 -0
  608. data/test/migration/migrator1_2_0test_data/illegal_props/out/MDVhYzcxMjYtMGFlMS00Mzk0LWEyNmUtYjVjZjgwNDA0ZmE2/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  609. data/test/migration/migrator1_2_0test_data/illegal_props/out/MzA1YTk0NDgtNzhjNi00NDk3LTk2NTktYzE1ZjBhNzdiYjNj/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +1 -0
  610. data/test/migration/migrator1_2_0test_data/illegal_props/out/MzA1YTk0NDgtNzhjNi00NDk3LTk2NTktYzE1ZjBhNzdiYjNj/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  611. data/test/migration/migrator1_2_0test_data/illegal_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-04.csv +10 -0
  612. data/test/migration/migrator1_2_0test_data/illegal_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-05.csv +20 -0
  613. data/test/migration/migrator1_2_0test_data/illegal_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-06.csv +20 -0
  614. data/test/migration/migrator1_2_0test_data/illegal_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +18 -0
  615. data/test/migration/migrator1_2_0test_data/illegal_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/meta.yaml +9 -0
  616. data/test/migration/migrator1_2_0test_data/illegal_props/props.yaml +1 -0
  617. data/test/migration/migrator1_2_0test_data/no_outs/props.yaml +85 -0
  618. data/test/migration/migrator1_2_0test_data/no_props/out/M2NlOTA2ODEtZDdlNi00NWU1LWIwNDQtMjBmODY2ZGNkNzBj/56e75YuV5bmz5Z2H57ea/1d/2009-04.csv +8 -0
  619. data/test/migration/migrator1_2_0test_data/no_props/out/M2NlOTA2ODEtZDdlNi00NWU1LWIwNDQtMjBmODY2ZGNkNzBj/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  620. data/test/migration/migrator1_2_0test_data/no_props/out/MDVhYzcxMjYtMGFlMS00Mzk0LWEyNmUtYjVjZjgwNDA0ZmE2/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +1 -0
  621. data/test/migration/migrator1_2_0test_data/no_props/out/MDVhYzcxMjYtMGFlMS00Mzk0LWEyNmUtYjVjZjgwNDA0ZmE2/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  622. data/test/migration/migrator1_2_0test_data/no_props/out/MzA1YTk0NDgtNzhjNi00NDk3LTk2NTktYzE1ZjBhNzdiYjNj/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +1 -0
  623. data/test/migration/migrator1_2_0test_data/no_props/out/MzA1YTk0NDgtNzhjNi00NDk3LTk2NTktYzE1ZjBhNzdiYjNj/56e75YuV5bmz5Z2H57ea/meta.yaml +8 -0
  624. data/test/migration/migrator1_2_0test_data/no_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-04.csv +10 -0
  625. data/test/migration/migrator1_2_0test_data/no_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-05.csv +20 -0
  626. data/test/migration/migrator1_2_0test_data/no_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-06.csv +20 -0
  627. data/test/migration/migrator1_2_0test_data/no_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/1d/2009-07.csv +18 -0
  628. data/test/migration/migrator1_2_0test_data/no_props/out/YjRkOTI1MzEtZTM4MS00YjQwLTg1ZTQtMWFmZDRlNDUwMzBm/56e75YuV5bmz5Z2H57ea/meta.yaml +9 -0
  629. data/test/migration/test_Migrator.rb +117 -0
  630. data/test/migration/test_Migrator1_0_3.rb +118 -0
  631. data/test/migration/test_Migrator1_1_0.rb +56 -0
  632. data/test/migration/test_Migrator1_2_0.rb +94 -0
  633. data/test/plugin/embedded/test_SingleClickClient.rb +144 -0
  634. data/test/plugin/error_test/jiji_plugin.rb +2 -0
  635. data/test/plugin/plugin_tests.rb +8 -0
  636. data/test/plugin/test/foo_plugin.rb +1 -0
  637. data/test/plugin/test/jiji_plugin.rb +2 -0
  638. data/test/plugin/test_Loader.rb +33 -0
  639. data/test/plugin/test_gem/a/jiji_plugin_test_gem_a-1.0.0.gem +0 -0
  640. data/test/plugin/test_gem/a/jiji_plugin_test_gem_a.gemspec +10 -0
  641. data/test/plugin/test_gem/a/lib/jiji_plugin.rb +2 -0
  642. data/test/plugin/test_gem/a/lib/jiji_plugin_test.rb +6 -0
  643. data/test/plugin/test_gem/b/jiji_plugin_test_gem_b-1.0.0.gem +0 -0
  644. data/test/plugin/test_gem/b/jiji_plugin_test_gem_b.gemspec +9 -0
  645. data/test/plugin/test_gem/b/lib/jiji_plugin.rb +2 -0
  646. data/test/service/all_service_tests.rb +10 -0
  647. data/test/service/test_AgentService.rb +185 -0
  648. data/test/service/test_OutputService.rb +33 -0
  649. data/test/service/test_RateService.rb +56 -0
  650. data/test/shared/rate.csv +144 -0
  651. data/test/shared/shared_tests.rb +9 -0
  652. data/test/shared/test_Cross.rb +144 -0
  653. data/test/shared/test_PositionManager.rb +285 -0
  654. data/test/shared/test_Signal.rb +65 -0
  655. data/test/test_BackTestCollector.rb +273 -0
  656. data/test/test_Collector.rb +230 -0
  657. data/test/test_Configuration.rb +61 -0
  658. data/test/test_Configuration_a.yaml +6 -0
  659. data/test/test_Operator.rb +501 -0
  660. data/test/test_Output.rb +175 -0
  661. data/test/test_OutputManager.rb +162 -0
  662. data/test/test_Output_registry.rb +42 -0
  663. data/test/test_Process.rb +557 -0
  664. data/test/test_ProcessManager.rb +723 -0
  665. data/test/test_utils.rb +112 -0
  666. data/test/util/test_BlockToSession.rb +121 -0
  667. data/test/util/test_CSV.rb +84 -0
  668. data/test/util/test_SynchronizeInterceptor.rb +76 -0
  669. data/test/util/util_tests.rb +9 -0
  670. metadata +941 -0
@@ -0,0 +1,59 @@
1
+ package fx.chart.ui {
2
+
3
+ import flash.display.*;
4
+ import mx.core.*;
5
+ import fx.chart.*;
6
+ import fx.chart.ctrl.*;
7
+ import fx.chart.model.*;
8
+ import fx.util.*;
9
+ import flash.text.*;
10
+
11
+ /**
12
+ * チャートUIの抽象基底クラス
13
+ */
14
+ public class AbstractChartUI {
15
+
16
+ /**
17
+ * コンストラクタ
18
+ */
19
+ public function AbstractChartUI(model:Model,
20
+ controller:Controller, rc:RenderingContext) {
21
+ this.model = model;
22
+ this.ctrl = controller;
23
+ this.rc = rc;
24
+ }
25
+
26
+ /**
27
+ * モデル
28
+ */
29
+ protected var model:Model;
30
+
31
+ /**
32
+ * コントローラー
33
+ */
34
+ protected var ctrl:Controller;
35
+
36
+ /**
37
+ * 描画コンテキスト
38
+ */
39
+ protected var rc:RenderingContext;
40
+
41
+ /**
42
+ * テキストを作る。
43
+ */
44
+ protected function createText( str:String, parent:Sprite,
45
+ format:TextFormat, x:int, y:int, width:int=100 ):TextField {
46
+ var text:TextField = new TextField();
47
+ text.selectable = false;
48
+ text.text = str;
49
+ text.width = width;
50
+ text.setTextFormat(format);
51
+ text.defaultTextFormat = format;
52
+ text.y = y;
53
+ text.x = x;
54
+ parent.addChild(text);
55
+ return text;
56
+ }
57
+ }
58
+
59
+ }
@@ -0,0 +1,63 @@
1
+ package fx.chart.ui {
2
+
3
+ import flash.display.*;
4
+ import mx.core.*;
5
+ import fx.chart.*;
6
+ import fx.chart.ctrl.*;
7
+ import fx.chart.model.*;
8
+ import fx.util.*;
9
+
10
+ /**
11
+ * チャートUIの抽象基底クラス
12
+ */
13
+ public class AbstractDrawChartUI extends AbstractChartUI {
14
+
15
+ /**スプライト*/
16
+ protected var main:Sprite;
17
+ protected var axis:Sprite;
18
+ protected var lowAxis:Sprite;
19
+ protected var axisY:Sprite;
20
+ protected var lowAxisY:Sprite;
21
+ protected var all:Array;
22
+
23
+ /**
24
+ * コンストラクタ
25
+ */
26
+ public function AbstractDrawChartUI(model:Model,
27
+ controller:Controller, rc:RenderingContext ) {
28
+ super( model,controller,rc );
29
+
30
+ // スプライト
31
+ main = new Sprite();
32
+ rc.layers.main.addChild( main );
33
+ axis = new Sprite();
34
+ rc.layers.axis.addChild( axis );
35
+ lowAxis = new Sprite();
36
+ rc.layers.lowAxis.addChild( lowAxis );
37
+ axisY = new Sprite();
38
+ rc.layers.axisY.addChild( axisY );
39
+ lowAxisY = new Sprite();
40
+ rc.layers.lowAxisY.addChild( lowAxisY );
41
+
42
+ all = [main,axis,lowAxis,axisY,lowAxisY];
43
+ }
44
+
45
+ /**
46
+ * 追加したスプライトを親のスプライトから取り除く。
47
+ */
48
+ public function destroy():void {
49
+ all.forEach( function(item:*,i:int,array:Array):void {
50
+ item.parent.removeChild( item );
51
+ });
52
+ }
53
+ /**
54
+ * スプライトの表示/非表示を切り替える。
55
+ */
56
+ public function setVisible( visible:Boolean ):void {
57
+ all.forEach( function(item:*,i:int,array:Array):void {
58
+ item.visible = visible;
59
+ });
60
+ }
61
+ }
62
+
63
+ }
@@ -0,0 +1,233 @@
1
+ package fx.chart.ui {
2
+
3
+ import flash.text.*;
4
+
5
+ public class Constants {
6
+
7
+
8
+ /** 軸の色 */
9
+ public static const COLOR_AXIS:uint = 0x565656;
10
+ /** 軸のハイライト*/
11
+ public static const COLOR_AXIS_HI:uint = 0xF9F9F9;
12
+ /** 薄い軸の色*/
13
+ public static const COLOR_AXIS_RIGHT:uint = 0xd3d3d0;
14
+
15
+ /**背景色*/
16
+ public static const BACKGROUND_COLOR:uint = 0xE2E2E2;
17
+
18
+ /**
19
+ * ポインタのライン色
20
+ */
21
+ public static const COLOR_POINTER_LINE:uint = 0xFFFFFF;
22
+
23
+ /**
24
+ * 火のグラデーション
25
+ */
26
+ public static const COLOR_ROW_UP_HIGH:uint = 0xF8F8F5;
27
+ public static const COLOR_ROW_UP_LOW:uint = 0xF0F0F0;
28
+ public static const COLOR_ROW_DOWN_HIGH:uint = 0xa0a0bD;
29
+ public static const COLOR_ROW_DOWN_LOW:uint = 0xb8b8b5;
30
+
31
+ /**火の周りの色 */
32
+ public static const COLOR_CANDLE:uint = 0x898983;
33
+
34
+ /**
35
+ * 未確定損益グラフの色
36
+ */
37
+ public static const COLOR_UNFIXED:uint = 0xACA3E2;
38
+
39
+ /**
40
+ * 取引:+
41
+ */
42
+ public static const COLOR_UP:uint = 0xFE4072;//0xD65B7E;
43
+ /**
44
+ * 取引:-
45
+ */
46
+ public static const COLOR_DOWN:uint = 0x4072FF;//0x78A0D9;
47
+ /**
48
+ * 取引:同じ
49
+ */
50
+ public static const COLOR_DRAW:uint = 0x9283C5;//0x8C83c2;
51
+
52
+ public static const COLOR_UP_3:uint = 0xE35080;
53
+ public static const COLOR_UP_2:uint = 0xC46F8A;
54
+ public static const COLOR_UP_1:uint = 0xCDA5B1;
55
+ public static const COLOR_DOWN_1:uint = 0x6392F1;
56
+ public static const COLOR_DOWN_2:uint = 0x879DCD;
57
+ public static const COLOR_DOWN_3:uint = 0xB8C4DC;
58
+
59
+
60
+ /**フォント*/
61
+ public static const FONT:String = "Verdana"
62
+
63
+ /**
64
+ * テキストフォーマット:軸のテキスト
65
+ */
66
+ public static const TEXT_FORMAT_SCALE_Y:TextFormat =
67
+ new TextFormat(FONT, 10, COLOR_CANDLE);
68
+ TEXT_FORMAT_SCALE_Y.align = TextFormatAlign.RIGHT;
69
+ public static const TEXT_FORMAT_SCALE_X:TextFormat =
70
+ new TextFormat(FONT, 10, COLOR_CANDLE);
71
+ TEXT_FORMAT_SCALE_X.align = TextFormatAlign.CENTER;
72
+
73
+ /**
74
+ * テキストフォーマット:スクロール
75
+ */
76
+ public static const TEXT_FORMAT_SCROLL_LEFT:TextFormat =
77
+ new TextFormat(FONT, 10, COLOR_AXIS);
78
+ TEXT_FORMAT_SCROLL_LEFT.align = TextFormatAlign.LEFT;
79
+ public static const TEXT_FORMAT_SCROLL_RIGHT:TextFormat =
80
+ new TextFormat(FONT, 10, COLOR_AXIS);
81
+ TEXT_FORMAT_SCROLL_RIGHT.align = TextFormatAlign.RIGHT;
82
+
83
+
84
+ /**
85
+ * 情報ウインドウ
86
+ */
87
+ public static const TEXT_FORMAT_INFO_RATE_START:TextFormat
88
+ = new TextFormat(FONT, 25, 0x484845);
89
+ TEXT_FORMAT_INFO_RATE_START.align = TextFormatAlign.RIGHT;
90
+ public static const TEXT_FORMAT_INFO_RATE_END :TextFormat
91
+ = new TextFormat(FONT, 13, 0x484845);
92
+ TEXT_FORMAT_INFO_RATE_END.align = TextFormatAlign.RIGHT;
93
+
94
+ public static const TEXT_FORMAT_INFO_BASIC:TextFormat
95
+ = new TextFormat(FONT, 10, 0x888885);
96
+ TEXT_FORMAT_INFO_BASIC.align = TextFormatAlign.RIGHT;
97
+ public static const TEXT_FORMAT_INFO_BASIC_L:TextFormat
98
+ = new TextFormat(FONT, 10, 0x888885);
99
+ TEXT_FORMAT_INFO_BASIC_L.align = TextFormatAlign.LEFT;
100
+
101
+ public static const TEXT_FORMAT_INFO_LABEL:TextFormat
102
+ = new TextFormat(FONT, 10, 0x686865, false);
103
+ TEXT_FORMAT_INFO_BASIC.align = TextFormatAlign.RIGHT;
104
+ public static const TEXT_FORMAT_INFO_LABEL_L:TextFormat
105
+ = new TextFormat(FONT, 10, 0x686865, false);
106
+ TEXT_FORMAT_INFO_BASIC_L.align = TextFormatAlign.LEFT;
107
+
108
+ public static const TEXT_FORMAT_INFO_PROFIT_UP:TextFormat
109
+ = new TextFormat(FONT, 10, COLOR_UP);
110
+ TEXT_FORMAT_INFO_PROFIT_UP.align = TextFormatAlign.RIGHT;
111
+
112
+ public static const TEXT_FORMAT_INFO_PROFIT_DOWN:TextFormat
113
+ = new TextFormat(FONT, 10, COLOR_DOWN);
114
+ TEXT_FORMAT_INFO_PROFIT_DOWN.align = TextFormatAlign.RIGHT;
115
+
116
+ public static const TEXT_FORMAT_INFO_PROFIT_DRAW:TextFormat
117
+ = new TextFormat(FONT, 10, COLOR_DRAW);
118
+ TEXT_FORMAT_INFO_PROFIT_DRAW.align = TextFormatAlign.RIGHT;
119
+
120
+ /**
121
+ * 取引情報詳細
122
+ */
123
+ public static const TEXT_FORMAT_TINFO_PROFIT_UP:TextFormat
124
+ = new TextFormat(FONT, 18, COLOR_UP, false);
125
+ TEXT_FORMAT_TINFO_PROFIT_UP.align = TextFormatAlign.LEFT;
126
+ public static const TEXT_FORMAT_TINFO_PROFIT_DOWN:TextFormat
127
+ = new TextFormat(FONT, 18, COLOR_DOWN, false);
128
+ TEXT_FORMAT_TINFO_PROFIT_DOWN.align = TextFormatAlign.LEFT;
129
+ public static const TEXT_FORMAT_TINFO_PROFIT_DRAW:TextFormat
130
+ = new TextFormat(FONT, 18, COLOR_DRAW, false);
131
+ TEXT_FORMAT_TINFO_PROFIT_DRAW.align = TextFormatAlign.LEFT;
132
+
133
+ public static const TEXT_FORMAT_TINFO_INFO:TextFormat
134
+ = new TextFormat(FONT, 10, 0x888885, true);
135
+ TEXT_FORMAT_TINFO_INFO.align = TextFormatAlign.LEFT;
136
+
137
+
138
+ /**
139
+ * スクロール情報
140
+ */
141
+ public static const TEXT_FORMAT_PINFO:TextFormat
142
+ = new TextFormat(FONT, 10, 0x888885);
143
+ TEXT_FORMAT_PINFO.align = TextFormatAlign.LEFT;
144
+
145
+ /**
146
+ * ストライプ
147
+ */
148
+ [Embed(source="resource/stripe.gif")]
149
+ public static var BITMAP_STRIPE:Class;
150
+ [Embed(source="resource/stripe_b.gif")]
151
+ public static var BITMAP_STRIPE_BLUE:Class;
152
+ [Embed(source="resource/stripe_r.gif")]
153
+ public static var BITMAP_STRIPE_RED:Class;
154
+
155
+ /**
156
+ * アイコン
157
+ */
158
+ [Embed(source="resource/buy.gif")]
159
+ public static var ICON_BUY:Class;
160
+ [Embed(source="resource/sell.gif")]
161
+ public static var ICON_SELL:Class;
162
+ [Embed(source="resource/down.gif")]
163
+ public static var ICON_DOWN:Class;
164
+ [Embed(source="resource/up.gif")]
165
+ public static var ICON_UP:Class;
166
+ [Embed(source="resource/fixed.gif")]
167
+ public static var ICON_FIXED:Class;
168
+ [Embed(source="resource/unfixed.gif")]
169
+ public static var ICON_UNFIXED:Class;
170
+
171
+ [Embed(source="resource/max_label.gif")]
172
+ public static var ICON_MAX_LABEL:Class;
173
+ [Embed(source="resource/min_label.gif")]
174
+ public static var ICON_MIN_LABEL:Class;
175
+ [Embed(source="resource/diff_label.gif")]
176
+ public static var ICON_DIFF_LABEL:Class;
177
+
178
+ [Embed(source="resource/start_label.gif")]
179
+ public static var ICON_START_LABEL:Class;
180
+ [Embed(source="resource/end_label.gif")]
181
+ public static var ICON_END_LABEL:Class;
182
+
183
+ [Embed(source="resource/up_buy_1.gif")]
184
+ public static var ICON_TRADE_UP_BUY_1:Class;
185
+ [Embed(source="resource/up_buy_2.gif")]
186
+ public static var ICON_TRADE_UP_BUY_2:Class;
187
+ [Embed(source="resource/up_buy_3.gif")]
188
+ public static var ICON_TRADE_UP_BUY_3:Class;
189
+ [Embed(source="resource/up_sell_1.gif")]
190
+ public static var ICON_TRADE_UP_SELL_1:Class;
191
+ [Embed(source="resource/up_sell_2.gif")]
192
+ public static var ICON_TRADE_UP_SELL_2:Class;
193
+ [Embed(source="resource/up_sell_3.gif")]
194
+ public static var ICON_TRADE_UP_SELL_3:Class;
195
+
196
+ [Embed(source="resource/down_buy_1.gif")]
197
+ public static var ICON_TRADE_DOWN_BUY_1:Class;
198
+ [Embed(source="resource/down_buy_2.gif")]
199
+ public static var ICON_TRADE_DOWN_BUY_2:Class;
200
+ [Embed(source="resource/down_buy_3.gif")]
201
+ public static var ICON_TRADE_DOWN_BUY_3:Class;
202
+ [Embed(source="resource/down_sell_1.gif")]
203
+ public static var ICON_TRADE_DOWN_SELL_1:Class;
204
+ [Embed(source="resource/down_sell_2.gif")]
205
+ public static var ICON_TRADE_DOWN_SELL_2:Class;
206
+ [Embed(source="resource/down_sell_3.gif")]
207
+ public static var ICON_TRADE_DOWN_SELL_3:Class;
208
+
209
+ [Embed(source="resource/up_buy.gif")]
210
+ public static var ICON_TRADE_UP_BUY:Class;
211
+ [Embed(source="resource/up_sell.gif")]
212
+ public static var ICON_TRADE_UP_SELL:Class;
213
+ [Embed(source="resource/down_buy.gif")]
214
+ public static var ICON_TRADE_DOWN_BUY:Class;
215
+ [Embed(source="resource/down_sell.gif")]
216
+ public static var ICON_TRADE_DOWN_SELL:Class;
217
+ [Embed(source="resource/draw_buy.gif")]
218
+ public static var ICON_TRADE_DRAW_BUY:Class;
219
+ [Embed(source="resource/draw_sell.gif")]
220
+ public static var ICON_TRADE_DRAW_SELL:Class;
221
+
222
+ [Embed(source="resource/scroll_info_handle.gif")]
223
+ public static var ICON_SCROLL_INFO_HANDLE:Class;
224
+
225
+ [Embed(source="resource/loading.gif")]
226
+ public static var ICON_LOADING:Class;
227
+
228
+ [Embed(source="resource/cursor_hand.gif")]
229
+ public static var CURSOR_HAND:Class;
230
+ }
231
+
232
+
233
+ }
@@ -0,0 +1,228 @@
1
+ package fx.chart.ui {
2
+
3
+ import fx.chart.model.*;
4
+ import fx.chart.ctrl.*;
5
+ import fx.chart.*;
6
+ import fx.util.*;
7
+ import flash.events.*;
8
+ import flash.display.*;
9
+ import flash.text.*;
10
+ import flash.geom.*;
11
+ import flash.filters.*;
12
+
13
+ public class InformationWindow extends AbstractChartUI {
14
+
15
+
16
+ private static const WIDTH:int = 214;
17
+ private static const HEIGHT:int = 140;
18
+
19
+ /**ウインドウ*/
20
+ private var window:Window;
21
+ private var infoLayer:Sprite;
22
+
23
+ /**テキストフィールド*/
24
+ private var textFields:Object = new Object();
25
+
26
+ /**アイコン*/
27
+ private var up:Bitmap;
28
+ private var down:Bitmap;
29
+
30
+ public function InformationWindow( model:Model,
31
+ controller:Controller, rc:RenderingContext ) {
32
+ super( model,controller,rc );
33
+
34
+ infoLayer = new Sprite();
35
+ infoLayer.name = "info";
36
+ rc.layers.window.addChild( infoLayer );
37
+
38
+ window = new Window( model,controller,rc,
39
+ infoLayer, WIDTH, HEIGHT);
40
+
41
+ var stageWidth:int = rc.stage.width;
42
+ var stageHeight:int = rc.stage.height;
43
+
44
+ var g:Graphics = window.window.graphics
45
+ g.lineStyle( 0, 0xD3D3D0, 1,
46
+ true, LineScaleMode.NONE, CapsStyle.NONE, JointStyle.BEVEL );
47
+ g.moveTo( 10, 64 );
48
+ g.lineTo( 135, 64 );
49
+ g.moveTo( 10, 95 );
50
+ g.lineTo( 135, 95 );
51
+ g.moveTo( 146, 10 );
52
+ g.lineTo( 146, 130 );
53
+
54
+ // 最初は非表示
55
+ window.window.visible = false;
56
+
57
+ //
58
+ textFields["rate_start"] = createTextField( 11,7,130,32,Constants.TEXT_FORMAT_INFO_RATE_START );
59
+ textFields["rate_end"] = createTextField( 10,40,130,20,Constants.TEXT_FORMAT_INFO_RATE_END );
60
+
61
+ (["max","min","diff"]).forEach( function( item:*,i:int,arr:Array ):void{
62
+ textFields[item + "_value"] = createTextField( 153,21+i*29,70,15,Constants.TEXT_FORMAT_INFO_BASIC_L );
63
+ textFields[item + "_value"].text = "-";
64
+ } );
65
+ ([new Constants.ICON_MAX_LABEL(),
66
+ new Constants.ICON_MIN_LABEL(),
67
+ new Constants.ICON_DIFF_LABEL()]).forEach( function( item:*,i:int,arr:Array ):void{
68
+ item.x = 153;
69
+ item.y = 11+i*29;
70
+ window.window.addChild( item );
71
+ });
72
+
73
+
74
+ (["x","y"]).forEach( function( item:*,i:int,arr:Array ):void{
75
+ textFields[item] = createTextField( 10,65+i*13,130,15,Constants.TEXT_FORMAT_INFO_BASIC );
76
+ } );
77
+
78
+ (["fixed","unfixed"]).forEach( function( item:*,i:int,arr:Array ):void{
79
+ textFields[item] = createTextField( 60,99+i*15,80,16,Constants.TEXT_FORMAT_INFO_BASIC );
80
+ } );
81
+
82
+ down = new Constants.ICON_DOWN();
83
+ up = new Constants.ICON_UP();
84
+ ([down,up]).forEach( function( item:*,i:int,arr:Array ):void{
85
+ //item.filters = [new DropShadowFilter( 3.0, 45, 0x888885, 0.5)];
86
+ item.x = 9;
87
+ item.y = 9;
88
+ item.alpha = 0.85;
89
+ window.window.addChild( item );
90
+ item.visible = false;
91
+ });
92
+
93
+ var fix:Bitmap = new Constants.ICON_FIXED();
94
+ var unfix:Bitmap = new Constants.ICON_UNFIXED();
95
+ ([fix,unfix]).forEach( function( item:*,i:int,arr:Array ):void{
96
+ item.x = 11;
97
+ item.y = 101+i*16;
98
+ window.window.addChild( item );
99
+ } );
100
+ }
101
+ public function setPosition( x:int, y:int ):void {
102
+ var stageWidth:int = rc.stage.width;
103
+ var stageHeight:int = rc.stage.height;
104
+ if ( model.rateDatas &&
105
+ x >= rc.stage.candle.left+1 &&
106
+ x < rc.stage.candle.right &&
107
+ y > rc.stage.candle.top &&
108
+ y <= rc.stage.profit.bottom ) {
109
+
110
+ window.window.visible = true;
111
+
112
+ infoLayer.x = x > rc.stage.candle.right - WIDTH -10 ? x-15-WIDTH : x+15;
113
+ infoLayer.y = y > rc.stage.profit.bottom - HEIGHT -10 ? y-15-HEIGHT : y+15;
114
+
115
+ var daten:Number = model.positionManager.toDate(x-rc.stage.candle.left-2);
116
+ daten = Math.ceil( daten / model.scaleTime ) * model.scaleTime;
117
+
118
+ // x,y
119
+ var date:Date = new Date();
120
+ date.setTime( daten*1000 );
121
+ textFields["x"].text = Util.formatDate( date );
122
+ if ( y < rc.stage.candle.bottom ) {
123
+ var rate:Number = model.positionManager.toRate(
124
+ rc.stage.candle.bottom - y, rc.stage.candle.height);
125
+ var l:int = 5 - (rate == 0 ? 1 : Math.log(rate)*Math.LOG10E);
126
+ textFields["y"].text = rate.toFixed(l);
127
+ } else if ( y > rc.stage.profit.top ) {
128
+ var profit:Number = model.positionManager.toProfit(
129
+ rc.stage.profit.bottom - y, rc.stage.profit.height);
130
+ textFields["y"].text = Math.ceil(profit/100)*100;
131
+ } else {
132
+ textFields["y"].text = "-";
133
+ }
134
+
135
+ // レート
136
+ updateRate( daten );
137
+
138
+ // 収益
139
+ updateProfit(daten);
140
+
141
+ } else {
142
+ window.window.visible = false;
143
+ }
144
+ }
145
+
146
+ public function onMouseMove( ev:MouseEvent ):void {
147
+ setPosition(ev.stageX, ev.stageY)
148
+ }
149
+ private function updateRate( date:Number ):void {
150
+ if ( model.rateDatas ) {
151
+ var d:Array = model.rateDatas.getDataByDate( date );
152
+ if (d) {
153
+ var size:int = d[0] == 0 ? 1 : Math.ceil( Math.log(d[0])*Math.LOG10E );
154
+ var l:int = 5 - ( size <= 0 ? 1 : size ) ;
155
+ textFields["rate_start"].text = d[0].toFixed(l);
156
+ textFields["rate_end"].text = d[1].toFixed(l);
157
+
158
+ textFields["max_value"].text = d[2].toFixed(l);
159
+ textFields["min_value"].text = d[3].toFixed(l);
160
+ textFields["diff_value"].text = (d[2]-d[3]).toFixed(l);
161
+
162
+ if ( d[0]-d[1] > 0 ) {
163
+ down.visible=true;
164
+ up.visible=false;
165
+ } else {
166
+ down.visible=false;
167
+ up.visible=true;
168
+ }
169
+
170
+ return;
171
+ }
172
+ }
173
+ textFields["rate_start"].text = "-";
174
+ textFields["rate_end"].text = "-";
175
+
176
+ textFields["max_value"].text = "-";
177
+ textFields["min_value"].text = "-";
178
+ textFields["diff_value"].text = "-";
179
+
180
+ down.visible=false;
181
+ up.visible=false;
182
+ }
183
+
184
+ private function updateProfit( date:Number ):void {
185
+ if ( model.profitDatas ) {
186
+ var profit:Array = model.profitDatas.getDataByDate( date );
187
+ if (profit) {
188
+ textFields["unfixed"].text = int(profit[0]);
189
+ updateProfitColor( int(profit[0]), textFields["unfixed"] );
190
+ textFields["fixed"].text = int(profit[1]);
191
+ updateProfitColor( int(profit[1]), textFields["fixed"] );
192
+ return;
193
+ }
194
+ }
195
+ textFields["fixed"].text = "-";
196
+ updateProfitColor( 0, textFields["fixed"] );
197
+ textFields["unfixed"].text = "-";
198
+ updateProfitColor( 0, textFields["unfixed"] );
199
+ }
200
+ private function updateProfitColor( profit:Number, text:TextField ):void {
201
+ var f:TextFormat = null;
202
+ if (profit > 0) {
203
+ f = Constants.TEXT_FORMAT_INFO_PROFIT_UP;
204
+ } else if (profit < 0) {
205
+ f = Constants.TEXT_FORMAT_INFO_PROFIT_DOWN;
206
+ } else {
207
+ f = Constants.TEXT_FORMAT_INFO_PROFIT_DRAW;
208
+ }
209
+ text.setTextFormat( f );
210
+ }
211
+
212
+ private function createTextField( x:int, y:int,
213
+ width:int, height:int, format:TextFormat ):TextField {
214
+ var text:TextField = new TextField();
215
+ text.selectable = false;
216
+ text.width = width;
217
+ text.height = height;
218
+ text.defaultTextFormat = format;
219
+ text.y = y;
220
+ text.x = x;
221
+ text.text = "-";
222
+ window.window.addChild( text );
223
+ return text;
224
+ }
225
+
226
+ }
227
+
228
+ }
@@ -0,0 +1,95 @@
1
+ package fx.chart.ui {
2
+
3
+ import flash.events.*;
4
+ import flash.display.*;
5
+ import fx.chart.*;
6
+ import fx.chart.model.*;
7
+ import fx.chart.ctrl.*;
8
+
9
+ /**
10
+ * レイヤーマネージャ
11
+ */
12
+ public class LayerManager {
13
+
14
+ public var window:Sprite;
15
+ public var ctrl:Sprite;
16
+ public var main:Sprite;
17
+ public var axis:Sprite;
18
+ public var axisY:Sprite;
19
+ public var pointer:Sprite;
20
+ public var lowAxis:Sprite;
21
+ public var lowAxisY:Sprite;
22
+
23
+ private var stage:fx.chart.ui.Stage;
24
+ private var chartComponent:Sprite;
25
+
26
+ /**
27
+ * コンストラクタ
28
+ */
29
+ public function LayerManager(chartComponent:Sprite, stage:fx.chart.ui.Stage) {
30
+
31
+ this.chartComponent = chartComponent;
32
+ this.stage = stage;
33
+
34
+ // レイヤーを作成
35
+ lowAxisY = new Sprite();
36
+ chartComponent.addChild( lowAxisY );
37
+
38
+ lowAxis = new Sprite();
39
+ chartComponent.addChild( lowAxis );
40
+
41
+ pointer = new Sprite();
42
+ chartComponent.addChild( pointer );
43
+
44
+ main = new Sprite();
45
+ chartComponent.addChild( main );
46
+
47
+ axisY = new Sprite();
48
+ chartComponent.addChild( axisY );
49
+
50
+ axis = new Sprite();
51
+ chartComponent.addChild( axis );
52
+
53
+ ctrl = new Sprite();
54
+ chartComponent.addChild( ctrl );
55
+
56
+ window = new Sprite();
57
+ chartComponent.addChild( window );
58
+
59
+ // マスク
60
+ setChartMask(main);
61
+ setChartMask(axisY);
62
+ setChartMask(lowAxisY);
63
+ }
64
+
65
+ /**
66
+ * スプライトにチャート領域のみを描画するマスクを設定する。
67
+ * @param target マスクを設定するスプライト
68
+ */
69
+ private function setChartMask( target:Sprite ):void {
70
+ // マスク
71
+ var mask:Sprite = new Sprite();
72
+ mask.graphics.beginFill(0x010101);
73
+ mask.graphics.drawRect( stage.candle.x, stage.candle.y,
74
+ stage.candle.width, stage.height - fx.chart.ui.Stage.PADDING );
75
+ mask.graphics.endFill();
76
+ mask.alpha = 100;
77
+ this.chartComponent.addChild( mask );
78
+
79
+ // circleスプライトのマスクとしてmaskスプライトを設定
80
+ target.mask = mask;
81
+ }
82
+
83
+ /**
84
+ * showで指定された名前を持つWindowだけ表示する。
85
+ */
86
+ public function setWindowVisible( show:Object ):void {
87
+ for ( var i:int =0; i < window.numChildren; i++ ) {
88
+ var w:DisplayObject = window.getChildAt( i );
89
+ w.visible = show[w.name];
90
+ }
91
+ }
92
+
93
+ }
94
+
95
+ }