gfdnavi 1.3.0.0

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 (446) hide show
  1. data/ChangeLog +10949 -0
  2. data/LICENCE.txt +57 -0
  3. data/Makefile +18 -0
  4. data/TODO +132 -0
  5. data/app/controllers/analysis_controller.rb +700 -0
  6. data/app/controllers/application.rb +41 -0
  7. data/app/controllers/draw_method_controller.rb +172 -0
  8. data/app/controllers/explorer_controller.rb +197 -0
  9. data/app/controllers/finder_controller.rb +331 -0
  10. data/app/controllers/function_controller.rb +204 -0
  11. data/app/controllers/group_controller.rb +115 -0
  12. data/app/controllers/keyword_attributes_controller.rb +52 -0
  13. data/app/controllers/knowledge_controller.rb +928 -0
  14. data/app/controllers/nodes_controller.rb +515 -0
  15. data/app/controllers/search_controller.rb +341 -0
  16. data/app/controllers/user_controller.rb +337 -0
  17. data/app/helpers/analysis_helper.rb +2 -0
  18. data/app/helpers/application_helper.rb +105 -0
  19. data/app/helpers/description_helper.rb +2 -0
  20. data/app/helpers/function_helper.rb +2 -0
  21. data/app/helpers/group_helper.rb +2 -0
  22. data/app/helpers/search_helper.rb +3 -0
  23. data/app/helpers/user_helper.rb +2 -0
  24. data/app/helpers/work_flow_helper.rb +92 -0
  25. data/app/models/actual_file.rb +3 -0
  26. data/app/models/analysis.rb +715 -0
  27. data/app/models/analysis_history.rb +42 -0
  28. data/app/models/cross_array.rb +22 -0
  29. data/app/models/cross_result.rb +254 -0
  30. data/app/models/derived_spatial_attribute.rb +3 -0
  31. data/app/models/diagram_cache.rb +16 -0
  32. data/app/models/diagram_cache_datum.rb +4 -0
  33. data/app/models/diagram_cache_session.rb +8 -0
  34. data/app/models/directory.rb +21 -0
  35. data/app/models/draw_method.rb +48 -0
  36. data/app/models/draw_method_attribute.rb +8 -0
  37. data/app/models/draw_parameter.rb +12 -0
  38. data/app/models/explorer_query.rb +354 -0
  39. data/app/models/explorer_result.rb +312 -0
  40. data/app/models/function.rb +75 -0
  41. data/app/models/function_argument.rb +6 -0
  42. data/app/models/function_output.rb +4 -0
  43. data/app/models/group.rb +153 -0
  44. data/app/models/image.rb +20 -0
  45. data/app/models/keyword_attribute.rb +179 -0
  46. data/app/models/knowledge.rb +94 -0
  47. data/app/models/knowledge_backup.rb +32 -0
  48. data/app/models/knowledge_figure.rb +16 -0
  49. data/app/models/knowledge_figure_backup.rb +16 -0
  50. data/app/models/knowledge_parser.rb +392 -0
  51. data/app/models/node.rb +605 -0
  52. data/app/models/node_entity_abstract.rb +112 -0
  53. data/app/models/node_lineage.rb +6 -0
  54. data/app/models/node_relation.rb +4 -0
  55. data/app/models/path_node.rb +60 -0
  56. data/app/models/query.rb +193 -0
  57. data/app/models/query_history.rb +12 -0
  58. data/app/models/results.rb +48 -0
  59. data/app/models/sign_up_user.rb +25 -0
  60. data/app/models/spatial_and_time_attribute.rb +11 -0
  61. data/app/models/user.rb +115 -0
  62. data/app/models/user_mailer.rb +48 -0
  63. data/app/models/value_type.rb +3 -0
  64. data/app/models/variable.rb +70 -0
  65. data/app/models/virtual_node.rb +457 -0
  66. data/app/views/analysis/__help_analysis_tab.en.html +57 -0
  67. data/app/views/analysis/__help_draw_share.en.html +12 -0
  68. data/app/views/analysis/__help_draw_tab.en.html +6 -0
  69. data/app/views/analysis/_analysis_function_settings.rhtml +61 -0
  70. data/app/views/analysis/_analysis_settings.rhtml +28 -0
  71. data/app/views/analysis/_diagram.rhtml +70 -0
  72. data/app/views/analysis/_dimension_option.rhtml +59 -0
  73. data/app/views/analysis/_draw_general_settings.rhtml +217 -0
  74. data/app/views/analysis/_draw_settings.rhtml +73 -0
  75. data/app/views/analysis/_history.rhtml +19 -0
  76. data/app/views/analysis/_popular_diagrams.rhtml +42 -0
  77. data/app/views/analysis/_save_form.rhtml +44 -0
  78. data/app/views/analysis/_variables.rhtml +66 -0
  79. data/app/views/analysis/_variables_order.rhtml +56 -0
  80. data/app/views/analysis/index.rhtml +195 -0
  81. data/app/views/analysis/preview.rhtml +3 -0
  82. data/app/views/analysis/save.rhtml +73 -0
  83. data/app/views/analysis/show_diagram.rhtml +42 -0
  84. data/app/views/cross/_display_map.rhtml +201 -0
  85. data/app/views/cross/_result.rhtml +205 -0
  86. data/app/views/cross/_show_result_tree.rhtml +40 -0
  87. data/app/views/cross/_show_results.rhtml +80 -0
  88. data/app/views/cross/_style.rhtml +21 -0
  89. data/app/views/cross/index.rhtml +271 -0
  90. data/app/views/draw_method/_edit_form.rhtml +110 -0
  91. data/app/views/draw_method/create.rhtml +8 -0
  92. data/app/views/draw_method/details.rhtml +113 -0
  93. data/app/views/draw_method/edit.rhtml +8 -0
  94. data/app/views/draw_method/list.rhtml +80 -0
  95. data/app/views/explorer/_display_map.rhtml +199 -0
  96. data/app/views/explorer/_show_result_tree.rhtml +40 -0
  97. data/app/views/explorer/_show_results.rhtml +101 -0
  98. data/app/views/explorer/_style.rhtml +21 -0
  99. data/app/views/explorer/index.rhtml +214 -0
  100. data/app/views/finder/_children.html.erb +84 -0
  101. data/app/views/finder/_children_details.html.erb +74 -0
  102. data/app/views/finder/_children_details_tr.html.erb +196 -0
  103. data/app/views/finder/create_tree.html.erb +15 -0
  104. data/app/views/finder/flex.html.erb +52 -0
  105. data/app/views/finder/index.html.erb +47 -0
  106. data/app/views/finder/show_details.html.erb +3 -0
  107. data/app/views/finder/show_images.html.erb +3 -0
  108. data/app/views/function/_edit_form.rhtml +106 -0
  109. data/app/views/function/create.rhtml +8 -0
  110. data/app/views/function/details.rhtml +96 -0
  111. data/app/views/function/edit.rhtml +8 -0
  112. data/app/views/function/list.rhtml +80 -0
  113. data/app/views/group/add_member.rhtml +13 -0
  114. data/app/views/group/change_owner.rhtml +15 -0
  115. data/app/views/group/create.rhtml +11 -0
  116. data/app/views/group/delete_member.rhtml +14 -0
  117. data/app/views/group/list.rhtml +63 -0
  118. data/app/views/knowledge/_backup.rhtml +135 -0
  119. data/app/views/knowledge/_category.rhtml +58 -0
  120. data/app/views/knowledge/_category_list.rhtml +34 -0
  121. data/app/views/knowledge/_category_table.rhtml +23 -0
  122. data/app/views/knowledge/_comment.rhtml +64 -0
  123. data/app/views/knowledge/_comment_input_form.rhtml +19 -0
  124. data/app/views/knowledge/_comments.rhtml +84 -0
  125. data/app/views/knowledge/_form.rhtml +139 -0
  126. data/app/views/knowledge/_group_figure_form.rhtml +187 -0
  127. data/app/views/knowledge/_layout_figure.rhtml +61 -0
  128. data/app/views/knowledge/_layout_figures_in_a_row_above_text.rhtml +42 -0
  129. data/app/views/knowledge/_layout_figures_under_text.rhtml +45 -0
  130. data/app/views/knowledge/_layout_one_figure_above_text.rhtml +28 -0
  131. data/app/views/knowledge/_summary.rhtml +21 -0
  132. data/app/views/knowledge/edit.rhtml +37 -0
  133. data/app/views/knowledge/list.rhtml +287 -0
  134. data/app/views/knowledge/new.rhtml +23 -0
  135. data/app/views/knowledge/new_from_analysis.rhtml +21 -0
  136. data/app/views/knowledge/show.rhtml +196 -0
  137. data/app/views/layouts/gfdnavi.rhtml +105 -0
  138. data/app/views/nodes/_ancestors.html.erb +89 -0
  139. data/app/views/nodes/_description_methods_table.html.erb +75 -0
  140. data/app/views/nodes/_mode.html.erb +16 -0
  141. data/app/views/nodes/description.html.erb +181 -0
  142. data/app/views/nodes/description_methods.html.erb +1 -0
  143. data/app/views/nodes/edit.html.erb +73 -0
  144. data/app/views/nodes/index.html.erb +25 -0
  145. data/app/views/nodes/show.html.erb +20 -0
  146. data/app/views/search/_children_details_mapsearch.rhtml +68 -0
  147. data/app/views/search/_children_details_tr.rhtml +205 -0
  148. data/app/views/search/_show_grouplist.rhtml +74 -0
  149. data/app/views/search/_show_results.rhtml +43 -0
  150. data/app/views/search/_show_results_global.rhtml +36 -0
  151. data/app/views/search/_show_results_partial.rhtml +39 -0
  152. data/app/views/search/_show_results_partial_groupbyfile.rhtml +50 -0
  153. data/app/views/search/_show_variablelist.rhtml +28 -0
  154. data/app/views/search/mapsearch.rhtml +176 -0
  155. data/app/views/search/remapsearch.rjs +18 -0
  156. data/app/views/search/show_details.rhtml +3 -0
  157. data/app/views/user/add_user.rhtml +30 -0
  158. data/app/views/user/change_password.rhtml +25 -0
  159. data/app/views/user/edit.html.erb +50 -0
  160. data/app/views/user/index.rhtml +162 -0
  161. data/app/views/user/login.rhtml +41 -0
  162. data/app/views/user/logout.rhtml +4 -0
  163. data/app/views/user/signup.rhtml +36 -0
  164. data/app/views/user/signup_succeeded.rhtml +36 -0
  165. data/app/views/user_mailer/authorization_inform.rhtml +15 -0
  166. data/app/views/user_mailer/signup_accepted.rhtml +12 -0
  167. data/app/views/user_mailer/signup_confirm.rhtml +14 -0
  168. data/app/views/user_mailer/signup_inform.rhtml +13 -0
  169. data/app/views/user_mailer/signup_rejected.rhtml +11 -0
  170. data/app/views/work_flow/_push_wsdls.rhtml +55 -0
  171. data/app/views/work_flow/index.rhtml +46 -0
  172. data/config/database.yml.example +35 -0
  173. data/config/environment.rb +68 -0
  174. data/config/gfdnavi.yml.example +95 -0
  175. data/config/load_config.rb +151 -0
  176. data/config/routes.rb +35 -0
  177. data/consistency_checker.rb +129 -0
  178. data/data/gfdnavi_docs/how_to_draw_multiple_images.knlge +68 -0
  179. data/data/gfdnavi_docs/how_to_knowledge.knlge +138 -0
  180. data/data/gfdnavi_docs/how_to_write_document_about_Gfdnavi.knlge +30 -0
  181. data/data/samples/jmadata.SIGEN +8 -0
  182. data/data/samples/jmadata.yml +6 -0
  183. data/data/samples/jmadata/MSM-P/2006.nc.yml +2 -0
  184. data/data/samples/jmadata/MSM-P/2006.yml +17 -0
  185. data/data/samples/jmadata/MSM-P/2006/0101.nc +0 -0
  186. data/data/samples/jmadata/MSM-P/2006/0101.nc.yml +13 -0
  187. data/data/samples/jmadata/MSM-P/2006/0102.nc +0 -0
  188. data/data/samples/jmadata/MSM-P/2006/0103.nc +0 -0
  189. data/data/samples/jmadata/MSM-P/2006/0104.nc +0 -0
  190. data/data/samples/jmadata/MSM-P/2006/0105.nc +0 -0
  191. data/data/samples/jmadata/MSM-P/2006/010[1-3].nc.yml +2 -0
  192. data/data/samples/jmadata/MSM-P/2006/skip_data.rb +96 -0
  193. data/data/samples/jmadata/MSM-P/2006/skip_data.sh +6 -0
  194. data/data/samples/reanalysis.SIGEN +8 -0
  195. data/data/samples/reanalysis/era40.SIGEN +8 -0
  196. data/data/samples/reanalysis/era40.yml +2 -0
  197. data/data/samples/reanalysis/era40/t.jan.nc +0 -0
  198. data/data/samples/reanalysis/era40/t.jan.nc.yml +1 -0
  199. data/data/samples/reanalysis/ncep.SIGEN +9 -0
  200. data/data/samples/reanalysis/ncep/T.jan.100hPa.png +0 -0
  201. data/data/samples/reanalysis/ncep/T.jan.100hPa.png.yml +43 -0
  202. data/data/samples/reanalysis/ncep/T.jan.nc +0 -0
  203. data/data/samples/reanalysis/ncep/T.jan.zonal_mean.nc +0 -0
  204. data/data/samples/reanalysis/ncep/T.jan.zonal_mean.nc.yml +8 -0
  205. data/data/samples/reanalysis/ncep/T.jan_only_root.nc +0 -0
  206. data/data/samples/reanalysis/ncep/T.jan_only_root.nc.yml +4 -0
  207. data/data/samples/reanalysis/ncep/UV.jan.nc +0 -0
  208. data/data/samples/reanalysis/ncep/UV.jan.nc.yml +10 -0
  209. data/data/samples/reanalysis/ncep/UV.jan.nc.yml.ja +11 -0
  210. data/data/samples/sonde_operational.yml +5 -0
  211. data/data/samples/sonde_operational/std_plev.yml +12 -0
  212. data/data/samples/sonde_operational/std_plev/41256.spl.nc +0 -0
  213. data/data/samples/sonde_operational/std_plev/42410.spl.nc +0 -0
  214. data/data/samples/sonde_operational/std_plev/43333.spl.nc +0 -0
  215. data/data/samples/sonde_operational/std_plev/43346.spl.nc +0 -0
  216. data/data/samples/sonde_operational/std_plev/48698.spl.nc +0 -0
  217. data/data/samples/sonde_operational/std_plev/61641.spl.nc +0 -0
  218. data/data/samples/sonde_operational/std_plev/63741.spl.nc +0 -0
  219. data/data/samples/sonde_operational/std_plev/67083.spl.nc +0 -0
  220. data/data/samples/sonde_operational/std_plev/72261.spl.nc +0 -0
  221. data/data/samples/sonde_operational/std_plev/76805.spl.nc +0 -0
  222. data/data/samples/sonde_operational/std_plev/82193.spl.nc +0 -0
  223. data/data/samples/sonde_operational/std_plev/91165.spl.nc +0 -0
  224. data/data/samples/sonde_operational/std_plev/91610.spl.nc +0 -0
  225. data/data/samples/sonde_operational/std_plev/91948.spl.nc +0 -0
  226. data/data/samples/sonde_operational/std_plev/94294.spl.nc +0 -0
  227. data/db/NetCDFparser.rb +406 -0
  228. data/db/create_derived_spatial_attributes.sql +12 -0
  229. data/db/draw_methods/line.yml +6 -0
  230. data/db/draw_methods/scatter.yml +38 -0
  231. data/db/draw_methods/tone.yml +64 -0
  232. data/db/draw_methods/vector.yml +19 -0
  233. data/db/dump_db.rb +43 -0
  234. data/db/functions/additions.yml +10 -0
  235. data/db/functions/cut.yml +10 -0
  236. data/db/functions/division.yml +10 -0
  237. data/db/functions/mean.yml +28 -0
  238. data/db/functions/multiplication.yml +10 -0
  239. data/db/functions/stddev.yml +28 -0
  240. data/db/functions/subtraction.yml +10 -0
  241. data/db/migrate/001_initial_scheme.rb +289 -0
  242. data/db/migrate/002_add_open_id_authentication_tables.rb +20 -0
  243. data/db/register_directory_tree.rb +760 -0
  244. data/db/restore_db.rb +60 -0
  245. data/gfdnavi-install +828 -0
  246. data/install.rb +828 -0
  247. data/lib/activerecord_gfdnavi.rb +31 -0
  248. data/lib/basic_authorization.rb +50 -0
  249. data/lib/create_activeresources.rb +108 -0
  250. data/lib/execute_analysis.rb +472 -0
  251. data/lib/file_gfdnavi.rb +38 -0
  252. data/lib/gphys_gfdnavi.rb +81 -0
  253. data/lib/localdir.rb +110 -0
  254. data/lib/login_system.rb +110 -0
  255. data/lib/multibytes.rb +20 -0
  256. data/lib/narray_yaml.rb +58 -0
  257. data/lib/no_rdb_base.rb +40 -0
  258. data/lib/opendapdir.rb +171 -0
  259. data/lib/tar.rb +127 -0
  260. data/lib/tasks/clean.rake +65 -0
  261. data/lib/tasks/setup.rake +316 -0
  262. data/lib/tasks/update.rake +62 -0
  263. data/lib/vizshot_gfdnavi.rb +224 -0
  264. data/public/crossdomain.xml +4 -0
  265. data/public/flex/NodeTreeDescriptor.as +55 -0
  266. data/public/flex/TreeNode.as +253 -0
  267. data/public/flex/finder.mxml +304 -0
  268. data/public/flex/finder.swf +0 -0
  269. data/public/flex/gfdnavi.mxml +52 -0
  270. data/public/flex/gfdnavi.swf +0 -0
  271. data/public/images/Help_S-shots/dir_tree_with_add.jpg +0 -0
  272. data/public/images/analyze.gif +0 -0
  273. data/public/images/circle.gif +0 -0
  274. data/public/images/create_from_analysis_button.png +0 -0
  275. data/public/images/delete.png +0 -0
  276. data/public/images/down.png +0 -0
  277. data/public/images/drawbutton.gif +0 -0
  278. data/public/images/gfdnavi_home_logo.png +0 -0
  279. data/public/images/gfdnavi_logo_big.png +0 -0
  280. data/public/images/gfdnavi_logo_med.png +0 -0
  281. data/public/images/gfdnavi_logo_mini.png +0 -0
  282. data/public/images/gfdnavi_logo_nobg_big.png +0 -0
  283. data/public/images/gfdnavi_logo_nobg_med.png +0 -0
  284. data/public/images/gfdnavi_logo_nobg_small.png +0 -0
  285. data/public/images/gfdnavi_logo_small.png +0 -0
  286. data/public/images/gfdnavi_logo_xsmall.png +0 -0
  287. data/public/images/hbar.png +0 -0
  288. data/public/images/helpmark16.png +0 -0
  289. data/public/images/helpmark18.png +0 -0
  290. data/public/images/kikyu_g.gif +0 -0
  291. data/public/images/kikyu_r.gif +0 -0
  292. data/public/images/map_icon_g.gif +0 -0
  293. data/public/images/map_icon_r.gif +0 -0
  294. data/public/images/new_knowledge.png +0 -0
  295. data/public/images/openid.png +0 -0
  296. data/public/images/read_in_the_form.png +0 -0
  297. data/public/images/slider_f.gif +0 -0
  298. data/public/images/slider_f_red.gif +0 -0
  299. data/public/images/star1.gif +0 -0
  300. data/public/images/star2.gif +0 -0
  301. data/public/images/startanim.gif +0 -0
  302. data/public/images/stopanim.gif +0 -0
  303. data/public/images/tree/DL.png +0 -0
  304. data/public/images/tree/anal_viz.png +0 -0
  305. data/public/images/tree/analyze_visualize_checked_items.png +0 -0
  306. data/public/images/tree/binary.png +0 -0
  307. data/public/images/tree/details.png +0 -0
  308. data/public/images/tree/download_checked_items.png +0 -0
  309. data/public/images/tree/folder.png +0 -0
  310. data/public/images/tree/folder_close.gif +0 -0
  311. data/public/images/tree/image2.png +0 -0
  312. data/public/images/tree/knowledge.png +0 -0
  313. data/public/images/tree/knowledges.png +0 -0
  314. data/public/images/tree/last.gif +0 -0
  315. data/public/images/tree/last.png +0 -0
  316. data/public/images/tree/minus.gif +0 -0
  317. data/public/images/tree/minus_simple.gif +0 -0
  318. data/public/images/tree/none.gif +0 -0
  319. data/public/images/tree/none.png +0 -0
  320. data/public/images/tree/plus.gif +0 -0
  321. data/public/images/tree/plus_simple.gif +0 -0
  322. data/public/images/tree/show.png +0 -0
  323. data/public/images/tree/show_checked_items.png +0 -0
  324. data/public/images/tree/t.gif +0 -0
  325. data/public/images/tree/t.png +0 -0
  326. data/public/images/tree/tate.gif +0 -0
  327. data/public/images/tree/tate.png +0 -0
  328. data/public/images/up.png +0 -0
  329. data/public/images/vbar.png +0 -0
  330. data/public/images/white.bmp +0 -0
  331. data/public/images/x.gif +0 -0
  332. data/public/index.html +100 -0
  333. data/public/javascripts/AC_OETags.js +269 -0
  334. data/public/javascripts/analysis.js +751 -0
  335. data/public/javascripts/application.js +29 -0
  336. data/public/javascripts/directory_tree.js +102 -0
  337. data/public/javascripts/draw_method.js +83 -0
  338. data/public/javascripts/excanvas.js +704 -0
  339. data/public/javascripts/function.js +107 -0
  340. data/public/javascripts/gfdnavi.js +175 -0
  341. data/public/javascripts/knowledge.js +384 -0
  342. data/public/javascripts/mapsearch.js +313 -0
  343. data/public/javascripts/progress.js +42 -0
  344. data/public/javascripts/resizable_box.js +164 -0
  345. data/public/javascripts/slider.js +260 -0
  346. data/public/javascripts/tab.js +17 -0
  347. data/public/javascripts/work_flow.js +452 -0
  348. data/public/stylesheets/analysis.css +111 -0
  349. data/public/stylesheets/description.css +71 -0
  350. data/public/stylesheets/gfdnavi.css +141 -0
  351. data/public/stylesheets/knowledge.css +218 -0
  352. data/public/stylesheets/search.css +184 -0
  353. data/public/stylesheets/tree.css +45 -0
  354. data/public/stylesheets/tree_for_ie.css +3 -0
  355. data/public/stylesheets/work_flow.css +78 -0
  356. data/script/cleaner +11 -0
  357. data/script/server_ssl +131 -0
  358. data/test/fixtures/diagram_cache_data.yml +5 -0
  359. data/test/fixtures/diagram_cache_sessions.yml +6 -0
  360. data/test/fixtures/diagram_caches.yml +6 -0
  361. data/test/fixtures/directories.yml +57 -0
  362. data/test/fixtures/draw_parameters.yml +6 -0
  363. data/test/fixtures/function_arguments.yml +15 -0
  364. data/test/fixtures/function_outputs.yml +15 -0
  365. data/test/fixtures/functions.yml +29 -0
  366. data/test/fixtures/group_members.yml +33 -0
  367. data/test/fixtures/groups.yml +25 -0
  368. data/test/fixtures/images.yml +12 -0
  369. data/test/fixtures/keyword_attributes.yml +73 -0
  370. data/test/fixtures/knowledges.yml +10 -0
  371. data/test/fixtures/node_relations.yml +11 -0
  372. data/test/fixtures/nodes.yml +298 -0
  373. data/test/fixtures/sign_up_users.yml +8 -0
  374. data/test/fixtures/spatial_and_time_attributes.yml +29 -0
  375. data/test/fixtures/user_mailer/authorization_inform +11 -0
  376. data/test/fixtures/user_mailer/signup_accepted +10 -0
  377. data/test/fixtures/user_mailer/signup_confirm +17 -0
  378. data/test/fixtures/user_mailer/signup_inform +10 -0
  379. data/test/fixtures/user_mailer/signup_rejected +9 -0
  380. data/test/fixtures/users.yml +31 -0
  381. data/test/fixtures/value_types.yml +10 -0
  382. data/test/fixtures/variables.yml +17 -0
  383. data/test/functional/analysis_controller_test.rb +169 -0
  384. data/test/functional/description_controller_test.rb +18 -0
  385. data/test/functional/function_controller_test.rb +18 -0
  386. data/test/functional/group_controller_test.rb +18 -0
  387. data/test/functional/search_controller_test.rb +83 -0
  388. data/test/functional/user_controller_test.rb +77 -0
  389. data/test/functional/webservice_analysis_api_test.rb +12 -0
  390. data/test/functional/work_flow_controller_test.rb +18 -0
  391. data/test/test_helper.rb +28 -0
  392. data/test/unit/diagram_cache_datum_test.rb +10 -0
  393. data/test/unit/diagram_cache_session_test.rb +10 -0
  394. data/test/unit/diagram_cache_test.rb +10 -0
  395. data/test/unit/directory_test.rb +49 -0
  396. data/test/unit/draw_parameter_test.rb +10 -0
  397. data/test/unit/function_argument_test.rb +10 -0
  398. data/test/unit/function_output_test.rb +10 -0
  399. data/test/unit/function_test.rb +10 -0
  400. data/test/unit/group_test.rb +48 -0
  401. data/test/unit/image_test.rb +13 -0
  402. data/test/unit/keyword_attribute_test.rb +33 -0
  403. data/test/unit/knowledge_test.rb +13 -0
  404. data/test/unit/node_relation_test.rb +20 -0
  405. data/test/unit/node_test.rb +85 -0
  406. data/test/unit/sign_up_user_test.rb +20 -0
  407. data/test/unit/spatial_and_time_attribute_test.rb +29 -0
  408. data/test/unit/user_mailer_test.rb +101 -0
  409. data/test/unit/user_test.rb +134 -0
  410. data/test/unit/value_type_test.rb +10 -0
  411. data/test/unit/variable_test.rb +35 -0
  412. data/vendor/plugins/acts_as_list/README +23 -0
  413. data/vendor/plugins/acts_as_list/init.rb +3 -0
  414. data/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +256 -0
  415. data/vendor/plugins/acts_as_list/test/list_test.rb +332 -0
  416. data/vendor/plugins/acts_as_tree/README +26 -0
  417. data/vendor/plugins/acts_as_tree/Rakefile +22 -0
  418. data/vendor/plugins/acts_as_tree/init.rb +1 -0
  419. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +96 -0
  420. data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  421. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
  422. data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  423. data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  424. data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  425. data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  426. data/vendor/plugins/will_paginate/CHANGELOG +92 -0
  427. data/vendor/plugins/will_paginate/LICENSE +18 -0
  428. data/vendor/plugins/will_paginate/README.rdoc +131 -0
  429. data/vendor/plugins/will_paginate/Rakefile +62 -0
  430. data/vendor/plugins/will_paginate/examples/apple-circle.gif +0 -0
  431. data/vendor/plugins/will_paginate/examples/index.haml +69 -0
  432. data/vendor/plugins/will_paginate/examples/index.html +92 -0
  433. data/vendor/plugins/will_paginate/examples/pagination.css +90 -0
  434. data/vendor/plugins/will_paginate/examples/pagination.sass +91 -0
  435. data/vendor/plugins/will_paginate/init.rb +1 -0
  436. data/vendor/plugins/will_paginate/lib/will_paginate.rb +86 -0
  437. data/vendor/plugins/will_paginate/lib/will_paginate/array.rb +16 -0
  438. data/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +145 -0
  439. data/vendor/plugins/will_paginate/lib/will_paginate/core_ext.rb +32 -0
  440. data/vendor/plugins/will_paginate/lib/will_paginate/finder.rb +247 -0
  441. data/vendor/plugins/will_paginate/lib/will_paginate/named_scope.rb +132 -0
  442. data/vendor/plugins/will_paginate/lib/will_paginate/named_scope_patch.rb +39 -0
  443. data/vendor/plugins/will_paginate/lib/will_paginate/version.rb +9 -0
  444. data/vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb +373 -0
  445. data/vendor/plugins/will_paginate/will_paginate.gemspec +21 -0
  446. metadata +586 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/public/index.html ADDED
@@ -0,0 +1,100 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
6
+ <title>Gfdnavi</title>
7
+ <style type="text/css" media="screen">
8
+ body {
9
+ padding: 10px;
10
+ padding-top: 10px;
11
+ background-color: #e7f7ff;
12
+ font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
13
+ }
14
+ a{
15
+ text-decoration: none;
16
+ color: blue;
17
+ }
18
+
19
+ h1 {
20
+ font-family: Arial, Helvetica, Sans-serif, "�l�r �o�S�V�b�N", Osaka;
21
+ }
22
+ h2 {
23
+ font-family: Arial, Helvetica, Sans-serif, "�l�r �o�S�V�b�N", Osaka;
24
+ }
25
+ h3 {
26
+ font-family: Arial, Helvetica, Sans-serif, "�l�r �o�S�V�b�N", Osaka;
27
+ }
28
+
29
+ p {
30
+ margin-top: 4ex;
31
+ margin-bottom: 4ex;
32
+ }
33
+
34
+ a:hover {
35
+ background-color: #03c;
36
+ color: white;
37
+ }
38
+
39
+ #page {
40
+ width: 500px;
41
+ margin: 0;
42
+ margin-left: auto;
43
+ margin-right: auto;
44
+ }
45
+
46
+
47
+ </style>
48
+ </head>
49
+ <body>
50
+ <div id="page">
51
+ <center>
52
+ <p>
53
+ <h3><I>
54
+ Geophysical fluid data navigator
55
+ </I></h3>
56
+ </p>
57
+
58
+ <p>
59
+ <h1>
60
+ <IMG src="images/gfdnavi_logo_med.png" alt="Gfdnavi">
61
+ </h1>
62
+ </p>
63
+ </center>
64
+
65
+ <p>
66
+ <center>
67
+ <h2>
68
+ <a href="finder">Start from here</a>
69
+ </h2>
70
+ </center>
71
+ </p>
72
+ <br>
73
+
74
+ <hr>
75
+ <p>
76
+ <center>
77
+ <table cellpadding=10px>
78
+ <tr>
79
+ <td align=right>Powered by</td>
80
+ <td><a href="http://www.rubyonrails.com/">
81
+ <IMG src="images/rails.png" alt="rails" border=0></a></td>
82
+ </tr>
83
+ <tr>
84
+ <td align=right>Gfdnavi references:</td>
85
+ <td><a href="http://www.gfd-dennou.org/arch/davis/gfdnavi/">
86
+ <IMG src="images/gfdnavi_home_logo.png" alt="gfdnavi home" border=0></a></td>
87
+ </tr>
88
+ </table>
89
+ </center>
90
+ </p>
91
+
92
+ </div>
93
+ </body>
94
+ </html>
95
+
96
+
97
+
98
+
99
+
100
+
@@ -0,0 +1,269 @@
1
+ // Flash Player Version Detection - Rev 1.5
2
+ // Detect Client Browser type
3
+ // Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
4
+ var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
5
+ var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
6
+ var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
7
+
8
+ function ControlVersion()
9
+ {
10
+ var version;
11
+ var axo;
12
+ var e;
13
+
14
+ // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
15
+
16
+ try {
17
+ // version will be set for 7.X or greater players
18
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
19
+ version = axo.GetVariable("$version");
20
+ } catch (e) {
21
+ }
22
+
23
+ if (!version)
24
+ {
25
+ try {
26
+ // version will be set for 6.X players only
27
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
28
+
29
+ // installed player is some revision of 6.0
30
+ // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
31
+ // so we have to be careful.
32
+
33
+ // default to the first public version
34
+ version = "WIN 6,0,21,0";
35
+
36
+ // throws if AllowScripAccess does not exist (introduced in 6.0r47)
37
+ axo.AllowScriptAccess = "always";
38
+
39
+ // safe to call for 6.0r47 or greater
40
+ version = axo.GetVariable("$version");
41
+
42
+ } catch (e) {
43
+ }
44
+ }
45
+
46
+ if (!version)
47
+ {
48
+ try {
49
+ // version will be set for 4.X or 5.X player
50
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
51
+ version = axo.GetVariable("$version");
52
+ } catch (e) {
53
+ }
54
+ }
55
+
56
+ if (!version)
57
+ {
58
+ try {
59
+ // version will be set for 3.X player
60
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
61
+ version = "WIN 3,0,18,0";
62
+ } catch (e) {
63
+ }
64
+ }
65
+
66
+ if (!version)
67
+ {
68
+ try {
69
+ // version will be set for 2.X player
70
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
71
+ version = "WIN 2,0,0,11";
72
+ } catch (e) {
73
+ version = -1;
74
+ }
75
+ }
76
+
77
+ return version;
78
+ }
79
+
80
+ // JavaScript helper required to detect Flash Player PlugIn version information
81
+ function GetSwfVer(){
82
+ // NS/Opera version >= 3 check for Flash plugin in plugin array
83
+ var flashVer = -1;
84
+
85
+ if (navigator.plugins != null && navigator.plugins.length > 0) {
86
+ if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
87
+ var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
88
+ var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
89
+ var descArray = flashDescription.split(" ");
90
+ var tempArrayMajor = descArray[2].split(".");
91
+ var versionMajor = tempArrayMajor[0];
92
+ var versionMinor = tempArrayMajor[1];
93
+ if ( descArray[3] != "" ) {
94
+ tempArrayMinor = descArray[3].split("r");
95
+ } else {
96
+ tempArrayMinor = descArray[4].split("r");
97
+ }
98
+ var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
99
+ var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
100
+ }
101
+ }
102
+ // MSN/WebTV 2.6 supports Flash 4
103
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
104
+ // WebTV 2.5 supports Flash 3
105
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
106
+ // older WebTV supports Flash 2
107
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
108
+ else if ( isIE && isWin && !isOpera ) {
109
+ flashVer = ControlVersion();
110
+ }
111
+ return flashVer;
112
+ }
113
+
114
+ // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
115
+ function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
116
+ {
117
+ versionStr = GetSwfVer();
118
+ if (versionStr == -1 ) {
119
+ return false;
120
+ } else if (versionStr != 0) {
121
+ if(isIE && isWin && !isOpera) {
122
+ // Given "WIN 2,0,0,11"
123
+ tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
124
+ tempString = tempArray[1]; // "2,0,0,11"
125
+ versionArray = tempString.split(","); // ['2', '0', '0', '11']
126
+ } else {
127
+ versionArray = versionStr.split(".");
128
+ }
129
+ var versionMajor = versionArray[0];
130
+ var versionMinor = versionArray[1];
131
+ var versionRevision = versionArray[2];
132
+
133
+ // is the major.revision >= requested major.revision AND the minor version >= requested minor
134
+ if (versionMajor > parseFloat(reqMajorVer)) {
135
+ return true;
136
+ } else if (versionMajor == parseFloat(reqMajorVer)) {
137
+ if (versionMinor > parseFloat(reqMinorVer))
138
+ return true;
139
+ else if (versionMinor == parseFloat(reqMinorVer)) {
140
+ if (versionRevision >= parseFloat(reqRevision))
141
+ return true;
142
+ }
143
+ }
144
+ return false;
145
+ }
146
+ }
147
+
148
+ function AC_AddExtension(src, ext)
149
+ {
150
+ if (src.indexOf('?') != -1)
151
+ return src.replace(/\?/, ext+'?');
152
+ else
153
+ return src + ext;
154
+ }
155
+
156
+ function AC_Generateobj(objAttrs, params, embedAttrs)
157
+ {
158
+ var str = '';
159
+ if (isIE && isWin && !isOpera)
160
+ {
161
+ str += '<object ';
162
+ for (var i in objAttrs)
163
+ str += i + '="' + objAttrs[i] + '" ';
164
+ for (var i in params)
165
+ str += '><param name="' + i + '" value="' + params[i] + '" /> ';
166
+ str += '></object>';
167
+ } else {
168
+ str += '<embed ';
169
+ for (var i in embedAttrs)
170
+ str += i + '="' + embedAttrs[i] + '" ';
171
+ str += '> </embed>';
172
+ }
173
+
174
+ document.write(str);
175
+ }
176
+
177
+ function AC_FL_RunContent(){
178
+ var ret =
179
+ AC_GetArgs
180
+ ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
181
+ , "application/x-shockwave-flash"
182
+ );
183
+ AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
184
+ }
185
+
186
+ function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
187
+ var ret = new Object();
188
+ ret.embedAttrs = new Object();
189
+ ret.params = new Object();
190
+ ret.objAttrs = new Object();
191
+ for (var i=0; i < args.length; i=i+2){
192
+ var currArg = args[i].toLowerCase();
193
+
194
+ switch (currArg){
195
+ case "classid":
196
+ break;
197
+ case "pluginspage":
198
+ ret.embedAttrs[args[i]] = args[i+1];
199
+ break;
200
+ case "src":
201
+ case "movie":
202
+ args[i+1] = AC_AddExtension(args[i+1], ext);
203
+ ret.embedAttrs["src"] = args[i+1];
204
+ ret.params[srcParamName] = args[i+1];
205
+ break;
206
+ case "onafterupdate":
207
+ case "onbeforeupdate":
208
+ case "onblur":
209
+ case "oncellchange":
210
+ case "onclick":
211
+ case "ondblClick":
212
+ case "ondrag":
213
+ case "ondragend":
214
+ case "ondragenter":
215
+ case "ondragleave":
216
+ case "ondragover":
217
+ case "ondrop":
218
+ case "onfinish":
219
+ case "onfocus":
220
+ case "onhelp":
221
+ case "onmousedown":
222
+ case "onmouseup":
223
+ case "onmouseover":
224
+ case "onmousemove":
225
+ case "onmouseout":
226
+ case "onkeypress":
227
+ case "onkeydown":
228
+ case "onkeyup":
229
+ case "onload":
230
+ case "onlosecapture":
231
+ case "onpropertychange":
232
+ case "onreadystatechange":
233
+ case "onrowsdelete":
234
+ case "onrowenter":
235
+ case "onrowexit":
236
+ case "onrowsinserted":
237
+ case "onstart":
238
+ case "onscroll":
239
+ case "onbeforeeditfocus":
240
+ case "onactivate":
241
+ case "onbeforedeactivate":
242
+ case "ondeactivate":
243
+ case "type":
244
+ case "codebase":
245
+ case "id":
246
+ ret.objAttrs[args[i]] = args[i+1];
247
+ break;
248
+ case "width":
249
+ case "height":
250
+ case "align":
251
+ case "vspace":
252
+ case "hspace":
253
+ case "class":
254
+ case "title":
255
+ case "accesskey":
256
+ case "name":
257
+ case "tabindex":
258
+ ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
259
+ break;
260
+ default:
261
+ ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
262
+ }
263
+ }
264
+ ret.objAttrs["classid"] = classid;
265
+ if (mimeType) ret.embedAttrs["type"] = mimeType;
266
+ return ret;
267
+ }
268
+
269
+
@@ -0,0 +1,751 @@
1
+ var x_axis = null;
2
+ var y_axis = null;
3
+ var z_axis = null;
4
+ var anim_dim = null;
5
+ function selectXAxis() {
6
+ var select_x_axis = $('x_axis');
7
+ var select_y_axis = $('y_axis');
8
+ var select_z_axis = $('z_axis');
9
+ var select_anim_dim = $('anim_dim');
10
+ if ( select_x_axis ) {
11
+ var old = x_axis;
12
+ x_axis = select_x_axis.selectedIndex;
13
+ if ( x_axis==y_axis && draw_method.ndims>1 ) {
14
+ var ary = [0,1,2,3];
15
+ ary = ary.without(x_axis);
16
+ if ( draw_method.ndims>2 )
17
+ ary = ary.without( select_z_axis.selectedIndex );
18
+ if ( select_anim_dim && !select_anim_dim.disabled )
19
+ ary = ary.without( select_anim_dim.selectedIndex );
20
+ select_y_axis.selectedIndex = ary.min();
21
+ selectYAxis();
22
+ } else if ( x_axis==z_axis && draw_method.ndims>2 ) {
23
+ var ary = [0,1,2,3];
24
+ ary = ary.without(x_axis);
25
+ ary = ary.without( select_y_axis.selectedIndex );
26
+ if ( select_anim_dim && !select_anim_dim.disabled )
27
+ ary = ary.without( select_anim_dim.selectedIndex );
28
+ select_z_axis.selectedIndex = ary.min();
29
+ selectZAxis();
30
+ } else if ( x_axis==anim_dim && select_anim_dim && !select_anim_dim.disabled ) {
31
+ var ary = [0,1,2,3];
32
+ ary = ary.without(x_axis);
33
+ if ( draw_method.ndims>1 )
34
+ ary = ary.without( select_y_axis.selectedIndex );
35
+ if ( draw_method.ndims>2 )
36
+ ary = ary.without( select_z_axis.selectedIndex );
37
+ select_anim_dim.selectedIndex = ary.min();
38
+ selectAnimDim();
39
+ }
40
+ changeDimensionStatus(old);
41
+ }
42
+ }
43
+ function selectYAxis() {
44
+ var select_x_axis = $('x_axis');
45
+ var select_y_axis = $('y_axis');
46
+ var select_z_axis = $('z_axis');
47
+ var select_anim_dim = $('anim_dim');
48
+ if( select_y_axis && draw_method.ndims>1 ) {
49
+ var old = y_axis;
50
+ y_axis = select_y_axis.selectedIndex;
51
+ if ( x_axis==y_axis ) {
52
+ var ary = [0,1,2,3];
53
+ ary = ary.without(y_axis);
54
+ if ( draw_method.ndims > 2 );
55
+ ary = ary.without( select_z_axis.selectedIndex );
56
+ if ( select_anim_dim && !select_anim_dim.disabled )
57
+ ary = ary.without( select_anim_dim.selectedIndex );
58
+ select_x_axis.selectedIndex = ary.min();
59
+ selectXAxis();
60
+ } else if ( z_axis==y_axis ) {
61
+ var ary = [0,1,2,3];
62
+ ary = ary.without(x_axis);
63
+ ary = ary.without(y_axis);
64
+ if ( select_anim_dim && !select_anim_dim.disabled )
65
+ ary = ary.without( select_anim_dim.selectedIndex );
66
+ select_z_axis.selectedIndex = ary.min();
67
+ selectZAxis();
68
+ } else if ( y_axis==anim_dim && select_anim_dim && !select_anim_dim.disabled ) {
69
+ var ary = [0,1,2,3];
70
+ ary = ary.without(x_axis);
71
+ ary = ary.without(y_axis);
72
+ if ( draw_method.ndims > 2 );
73
+ ary = ary.without( select_z_axis.selectedIndex );
74
+ select_anim_dim.selectedIndex = ary.min();
75
+ selectAnimDim();
76
+ }
77
+ changeDimensionStatus(old);
78
+ }
79
+ }
80
+ function selectZAxis() {
81
+ var select_x_axis = $('x_axis');
82
+ var select_y_axis = $('y_axis');
83
+ var select_z_axis = $('z_axis');
84
+ var select_anim_dim = $('anim_dim');
85
+ if( select_z_axis && draw_method.ndims>2 ) {
86
+ var old = z_axis;
87
+ z_axis = select_z_axis.selectedIndex;
88
+ if ( x_axis==z_axis ) {
89
+ var ary = [0,1,2,3];
90
+ ary = ary.without(y_axis);
91
+ ary = ary.without(z_axis);
92
+ if ( select_anim_dim && !select_anim_dim.disabled )
93
+ ary = ary.without( select_anim_dim.selectedIndex );
94
+ select_x_axis.selectedIndex = ary.min();
95
+ selectXAxis();
96
+ } else if ( y_axis==z_axis ) {
97
+ var ary = [0,1,2,3];
98
+ ary = ary.without(y_axis);
99
+ ary = ary.without(z_axis);
100
+ if ( select_anim_dim && !select_anim_dim.disabled )
101
+ ary = ary.without( select_anim_dim.selectedIndex );
102
+ select_y_axis.selectedIndex = ary.min();
103
+ selectYAxis();
104
+ } else if ( z_axis==anim_dim && select_anim_dim && !select_anim_dim.disabled ) {
105
+ var ary = [0,1,2,3];
106
+ ary = ary.without(x_axis);
107
+ ary = ary.without(y_axis);
108
+ ary = ary.without(z_axis);
109
+ select_anim_dim.selectedIndex = ary.min();
110
+ selectAnimDim();
111
+ }
112
+ changeDimensionStatus(old);
113
+ }
114
+ }
115
+ function selectAnimDim() {
116
+ var select_x_axis = $('x_axis');
117
+ var select_y_axis = $('y_axis');
118
+ var select_z_axis = $('z_axis');
119
+ var select_anim_dim = $('anim_dim');
120
+ if ( select_anim_dim && !select_anim_dim.disabled ) {
121
+ var old = anim_dim;
122
+ anim_dim = select_anim_dim.selectedIndex;
123
+ if ( anim_dim==x_axis ) {
124
+ var ary = [0,1,2,3];
125
+ ary = ary.without(anim_dim);
126
+ if ( draw_method.ndims>1 )
127
+ ary = ary.without( select_y_axis.selectedIndex );
128
+ if ( draw_method.ndims>2 )
129
+ ary = ary.without( select_z_axis.selectedIndex );
130
+ select_x_axis.selectedIndex = ary.min();
131
+ selectXAxis();
132
+ } else if ( anim_dim==y_axis && draw_method.ndims>1 ) {
133
+ var ary = [0,1,2,3];
134
+ ary = ary.without(anim_dim);
135
+ ary = ary.without(x_axis);
136
+ if ( draw_method.ndims>2 )
137
+ ary = ary.without( select_z_axis.selectedIndex );
138
+ select_y_axis.selectedIndex = ary.min();
139
+ selectYAxis();
140
+ } else if ( anim_dim==z_axis && draw_method.ndims>1 ) {
141
+ var ary = [0,1,2,3];
142
+ ary = ary.without(anim_dim);
143
+ ary = ary.without(x_axis);
144
+ ary = ary.without(y_axis);
145
+ select_z_axis.selectedIndex = ary.min();
146
+ selectZAxis();
147
+ }
148
+ changeDimensionStatus(old);
149
+ }
150
+ }
151
+
152
+ var dimensions = new Array();
153
+ function changeDimensionStatus(old) {
154
+ var id;
155
+ var select_anim_dim = $('anim_dim');
156
+ if ( !(old==null) )
157
+ if( (old!=x_axis) && !(old==y_axis&&draw_method.ndims>1) && !(old==z_axis&&draw_method.ndims>2) && !(old==anim_dim&&!select_anim_dim.disabled))
158
+ dimensions[old].disableRight();
159
+ if ( !(x_axis==null) )
160
+ dimensions[x_axis].enableRight();
161
+ if ( draw_method.ndims>1 )
162
+ if ( !(y_axis==null) )
163
+ dimensions[y_axis].enableRight();
164
+ if ( draw_method.ndims>2 )
165
+ if ( !(z_axis==null) )
166
+ dimensions[z_axis].enableRight();
167
+ if ( !(anim_dim==null) )
168
+ if ( select_anim_dim && !select_anim_dim.disabled )
169
+ dimensions[anim_dim].enableRight();
170
+ }
171
+
172
+
173
+ function setAnim() {
174
+ var anim_check_box = $('analysis_anim');
175
+ var select_anim_dim = $('anim_dim');
176
+ var draw_button = $('draw_button_fig');
177
+ draw_button.src = "images/drawbutton.gif";
178
+ draw_button.onclick = drawExecute;
179
+ selectXAxis();
180
+ selectYAxis();
181
+ selectZAxis();
182
+ if ( anim_check_box ) {
183
+ if ( !anim_check_box.disabled && anim_check_box.checked ) {
184
+ anim_check_box.disabled = false;
185
+ select_anim_dim.disabled = false;
186
+ selectAnimDim();
187
+ draw_button.src = "images/startanim.gif";
188
+ draw_button.onclick = anim.start.bind(anim);
189
+ } else {
190
+ select_anim_dim.disabled = true;
191
+ select_anim_dim.disabled = true;
192
+ changeDimensionStatus(anim_dim);
193
+ }
194
+ }
195
+ }
196
+
197
+ var draw_method;
198
+ function selectDrawMethod() {
199
+ var anim_check_box = $('analysis_anim');
200
+ var select_anim_dim = $('anim_dim');
201
+
202
+ var draw_method_select = $('draw_method');
203
+
204
+ if (draw_method_select) {
205
+ var draw_method_options = draw_method_select.options;
206
+ draw_method = draw_method_options[draw_method_select.selectedIndex];
207
+ for(n=0;n<draw_method_options.length;n++)
208
+ Element.hide('draw_'+draw_method_options[n].value+'_settings');
209
+ Element.show('draw_'+draw_method.value+'_settings');
210
+
211
+ if( draw_method.ndims == 1 ) {
212
+ if ( $('y_axis') ) {
213
+ Element.hide('y_axis_row');
214
+ changeDimensionStatus(y_axis);
215
+ }
216
+ if ( $('z_axis') ) {
217
+ Element.hide('z_axis_row');
218
+ changeDimensionStatus(z_axis);
219
+ }
220
+ if ( select_anim_dim && select_anim_dim.length>1 ) {
221
+ anim_check_box.disabled = false;
222
+ select_anim_dim.disabled = false;
223
+ } else {
224
+ anim_check_box.disabled = true;
225
+ select_anim_dim.disabled = true;
226
+ }
227
+ setAnim();
228
+ } else if( draw_method.ndims == 2 ) {
229
+ Element.show('y_axis_row');
230
+ if ( $('z_axis') ) {
231
+ Element.hide('z_axis_row');
232
+ changeDimensionStatus(z_axis);
233
+ }
234
+ if ( select_anim_dim && select_anim_dim.length>2 ) {
235
+ anim_check_box.disabled = false;
236
+ select_anim_dim.disabled = false;
237
+ } else {
238
+ anim_check_box.disabled = true;
239
+ select_anim_dim.disabled = true;
240
+ }
241
+ setAnim();
242
+ } else {
243
+ Element.show('y_axis_row');
244
+ Element.show('z_axis_row');
245
+ if ( select_anim_dim && select_anim_dim.length>3 ) {
246
+ anim_check_box.disabled = false;
247
+ select_anim_dim.disabled = false;
248
+ } else {
249
+ anim_check_box.disabled = true;
250
+ select_anim_dim.disabled = true;
251
+ }
252
+ }
253
+ }
254
+ setAnim();
255
+ }
256
+
257
+
258
+ var variablesOrder = new Array();
259
+ function selectVarOrder(select,type,i) {
260
+ var new_num = select.selectedIndex;
261
+ var old_num = variablesOrder[type][i];
262
+ variablesOrder[type][i] = new_num;
263
+ for(n=0;n<variablesOrder[type].length;n++){
264
+ if(n==i) continue;
265
+ sel = $(type+'_variables_order_'+n);
266
+ if(sel.selectedIndex == new_num){
267
+ sel.options[old_num].selected = true;
268
+ variablesOrder[type][n] = old_num;
269
+ break;
270
+ }
271
+ }
272
+ }
273
+
274
+
275
+ function getKeyCode(e) {
276
+ if (window.event) {
277
+ return event.keyCode;
278
+ } else if (e.keyCode) {
279
+ return (e.keyCode!=0) ? e.keyCode : e.charCode;
280
+ } else if (e.which) {
281
+ return e.which;
282
+ }
283
+ }
284
+ function eventStop(e) {
285
+ if ( e ) {
286
+ e.preventDefault();
287
+ e.stopPropagation();
288
+ } else {
289
+ event.returnValue = false;
290
+ event.cancelBubble = true;
291
+ }
292
+ }
293
+
294
+ var executable;
295
+ function afterCallBack() {
296
+ if( action_type == 0 ) {
297
+ dimensions.each( function(v,i){ v.disableRight(); } );
298
+ selectDrawMethod();
299
+ Element.show("popular_diagrams");
300
+ if( executable )
301
+ Element.show("draw_button");
302
+ else
303
+ Element.hide("draw_button");
304
+ document.onkeypress = function(e){
305
+ if ( getKeyCode(e)==Event.KEY_RETURN ) {
306
+ $('draw_button').click();
307
+ Event.stop(e);
308
+ }
309
+ };
310
+ }
311
+ if( action_type == 1 ) {
312
+ Element.hide("popular_diagrams");
313
+ if( executable )
314
+ if ($("analysis_button"))
315
+ Element.show("analysis_button");
316
+ else
317
+ if ($("analysis_button"))
318
+ Element.hide("analysis_button");
319
+ document.onkeypress = function(e){
320
+ if ( getKeyCode(e)==Event.KEY_RETURN ) {
321
+ $('analysis_button').click();
322
+ Event.stop(e);
323
+ }
324
+ };
325
+
326
+ }
327
+ }
328
+
329
+
330
+ function openOptionMenu() {
331
+ Element.hide('open_menu_link');
332
+ Element.show('option_menu');
333
+ }
334
+
335
+ function closeOptionMenu() {
336
+ Element.hide('option_menu');
337
+ Element.show('open_menu_link');
338
+ }
339
+
340
+ shrinkHalf = function(element) {
341
+ element = $(element);
342
+ var options = Object.extend({
343
+ moveTransition: Effect.Transitions.sinoidal,
344
+ scaleTransition: Effect.Transitions.sinoidal,
345
+ opacityTransition: Effect.Transitions.none
346
+ }, arguments[1] || {});
347
+ var oldStyle = {
348
+ top: element.style.top,
349
+ left: element.style.left,
350
+ height: element.style.height,
351
+ width: element.style.width,
352
+ opacity: element.getInlineOpacity() };
353
+
354
+ var dims = element.getDimensions();
355
+ var moveX = dims.width / 2;
356
+ var moveY = dims.height / 2;
357
+ return new Effect.Parallel(
358
+ [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition:
359
+ options.opacityTransition }),
360
+ new Effect.Scale(element, 0.5, { sync: true, transition:
361
+ options.scaleTransition})
362
+ ], Object.extend({
363
+ beforeStartInternal: function(effect) {
364
+ effect.effects[0].element.makePositioned();
365
+ effect.effects[0].element.makeClipping(); },
366
+ afterFinishInternal: function(effect) {
367
+ effect.effects[0].element.undoClipping();
368
+ effect.effects[0].element.undoPositioned();
369
+ }
370
+ }, options)
371
+ );
372
+ }
373
+
374
+
375
+
376
+ function showOption(category, name) {
377
+ var first = arguments[2];
378
+ full_name = category+"_"+name+"_option";
379
+ var element = $(full_name);
380
+ Element.show(element);
381
+ Element.hide("add_"+full_name+"_link");
382
+ Element.show("hide_"+full_name+"_link");
383
+ if( !first )
384
+ new Effect.Highlight(element, {
385
+ duration: 3.0
386
+ });
387
+ setCookie("option_" + category + "_" + name, "true", null);
388
+ }
389
+
390
+ function hideOption(category, name) {
391
+ full_name = category+"_"+name+"_option";
392
+ Element.hide("hide_"+full_name+"_link");
393
+ Element.show("add_"+full_name+"_link");
394
+ Effect.Fade(full_name);
395
+ setCookie("option_" + category + "_" + name, "false", null);
396
+ }
397
+
398
+ function showOptions(category) {
399
+ Element.show(category+"_options");
400
+ Element.show(category+"_options_menu");
401
+ }
402
+
403
+ function hideOptions(category) {
404
+ Element.hide(category+"_options");
405
+ Element.hide(category+"_options_menu");
406
+ }
407
+
408
+ var action_type;
409
+ function changeActionType(type) {
410
+ action_type = type;
411
+ new Ajax.Request(gfdnaviUrlRoot + "/analysis/action_type_selected",
412
+ {asynchronous: true,
413
+ evalScripts: true,
414
+ parameters: 'action_type=' + type,
415
+ method: 'post',
416
+ onLoading: function(){ progressText.start($('progress')); },
417
+ onComplete: function(res){ progressText.stop(); },
418
+ onFailure: function(res){
419
+ $('messages').update('error occured in server<br><div class="information"><p>'+res.responseText+"</p></div>");
420
+ }
421
+ });
422
+ return false;
423
+ }
424
+
425
+ function changeVariable() {
426
+ form = $('variables_body');
427
+ new Ajax.Request(gfdnaviUrlRoot + "/analysis/variables_selected",
428
+ {asynchronous: true,
429
+ evalScripts: true,
430
+ parameters: Form.serialize(form),
431
+ method: 'post',
432
+ onLoading: function(){ progressText.start($('progress')); },
433
+ onComplete: function(res){ progressText.stop(); },
434
+ onFailure: function(res){
435
+ $('messages').update('error occured in server<br><div class="information"><p>'+res.responseText+"</p></div>");
436
+ }
437
+ });
438
+ return false;
439
+ }
440
+
441
+ var actionButton = null;
442
+ var onAction = false;
443
+ var onDraw = false;
444
+ var onAnim = false;
445
+ actionExecuteHook = {
446
+ onLoading: function(){
447
+ if ( actionButton ) actionButton.disabled = true;
448
+ if ( !onAnim ) progressText.start($('progress'));
449
+ onDraw = true;
450
+ onAction = true;
451
+ },
452
+ onComplete: function(res){
453
+ if ( onAnim ) {
454
+ if (anim) anim.moveDial();
455
+ } else {
456
+ progressText.stop();
457
+ }
458
+ if ( actionButton ) {
459
+ actionButton.disabled = false;
460
+ actionButton = null;
461
+ }
462
+ onAction = false;
463
+ },
464
+ onFailure: function(res){
465
+ $('messages').update('error occured in server<br><div class="information"><p>'+res.responseText+"</p></div>");
466
+ }
467
+ }
468
+
469
+ var funcs = null;
470
+ var funcVNums = null;
471
+ function selectFunction(select) {
472
+ var index = select.selectedIndex;
473
+ var obj = funcs[index];
474
+ var html = "";
475
+ var elm;
476
+ for(i=0;i<funcs.length;i++) {
477
+ elm = $('function_arguments_'+funcs[i].name);
478
+ Element.hide(elm);
479
+ // Form.disable(elm);
480
+ Form.getElements(elm).invoke('disable');
481
+ }
482
+ elm = $('function_arguments_'+obj.name);
483
+ Element.show(elm);
484
+ // Form.enable(elm);
485
+ Form.getElements(elm).invoke('enable');
486
+
487
+ for(i=0;i<funcVNums.length;i++){
488
+ elm = $('function_variables_order_'+funcVNums[i]);
489
+ Element.hide(elm);
490
+ // Form.disable(elm);
491
+ Form.getElements(elm).invoke('disable');
492
+ }
493
+ Element.show(obj.order);
494
+ // Form.enable(obj.order);
495
+ Form.getElements(obj.order).invoke('enable');
496
+
497
+ return false;
498
+ }
499
+
500
+ function drawKnowledgeFromAnalysisButton() {
501
+ var node = document.getElementById('create_knowledge_from_analysis');
502
+ if (node.childNodes.length == 0) {
503
+ var form = document.createElement('form');
504
+ form.setAttribute("action", gfdnaviUrlRoot + "/knowledge/new_from_analysis");
505
+ form.setAttribute("method", "post");
506
+ var br1 = document.createElement('br');
507
+ var br2 = document.createElement('br');
508
+ var inputButton = document.createElement('input');
509
+ inputButton.setAttribute("type", "image");
510
+ inputButton.setAttribute("src", gfdnaviUrlRoot + "/images/create_from_analysis_button.png");
511
+ inputButton.setAttribute("name", "create_a_knowledge_document");
512
+ inputButton.setAttribute("alt", "Create a Knowledge Document");
513
+ inputButton.setAttribute("title", "Create a Knowledge Document");
514
+ inputButton.setAttribute("align", "absmiddle");
515
+ var inputHidden = document.createElement('input');
516
+ inputHidden.setAttribute("type", "hidden");
517
+ inputHidden.setAttribute("name", "from_analysis");
518
+ inputHidden.setAttribute("value", "from_analysis");
519
+
520
+ form.appendChild(inputButton);
521
+ form.appendChild(inputHidden);
522
+ node.appendChild(br1);
523
+ node.appendChild(br2);
524
+ node.appendChild(form);
525
+ }
526
+ }
527
+
528
+ function deleteKnowledgeFromAnalysisButton() {
529
+ var node = document.getElementById('create_knowledge_from_analysis');
530
+ if (node.childNodes.length != 0) {
531
+ node.removeChild(node.lastChild);
532
+ node.removeChild(node.lastChild);
533
+ node.removeChild(node.lastChild);
534
+ }
535
+ }
536
+
537
+ var benchmark = null;
538
+ function drawExecute() {
539
+ if (actionButton) actionButton.disable = false;
540
+ actionButton = $('draw_button');
541
+ actionExecute('action_type=draw');
542
+ if (benchmark) benchMark.start();
543
+ return false;
544
+ }
545
+ function analysisExecute() {
546
+ if (actionButton) actionButton.disable = false;
547
+ actionButton = $('analysis_button');
548
+ actionExecute('action_type=analysis');
549
+ if (benchmark) benchMark.start();
550
+ return false;
551
+ }
552
+ function actionExecute(param) {
553
+ var action_form = $('action_form');
554
+ var variable_form = $('variables_body');
555
+ new Ajax.Request(gfdnaviUrlRoot + "/analysis/execute",
556
+ Object.extend({
557
+ asynchronous:true,
558
+ evalScripts:true,
559
+ parameters: Form.serialize(variable_form)+'&'+Form.serialize(action_form)+'&'+param,
560
+ method: 'get'
561
+ }, actionExecuteHook)
562
+ );
563
+ return false;
564
+ }
565
+
566
+ var Anim = Class.create();
567
+ Anim.prototype = {
568
+ initialize: function() {
569
+ this.interval = 1000;
570
+ this.intervalId = null;
571
+ },
572
+ start: function() {
573
+ this.clear();
574
+ var anim_dim = $('anim_dim').selectedIndex;
575
+ var dim = dimensions[anim_dim];
576
+ onAnim = true;
577
+ var action_form = $('action_form');
578
+ var variable_form = $('variables_body');
579
+ var params = Form.serialize(variable_form)+'&'+Form.serialize(action_form);
580
+ var min = dim.left_obj.dial.index;
581
+ var max = dim.right_obj.dial.index;
582
+ if ( this.params!=params || this.dim!=dim || this.min!=min || this.max!=max ) {
583
+ new Ajax.Request(gfdnaviUrlRoot + "/analysis/clear_diagrams",
584
+ {evalScripts:false,
585
+ onLoading: function(){ onAction = true; },
586
+ onComplete: function(){ onAction = false; }
587
+ }
588
+ );
589
+ this.ary = dim.ary;
590
+ this.min = min;
591
+ this.max = max;
592
+ this.index = this.min;
593
+ this.diagrams = new Array();
594
+ this.diagramIndex = null;
595
+ this.params = params;
596
+ this.dim = dim;
597
+ this.firstLoop = true;
598
+ }
599
+ var free_obj = dim.free_obj;
600
+ free_obj.dial.index = this.index;
601
+ this.moveDial();
602
+ free_obj.dial_dom.show();
603
+ this.intervalId = setInterval(this.draw.bind(this), this.interval);
604
+ var button = $('draw_button_fig');
605
+ button.src = 'images/stopanim.gif';
606
+ button.onclick = this.stop.bind(this);
607
+ },
608
+ stop: function() {
609
+ this.clear();
610
+ var button = $('draw_button_fig');
611
+ this.dim.free_obj.dial_dom.hide();
612
+ button.src = 'images/startanim.gif';
613
+ button.onclick = this.start.bind(this);
614
+ },
615
+ clear: function() {
616
+ if ( this.intervalId ) {
617
+ clearInterval( this.intervalId );
618
+ this.intevalId = null;
619
+ }
620
+ onAnim = false;
621
+ },
622
+ clearAll: function() {
623
+ this.clear();
624
+ this.params = null;
625
+ },
626
+ draw: function() {
627
+ if ( onAction || onDraw ) return;
628
+ if ( this.index > this.max ) {
629
+ if ( this.firstLoop )
630
+ this.firstLoop = false;
631
+ this.index = this.min;
632
+ }
633
+ this.dim.free_obj.dial.index = this.index;
634
+ if ( this.firstLoop ) {
635
+ actionExecute( 'anim[val]=' + this.ary[this.index] + '&action_type=draw&disable_benchmark=true' );
636
+ } else {
637
+ this.next();
638
+ }
639
+ this.index += 1;
640
+ },
641
+ next: function() {
642
+ if ( this.diagramIndex == null ) {
643
+ this.diagramIndex = 0;
644
+ } else {
645
+ Element.hide( this.diagrams[this.diagramIndex] );
646
+ this.diagramIndex += 1;
647
+ if ( this.diagramIndex >= this.diagrams.length ) {
648
+ this.diagramIndex = 0;
649
+ }
650
+ }
651
+ Element.show( this.diagrams[this.diagramIndex] );
652
+ this.moveDial();
653
+ },
654
+ moveDial: function() {
655
+ this.dim.moveFreeDial();
656
+ }
657
+ }
658
+ var anim = new Anim();
659
+
660
+ function actionDropDiagram(upper, lower) {
661
+ if (actionButton) actionButton.disable = false;
662
+ actionButton = null;
663
+ new Ajax.Request(gfdnaviUrlRoot + '/analysis/pile_up?upper=' + upper + '&lower=' + lower,
664
+ Object.extend({
665
+ asynchronous:true,
666
+ evalScripts:true
667
+ }, actionExecuteHook)
668
+ );
669
+ }
670
+
671
+
672
+ var num_keywords = 0;
673
+ function addRowKeyword() {
674
+ var row;
675
+ num_keywords = num_keywords + 1;
676
+ row = "<tr>\n"
677
+ row += "<td><input type='text' name='keywords[" + num_keywords + "][name]' id='save_keywords_" + num_keywords + "_name'/></td>\n"
678
+ row += "<td><input type='text' name='keywords[" + num_keywords + "][value]' id='save_keywords_" + num_keywords + "_value'/></td>\n"
679
+ row += "</tr>\n"
680
+ new Insertion.Bottom($('save_keywords'),row);
681
+ }
682
+
683
+
684
+
685
+ var map = null;
686
+ var marker0;
687
+ var marker1;
688
+ var polyline;
689
+ function show_gmap(){
690
+ if (typeof(google)=="undefined") return;
691
+ Element.show('gmap');
692
+ if (map) {
693
+ moveMarker0();
694
+ moveMarker1();
695
+ } else {
696
+ Element.show('gmap');
697
+ map = new google.maps.Map2(document.getElementById("map"));
698
+ map.setCenter(new google.maps.LatLng(0,180), 0);
699
+ map.addControl(new google.maps.LargeMapControl());
700
+ map.addControl(new google.maps.MapTypeControl());
701
+ var ll = new google.maps.LatLng(dimensions[1].getLeft(),dimensions[0].getLeft());
702
+ var rr = new google.maps.LatLng(dimensions[1].getRight(),dimensions[0].getRight());
703
+ marker0 = new google.maps.Marker(ll, {draggable: true});
704
+ marker1 = new google.maps.Marker(rr, {draggable: true});
705
+ google.maps.Event.addListener(marker0, "dragend", function() {
706
+ var point = marker0.getPoint();
707
+ var lng = point.lng();
708
+ if (lng < 0) lng = lng + 360;
709
+ dimensions[0].setLeft(lng);
710
+ dimensions[1].setLeft(point.lat());
711
+ //drawLine();
712
+ });
713
+ google.maps.Event.addListener(marker1, "dragend", function() {
714
+ var point = marker1.getPoint();
715
+ var lng = point.lng();
716
+ if (lng < 0) lng = lng + 360;
717
+ dimensions[0].setRight(lng);
718
+ dimensions[1].setRight(point.lat());
719
+ //drawLine();
720
+ });
721
+ map.addOverlay(marker0);
722
+ //map.addOverlay(marker1);
723
+ //drawLine();
724
+ dimensions[0].leftHandler = moveMarker0;
725
+ dimensions[1].leftHandler = moveMarker0;
726
+ dimensions[0].rightHandler = moveMarker1;
727
+ dimensions[1].rightHandler = moveMarker1;
728
+ }
729
+ }
730
+
731
+ function drawLine() {
732
+ if (polyline)
733
+ map.removeOverlay(polyline);
734
+ var l0 = dimensions[0].getLeft();
735
+ var l1 = dimensions[1].getLeft();
736
+ var r0 = dimensions[0].getRight();
737
+ var r1 = dimensions[1].getRight();
738
+ var ll = new google.maps.LatLng(l1,l0);
739
+ var rr = new google.maps.LatLng(r1,r0);
740
+ var lr = new google.maps.LatLng(l1,r0);
741
+ var rl = new google.maps.LatLng(r1,l0);
742
+ polyline = new google.maps.Polyline([ll,lr,rr,rl,ll], "#ff0000", 2);
743
+ map.addOverlay(polyline);
744
+ }
745
+
746
+ function moveMarker0() {
747
+ marker0.setLatLng(new google.maps.LatLng(dimensions[1].getLeft(),dimensions[0].getLeft()));
748
+ }
749
+ function moveMarker1() {
750
+ marker1.setLatLng(new google.maps.LatLng(dimensions[1].getRight(),dimensions[0].getRight()));
751
+ }