limelight 0.5.5-java → 0.6.14-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. data/LICENSE +19 -0
  2. data/bin/limelight +7 -3
  3. data/ruby/lib/limelight-rb.jar +0 -0
  4. data/ruby/lib/limelight.jar +0 -0
  5. data/ruby/lib/limelight.rb +48 -0
  6. data/{lib → ruby/lib}/limelight/animation.rb +3 -3
  7. data/ruby/lib/limelight/builtin/players.rb +21 -0
  8. data/ruby/lib/limelight/builtin/players/button.rb +7 -0
  9. data/ruby/lib/limelight/builtin/players/check_box.rb +24 -0
  10. data/ruby/lib/limelight/builtin/players/combo_box.rb +50 -0
  11. data/ruby/lib/limelight/builtin/players/curtains.rb +12 -0
  12. data/ruby/lib/limelight/builtin/players/image.rb +38 -0
  13. data/ruby/lib/limelight/builtin/players/radio_button.rb +36 -0
  14. data/ruby/lib/limelight/builtin/players/stage_mover.rb +19 -0
  15. data/ruby/lib/limelight/builtin/players/stage_sizer.rb +23 -0
  16. data/ruby/lib/limelight/builtin/players/text_area.rb +10 -0
  17. data/ruby/lib/limelight/builtin/players/text_box.rb +10 -0
  18. data/{lib → ruby/lib}/limelight/dsl/build_exception.rb +2 -2
  19. data/{lib → ruby/lib}/limelight/dsl/menu_bar.rb +3 -3
  20. data/{lib → ruby/lib}/limelight/dsl/prop_builder.rb +25 -16
  21. data/{lib → ruby/lib}/limelight/dsl/stage_builder.rb +4 -4
  22. data/{lib → ruby/lib}/limelight/dsl/styles_builder.rb +14 -18
  23. data/{lib → ruby/lib}/limelight/file_chooser.rb +10 -10
  24. data/{lib → ruby/lib}/limelight/file_filter.rb +6 -6
  25. data/ruby/lib/limelight/java_couplings.rb +70 -0
  26. data/{lib → ruby/lib}/limelight/java_util.rb +6 -6
  27. data/{lib → ruby/lib}/limelight/limelight_exception.rb +3 -3
  28. data/ruby/lib/limelight/limelight_init.rb +24 -0
  29. data/ruby/lib/limelight/main.rb +15 -0
  30. data/ruby/lib/limelight/mouse.rb +76 -0
  31. data/ruby/lib/limelight/optionable.rb +42 -0
  32. data/{lib → ruby/lib}/limelight/paint_action.rb +8 -8
  33. data/{lib → ruby/lib}/limelight/pen.rb +7 -7
  34. data/ruby/lib/limelight/player.rb +148 -0
  35. data/ruby/lib/limelight/player_recruiter.rb +54 -0
  36. data/ruby/lib/limelight/production.rb +257 -0
  37. data/ruby/lib/limelight/prop.rb +344 -0
  38. data/ruby/lib/limelight/scene.rb +120 -0
  39. data/ruby/lib/limelight/specs/spec_helper.rb +191 -0
  40. data/ruby/lib/limelight/stage.rb +268 -0
  41. data/ruby/lib/limelight/string.rb +32 -0
  42. data/{lib → ruby/lib}/limelight/studio.rb +4 -3
  43. data/ruby/lib/limelight/style.rb +294 -0
  44. data/ruby/lib/limelight/templates/sources/features/step_definitions/limelight_steps.rb.template +47 -0
  45. data/ruby/lib/limelight/templates/sources/features/support/env.rb.template +35 -0
  46. data/{lib → ruby/lib}/limelight/templates/sources/freezing/limelight_init.rb.template +0 -0
  47. data/{lib → ruby/lib}/limelight/templates/sources/production/production.rb.template +2 -2
  48. data/{lib → ruby/lib}/limelight/templates/sources/production/spec/spec_helper.rb.template +0 -0
  49. data/{lib → ruby/lib}/limelight/templates/sources/production/stages.rb.template +0 -0
  50. data/{lib → ruby/lib}/limelight/templates/sources/production/styles.rb.template +0 -0
  51. data/ruby/lib/limelight/templates/sources/project/Rakefile.template +15 -0
  52. data/ruby/lib/limelight/templates/sources/project/spec_helper.rb.template +12 -0
  53. data/{lib → ruby/lib}/limelight/templates/sources/scene/props.rb.template +0 -0
  54. data/{lib → ruby/lib}/limelight/templates/sources/scene/styles.rb.template +0 -0
  55. data/{lib → ruby/lib}/limelight/templates/sources/scene_spec/scene_spec.rb.template +0 -0
  56. data/ruby/lib/limelight/theater.rb +76 -0
  57. data/{lib → ruby/lib}/limelight/util.rb +6 -25
  58. data/ruby/lib/limelight/util/hashes.rb +39 -0
  59. data/ruby/lib/limelight/util/map_hash.rb +191 -0
  60. data/ruby/lib/limelight/util/string_hash.rb +64 -0
  61. metadata +97 -390
  62. data/bin/icons/icon.ico +0 -0
  63. data/bin/icons/icon_48.gif +0 -0
  64. data/bin/icons/limelight.icns +0 -0
  65. data/bin/ll +0 -10
  66. data/bin/ll.bat +0 -5
  67. data/lib/init.rb +0 -12
  68. data/lib/limelight.jar +0 -0
  69. data/lib/limelight/builtin/players.rb +0 -16
  70. data/lib/limelight/builtin/players/button.rb +0 -39
  71. data/lib/limelight/builtin/players/check_box.rb +0 -50
  72. data/lib/limelight/builtin/players/combo_box.rb +0 -89
  73. data/lib/limelight/builtin/players/combo_box_popup_list.rb +0 -19
  74. data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +0 -21
  75. data/lib/limelight/builtin/players/curtains.rb +0 -23
  76. data/lib/limelight/builtin/players/image.rb +0 -54
  77. data/lib/limelight/builtin/players/password_box.rb +0 -34
  78. data/lib/limelight/builtin/players/radio_button.rb +0 -65
  79. data/lib/limelight/builtin/players/stage_mover.rb +0 -31
  80. data/lib/limelight/builtin/players/stage_sizer.rb +0 -34
  81. data/lib/limelight/builtin/players/text_area.rb +0 -34
  82. data/lib/limelight/builtin/players/text_box.rb +0 -34
  83. data/lib/limelight/builtin/styles.rb +0 -35
  84. data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +0 -14
  85. data/lib/limelight/builtin/utilities_production/alert/props.rb +0 -8
  86. data/lib/limelight/builtin/utilities_production/alert/styles.rb +0 -14
  87. data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +0 -20
  88. data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +0 -12
  89. data/lib/limelight/builtin/utilities_production/production.rb +0 -66
  90. data/lib/limelight/builtin/utilities_production/stages.rb +0 -12
  91. data/lib/limelight/builtin/utilities_production/styles.rb +0 -53
  92. data/lib/limelight/button_group_cache.rb +0 -11
  93. data/lib/limelight/casting_director.rb +0 -112
  94. data/lib/limelight/commands/command.rb +0 -168
  95. data/lib/limelight/commands/create_command.rb +0 -98
  96. data/lib/limelight/commands/freeze_command.rb +0 -131
  97. data/lib/limelight/commands/help_command.rb +0 -61
  98. data/lib/limelight/commands/open_command.rb +0 -60
  99. data/lib/limelight/commands/pack_command.rb +0 -53
  100. data/lib/limelight/commands/unpack_command.rb +0 -44
  101. data/lib/limelight/commands/version_command.rb +0 -31
  102. data/lib/limelight/data.rb +0 -37
  103. data/lib/limelight/file_loader.rb +0 -46
  104. data/lib/limelight/gems.rb +0 -51
  105. data/lib/limelight/java_couplings.rb +0 -67
  106. data/lib/limelight/limelight_init.rb +0 -12
  107. data/lib/limelight/main.rb +0 -105
  108. data/lib/limelight/producer.rb +0 -233
  109. data/lib/limelight/production.rb +0 -203
  110. data/lib/limelight/prop.rb +0 -367
  111. data/lib/limelight/scene.rb +0 -151
  112. data/lib/limelight/specs/spec_helper.rb +0 -136
  113. data/lib/limelight/specs/test_scene_opener.rb +0 -63
  114. data/lib/limelight/stage.rb +0 -353
  115. data/lib/limelight/string.rb +0 -38
  116. data/lib/limelight/styles/style.rb +0 -288
  117. data/lib/limelight/templates/production_templater.rb +0 -49
  118. data/lib/limelight/templates/scene_templater.rb +0 -47
  119. data/lib/limelight/templates/sources/production/init.rb.template +0 -15
  120. data/lib/limelight/templates/templater.rb +0 -131
  121. data/lib/limelight/templates/templater_logger.rb +0 -39
  122. data/lib/limelight/theater.rb +0 -109
  123. data/lib/limelight/util/downloader.rb +0 -115
  124. data/lib/limelight/version.rb +0 -20
  125. data/productions/examples/8thlight.com/about/about.txt +0 -24
  126. data/productions/examples/8thlight.com/about/props.rb +0 -11
  127. data/productions/examples/8thlight.com/about/styles.rb +0 -2
  128. data/productions/examples/8thlight.com/footer.rb +0 -6
  129. data/productions/examples/8thlight.com/home/props.rb +0 -28
  130. data/productions/examples/8thlight.com/home/styles.rb +0 -2
  131. data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
  132. data/productions/examples/8thlight.com/images/bg.jpg +0 -0
  133. data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
  134. data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
  135. data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
  136. data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
  137. data/productions/examples/8thlight.com/images/header.jpg +0 -0
  138. data/productions/examples/8thlight.com/images/moses.jpg +0 -0
  139. data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
  140. data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
  141. data/productions/examples/8thlight.com/menu.rb +0 -11
  142. data/productions/examples/8thlight.com/services/props.rb +0 -11
  143. data/productions/examples/8thlight.com/services/services.txt +0 -8
  144. data/productions/examples/8thlight.com/services/styles.rb +0 -2
  145. data/productions/examples/8thlight.com/stages.rb +0 -8
  146. data/productions/examples/8thlight.com/styles.rb +0 -210
  147. data/productions/examples/calculator/players/button.rb +0 -24
  148. data/productions/examples/calculator/players/calculator.rb +0 -15
  149. data/productions/examples/calculator/players/calculator_model.rb +0 -13
  150. data/productions/examples/calculator/props.rb +0 -23
  151. data/productions/examples/calculator/styles.rb +0 -36
  152. data/productions/examples/langstons_ant/html_javascript/ant.css +0 -39
  153. data/productions/examples/langstons_ant/html_javascript/ant.html +0 -22
  154. data/productions/examples/langstons_ant/html_javascript/ant.js +0 -23
  155. data/productions/examples/langstons_ant/init.rb +0 -4
  156. data/productions/examples/langstons_ant/players/ant.rb +0 -103
  157. data/productions/examples/langstons_ant/players/log.rb +0 -29
  158. data/productions/examples/langstons_ant/players/start_stop_button.rb +0 -37
  159. data/productions/examples/langstons_ant/players/world.rb +0 -35
  160. data/productions/examples/langstons_ant/props.rb +0 -22
  161. data/productions/examples/langstons_ant/styles.rb +0 -104
  162. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +0 -10
  163. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +0 -32
  164. data/productions/examples/sandbox/alerts/incompatible_production/production.rb +0 -52
  165. data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +0 -16
  166. data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +0 -8
  167. data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +0 -20
  168. data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +0 -15
  169. data/productions/examples/sandbox/alerts/players/alerts.rb +0 -17
  170. data/productions/examples/sandbox/alerts/props.rb +0 -10
  171. data/productions/examples/sandbox/alerts/styles.rb +0 -46
  172. data/productions/examples/sandbox/background_images/props.rb +0 -22
  173. data/productions/examples/sandbox/background_images/styles.rb +0 -40
  174. data/productions/examples/sandbox/click_me/players/chromaton.rb +0 -52
  175. data/productions/examples/sandbox/click_me/props.rb +0 -8
  176. data/productions/examples/sandbox/click_me/styles.rb +0 -11
  177. data/productions/examples/sandbox/floaters/players/floater.rb +0 -108
  178. data/productions/examples/sandbox/floaters/players/surface.rb +0 -21
  179. data/productions/examples/sandbox/floaters/props.rb +0 -10
  180. data/productions/examples/sandbox/floaters/styles.rb +0 -24
  181. data/productions/examples/sandbox/frameing/players/sandbox.rb +0 -17
  182. data/productions/examples/sandbox/frameing/props.rb +0 -35
  183. data/productions/examples/sandbox/frameing/styles.rb +0 -45
  184. data/productions/examples/sandbox/gradients/players/spinner.rb +0 -20
  185. data/productions/examples/sandbox/gradients/players/teaser.rb +0 -19
  186. data/productions/examples/sandbox/gradients/players/wave.rb +0 -19
  187. data/productions/examples/sandbox/gradients/players/waves.rb +0 -19
  188. data/productions/examples/sandbox/gradients/props.rb +0 -13
  189. data/productions/examples/sandbox/gradients/styles.rb +0 -47
  190. data/productions/examples/sandbox/header.rb +0 -22
  191. data/productions/examples/sandbox/homer/players/homer.rb +0 -24
  192. data/productions/examples/sandbox/homer/props.rb +0 -10
  193. data/productions/examples/sandbox/homer/styles.rb +0 -16
  194. data/productions/examples/sandbox/images/arch.jpg +0 -0
  195. data/productions/examples/sandbox/images/beach.jpg +0 -0
  196. data/productions/examples/sandbox/images/homer.jpg +0 -0
  197. data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
  198. data/productions/examples/sandbox/images/logo.png +0 -0
  199. data/productions/examples/sandbox/images/marilyn.jpg +0 -0
  200. data/productions/examples/sandbox/images/space.png +0 -0
  201. data/productions/examples/sandbox/images_scene/props.rb +0 -36
  202. data/productions/examples/sandbox/images_scene/styles.rb +0 -34
  203. data/productions/examples/sandbox/inputs/players/button_input.rb +0 -48
  204. data/productions/examples/sandbox/inputs/players/check_box_input.rb +0 -40
  205. data/productions/examples/sandbox/inputs/players/combo_box_input.rb +0 -41
  206. data/productions/examples/sandbox/inputs/players/radio_button_input.rb +0 -43
  207. data/productions/examples/sandbox/inputs/players/text_area_input.rb +0 -36
  208. data/productions/examples/sandbox/inputs/players/text_box_input.rb +0 -36
  209. data/productions/examples/sandbox/inputs/props.rb +0 -40
  210. data/productions/examples/sandbox/inputs/styles.rb +0 -39
  211. data/productions/examples/sandbox/kiosk/players/kiosk.rb +0 -39
  212. data/productions/examples/sandbox/kiosk/props.rb +0 -9
  213. data/productions/examples/sandbox/kiosk/styles.rb +0 -37
  214. data/productions/examples/sandbox/players/sandbox.rb +0 -11
  215. data/productions/examples/sandbox/rounded_corners/players/box.rb +0 -11
  216. data/productions/examples/sandbox/rounded_corners/props.rb +0 -22
  217. data/productions/examples/sandbox/rounded_corners/styles.rb +0 -17
  218. data/productions/examples/sandbox/scrolling/players/add_button.rb +0 -19
  219. data/productions/examples/sandbox/scrolling/players/cell.rb +0 -15
  220. data/productions/examples/sandbox/scrolling/props.rb +0 -45
  221. data/productions/examples/sandbox/scrolling/styles.rb +0 -33
  222. data/productions/examples/sandbox/sketching/players/sketchpad.rb +0 -46
  223. data/productions/examples/sandbox/sketching/props.rb +0 -25
  224. data/productions/examples/sandbox/sketching/styles.rb +0 -35
  225. data/productions/examples/sandbox/sounds/bird.au +0 -0
  226. data/productions/examples/sandbox/sounds/cat.au +0 -0
  227. data/productions/examples/sandbox/sounds/cow.au +0 -0
  228. data/productions/examples/sandbox/sounds/dog.au +0 -0
  229. data/productions/examples/sandbox/sounds/donkey.au +0 -0
  230. data/productions/examples/sandbox/sounds/duck.au +0 -0
  231. data/productions/examples/sandbox/sounds/players/clip.rb +0 -10
  232. data/productions/examples/sandbox/sounds/props.rb +0 -10
  233. data/productions/examples/sandbox/sounds/styles.rb +0 -17
  234. data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +0 -16
  235. data/productions/examples/sandbox/stage_handles/players/sizer.rb +0 -38
  236. data/productions/examples/sandbox/stage_handles/props.rb +0 -17
  237. data/productions/examples/sandbox/stage_handles/styles.rb +0 -58
  238. data/productions/examples/sandbox/stages.rb +0 -8
  239. data/productions/examples/sandbox/styles.rb +0 -35
  240. data/productions/examples/sandbox/teaser/players/fader.rb +0 -58
  241. data/productions/examples/sandbox/teaser/props.rb +0 -14
  242. data/productions/examples/sandbox/teaser/styles.rb +0 -21
  243. data/productions/examples/tutorials/tutorial_1/players/sample.rb +0 -11
  244. data/productions/examples/tutorials/tutorial_1/props.rb +0 -9
  245. data/productions/examples/tutorials/tutorial_1/styles.rb +0 -25
  246. data/productions/stage_composer/init.rb +0 -10
  247. data/productions/stage_composer/inspector/players/inspector.rb +0 -80
  248. data/productions/stage_composer/inspector/players/prop_row.rb +0 -12
  249. data/productions/stage_composer/inspector/players/prop_tree.rb +0 -33
  250. data/productions/stage_composer/inspector/players/style_table.rb +0 -12
  251. data/productions/stage_composer/inspector/players/style_value.rb +0 -16
  252. data/productions/stage_composer/inspector/props.rb +0 -19
  253. data/productions/stage_composer/inspector/styles.rb +0 -71
  254. data/productions/stage_composer/lib/init.rb +0 -5
  255. data/productions/stage_composer/lib/limelight/composer/controller.rb +0 -51
  256. data/productions/stage_composer/lib/limelight/composer/lethargy.rb +0 -24
  257. data/productions/stage_composer/production.rb +0 -6
  258. data/productions/stage_composer/stages.rb +0 -15
  259. data/productions/startup/images/logo.png +0 -0
  260. data/productions/startup/images/splash.png +0 -0
  261. data/productions/startup/production.rb +0 -52
  262. data/productions/startup/spec/default_scene/default_scene_spec.rb +0 -16
  263. data/productions/startup/spec/spec_helper.rb +0 -8
  264. data/productions/startup/stages.rb +0 -9
  265. data/productions/startup/styles.rb +0 -15
  266. data/productions/startup/welcome/players/browse_button.rb +0 -10
  267. data/productions/startup/welcome/players/download_button.rb +0 -17
  268. data/productions/startup/welcome/players/sandbox_button.rb +0 -11
  269. data/productions/startup/welcome/props.rb +0 -23
  270. data/productions/startup/welcome/styles.rb +0 -103
  271. data/spec/limelight/builtin/players/button_spec.rb +0 -20
  272. data/spec/limelight/builtin/players/check_box_spec.rb +0 -29
  273. data/spec/limelight/builtin/players/combo_box_spec.rb +0 -29
  274. data/spec/limelight/builtin/players/image_spec.rb +0 -43
  275. data/spec/limelight/builtin/players/password_box_spec.rb +0 -27
  276. data/spec/limelight/builtin/players/radio_button_spec.rb +0 -64
  277. data/spec/limelight/builtin/players/stage_mover_spec.rb +0 -36
  278. data/spec/limelight/builtin/players/stage_sizer_spec.rb +0 -40
  279. data/spec/limelight/builtin/players/text_area_spec.rb +0 -27
  280. data/spec/limelight/builtin/players/text_box_spec.rb +0 -27
  281. data/spec/limelight/builtin/utilities_production/spec_helper.rb +0 -7
  282. data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +0 -147
  283. data/spec/limelight/casting_director_spec.rb +0 -164
  284. data/spec/limelight/commands/command_spec.rb +0 -26
  285. data/spec/limelight/commands/create_command_spec.rb +0 -108
  286. data/spec/limelight/commands/freeze_command_spec.rb +0 -143
  287. data/spec/limelight/commands/help_command_spec.rb +0 -42
  288. data/spec/limelight/commands/open_command_spec.rb +0 -53
  289. data/spec/limelight/commands/pack_command_spec.rb +0 -43
  290. data/spec/limelight/commands/unpack_command_spec.rb +0 -47
  291. data/spec/limelight/data_spec.rb +0 -36
  292. data/spec/limelight/dsl/prop_builder_spec.rb +0 -245
  293. data/spec/limelight/dsl/stage_builder_spec.rb +0 -90
  294. data/spec/limelight/dsl/styles_builder_spec.rb +0 -194
  295. data/spec/limelight/file_chooser_spec.rb +0 -64
  296. data/spec/limelight/file_filter_spec.rb +0 -29
  297. data/spec/limelight/file_loader_spec.rb +0 -28
  298. data/spec/limelight/gems_spec.rb +0 -92
  299. data/spec/limelight/java_util_spec.rb +0 -37
  300. data/spec/limelight/main_spec.rb +0 -40
  301. data/spec/limelight/paint_action_spec.rb +0 -30
  302. data/spec/limelight/pen_spec.rb +0 -62
  303. data/spec/limelight/producer_spec.rb +0 -246
  304. data/spec/limelight/production_spec.rb +0 -97
  305. data/spec/limelight/prop_spec.rb +0 -431
  306. data/spec/limelight/scene_spec.rb +0 -173
  307. data/spec/limelight/stage_spec.rb +0 -247
  308. data/spec/limelight/string_spec.rb +0 -38
  309. data/spec/limelight/templates/production_templater_spec.rb +0 -66
  310. data/spec/limelight/templates/scene_templater_spec.rb +0 -51
  311. data/spec/limelight/templates/templater_logger_spec.rb +0 -41
  312. data/spec/limelight/templates/templater_spec.rb +0 -107
  313. data/spec/limelight/theater_spec.rb +0 -120
  314. data/spec/limelight/util/downloader_spec.rb +0 -92
  315. data/spec/spec_helper.rb +0 -64
@@ -0,0 +1,191 @@
1
+ #- Copyright © 2008-2011 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the MIT License.
3
+
4
+ require 'rspec'
5
+ require File.expand_path(File.dirname(__FILE__) + "/../limelight_init")
6
+ require 'limelight/production'
7
+ require 'limelight/scene'
8
+ require 'limelight/string'
9
+ require 'limelight/mouse'
10
+
11
+ module Limelight
12
+
13
+ # Limelight comes with builtin assistance for testing your productions with rspec.
14
+ # See Limelight::Specs::SpecHelper
15
+ #
16
+ module Specs
17
+
18
+ class << self
19
+ attr_accessor :production
20
+ end
21
+
22
+ # Limelight comes with builtin assistance for testing your productions using RSpec. To get started, add the following
23
+ # to your describe block...
24
+ #
25
+ # uses_limelight :scene => "my_scene"
26
+ #
27
+ # This will add before(:each) blocks that will setup your production and load your scene before each test.
28
+ # It also provides some accessors to common objects like the scene and production. Afterwards, you can
29
+ # write tests that look like this.
30
+ #
31
+ # it "does something with the scene" do
32
+ # scene.name.should == "my_scene"
33
+ # scene.find("title").text.should == "This is the Title"
34
+ # production.theater["default_stage"].current_scene.should be(scene)
35
+ # end
36
+ #
37
+ # There are several other options you can supply with 'uses_limelight':
38
+ #
39
+ # :hidden - (true or false) Defaults to true, but if you turn it off, the scene will pop open on your screen. This
40
+ # can be really nifty at times and really annoying at other time.
41
+ #
42
+ # :stage - The name of the stage you want the scene to be loaded on. The theater's default stage will be used by
43
+ # default.
44
+ #
45
+ # :scene_name - To be used instead of the :scene option. This will create an empty scene in your production with
46
+ # the specified name.
47
+ #
48
+ # :scene_path - To be used in conjunction with :scene_name. This will cause the empty scene to be loaded with
49
+ # the specified path. Styles and Players associated with the path will be applied to the created scene.
50
+ #
51
+ # The 'uses_limelight' methods also accepts block using the Limelight::DSL::PropBuilder DSL. This is convenient for building a
52
+ # simple prop structure sufficient to test the desired behavior. Here's an example:
53
+ #
54
+ # describe "my scene" do
55
+ # uses_limelight :scene_name => "some_name", :scene_path => "my_scene_path" do
56
+ # clicky :id => "clicky", :text => "click me", :on_mouse_clicked => "self.text = 'Hey! You clicked me!'"
57
+ # end
58
+ #
59
+ # it "should change text on clicky when clicked" do
60
+ # scene.find("clicky").mouse_clicked(nil)
61
+ # clicky.text.should == "Hey! You clicked me!"
62
+ # end
63
+ # end
64
+ #
65
+ module SpecHelper
66
+
67
+ def production
68
+ if Limelight::Specs.production.nil?
69
+ # if $with_ui
70
+ Java::limelight.Boot.boot
71
+ # else
72
+ # Limelight::Main.initializeTestContext
73
+ # end
74
+ raise "$PRODUCTION_PATH undefined. Make sure you specify the location of the production in $PRODUCTION_PATH." unless defined?($PRODUCTION_PATH)
75
+ raise "Could not find production: '#{$PRODUCTION_PATH}'. Check $PRODUCTION_PATH." unless File.exists?($PRODUCTION_PATH)
76
+ Limelight::Specs.production = Limelight::Production.new(Java::limelight.ruby.RubyProduction.new($PRODUCTION_PATH))
77
+ Limelight::Specs.production.peer.illuminateProduction
78
+ Limelight::Specs.production.peer.loadProduction
79
+ end
80
+ Limelight::Specs.production
81
+ end
82
+
83
+ def mouse
84
+ @mouse ||= Limelight::Mouse.new
85
+ @mouse
86
+ end
87
+
88
+ def scene
89
+ if @scene.nil?
90
+ _setup_stage
91
+ if @ll_scene_id
92
+ @scene = production.open_scene(@ll_scene_id.to_s, :stage => @stage.name)
93
+ elsif @ll_scene_path
94
+ _setup_scene
95
+ end
96
+ end
97
+ @scene
98
+ end
99
+
100
+ private #############################################
101
+
102
+ def _init_ll_options(options)
103
+ @ll_scene_id = options[:scene]
104
+ @ll_scene_name = options[:scene_name]
105
+ @ll_scene_path = options[:scene_path]
106
+ @ll_stage_id = options[:stage]
107
+ @ll_hidden = options[:hidden]
108
+ @ll_player_names = options[:with_players]
109
+ _configure_player_helpers()
110
+ end
111
+
112
+ def _configure_player_helpers
113
+ if @ll_player_names
114
+ @ll_player_names = @ll_player_names.is_a?(Array) ? @ll_player_names : [@ll_player_names]
115
+ @ll_player_names = @ll_player_names.map { |n| n.to_s }
116
+ @ll_player_names.each do |player_name|
117
+ eval "def #{player_name}; scene.find('#{player_name}'); end;"
118
+ end
119
+ end
120
+ end
121
+
122
+ def _create_player_helpers
123
+ player_names = @ll_player_names
124
+ Limelight.build_props(@scene, :build_loader => production.root) do
125
+ player_names.each do |player_name|
126
+ __test_prop :name =>player_name, :players => "#{player_name}", :id => "#{player_name}"
127
+ end
128
+ end
129
+ end
130
+
131
+ def _setup_scene
132
+ path = production.scene_directory(@ll_scene_path)
133
+ @scene = Scene.new(:production => production, :path => path, :name => @ll_scene_name)
134
+ _create_player_helpers
135
+ Limelight.build_props(@scene, :build_loader => production.root, &@prop_block) if @prop_block
136
+
137
+ production.load_styles(@scene, @production.styles)
138
+ @stage.scene = @scene
139
+ @stage.open
140
+ end
141
+
142
+ def _setup_stage
143
+ if @ll_stage_id
144
+ @stage = production.theater[@ll_stage_id]
145
+ raise "No such stage: '#{@ll_stage_id}'" unless @stage
146
+ else
147
+ @stage = production.theater.default_stage
148
+ end
149
+
150
+ Java::limelight.ui.model.StageFrame.hiddenMode = @ll_hidden || true
151
+ end
152
+ end
153
+ end
154
+ end
155
+
156
+ RSpec.configure do |config|
157
+ config.after(:suite) do
158
+ Java::limelight.Context.instance.killThreads
159
+ #if Limelight::Specs.production
160
+ # Limelight::Specs.production.theater.stages.each do |stage|
161
+ # # MDM - We do this in a round-about way to reduce the chance of using stubbed or mocked methods.
162
+ # frame = stage.instance_variable_get("@frame")
163
+ # frame.close if frame
164
+ # end
165
+ #end
166
+ Java::java.awt.Window.getWindows.each do |window|
167
+ window.dispose
168
+ end
169
+ end
170
+ end
171
+
172
+ module RSpec
173
+ module Core
174
+ class ExampleGroup
175
+
176
+ def self.uses_limelight(options = {}, &prop_block)
177
+ include Limelight::Specs::SpecHelper
178
+
179
+ before(:all) do
180
+ _init_ll_options(options)
181
+ @prop_block = prop_block
182
+ end
183
+
184
+ before(:each) do
185
+ @player = @scene = nil
186
+ end
187
+ end
188
+
189
+ end
190
+ end
191
+ end
@@ -0,0 +1,268 @@
1
+ #- Copyright © 2008-2011 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the MIT License.
3
+
4
+ #require 'limelight/dsl/menu_bar'
5
+ require 'limelight/optionable'
6
+ require 'limelight/file_chooser'
7
+ require 'limelight/util'
8
+ require 'limelight/util/hashes'
9
+
10
+ module Limelight
11
+
12
+ # In the metephorical sense, a Stage is a platform which may hold a scene. In a more, to-the-point sence, a Stage
13
+ # represents a window on the computer screen. The Stage objects within a Production are configured by the StagesBuilder.
14
+ # By default a Production will have one Stage. A Stage may open any number of Scenes but it may only have one current
15
+ # scene loaded at a time.
16
+ #
17
+ class Stage
18
+
19
+ include Java::limelight.model.api.StageProxy
20
+ include Optionable
21
+
22
+ attr_reader :peer
23
+
24
+ # To create a new Stage, it be given a Theater to which it belongs, and the name is optional. If no name is provided
25
+ # it will default to 'default'. A stage name must be unique, so it is recommended you provide a name.
26
+ #
27
+ def initialize(theater, name, options = {})
28
+ @theater = theater
29
+ @peer = Java::limelight.ui.model.FramedStage.new(name, self)
30
+ @peer.apply_options(Util::Hashes.for_java(options))
31
+ end
32
+
33
+ # Returns the name of the scene that will be loaded on this stage by default
34
+ #
35
+ def default_scene_name
36
+ return @peer.default_scene_name
37
+ end
38
+
39
+ # Specifies the name of the scene that will be loaded on this stage by default
40
+ #
41
+ def default_scene_name=(value)
42
+ @peer.default_scene_name = value
43
+ end
44
+
45
+ # Returns the name of the stage
46
+ #
47
+ def name
48
+ return @peer.name
49
+ end
50
+
51
+ # Returns the title that is displayed at the top of the window that this stage represents.
52
+ #
53
+ def title
54
+ return @peer.title
55
+ end
56
+
57
+ # Sets the title that is displayed at the top of the window that this stage represents.
58
+ #
59
+ def title=(value)
60
+ @peer.title = value
61
+ end
62
+
63
+ # Returns the width and height styles of the Stage.
64
+ #
65
+ # width, height = stage.size
66
+ #
67
+ def size
68
+ return @peer.width_style.to_s, @peer.height_style.to_s
69
+ end
70
+
71
+ # Sets the width and height styles of the Stage.
72
+ #
73
+ # state.size = [100, 200]
74
+ # state.size = ["50%", "100%"] # consuming 50% of the width and 100% of the height of the screen
75
+ #
76
+ def size=(*values)
77
+ values = values[0] if values.size == 1 && values[0].is_a?(Array)
78
+ @peer.set_size_styles(values[0], values[1])
79
+ end
80
+
81
+ # The location styles of the Stage.
82
+ #
83
+ # x, y = stage.location
84
+ #
85
+ def location
86
+ return @peer.getXLocationStyle.to_s, @peer.getYLocationStyle.to_s
87
+ end
88
+
89
+ # Sets the location styles of the Stage.
90
+ #
91
+ # stage.location = [500, 200]
92
+ #
93
+ def location=(*values)
94
+ values = values[0] if values.size == 1 && values[0].is_a?(Array)
95
+ @peer.set_location_styles(values[0], values[1])
96
+ end
97
+
98
+ # Turns fullscreen mode on and off. In fullscreen mode, the stage will fill the entire screen and appear on top
99
+ # of all other windows.
100
+ #
101
+ # stage.fullscreen = true
102
+ #
103
+ def fullscreen=(on)
104
+ @peer.setFullScreen(on)
105
+ end
106
+
107
+ # Returns true if the stage is in fullscreen mode.
108
+ #
109
+ def fullscreen?
110
+ return @peer.isFullScreen()
111
+ end
112
+
113
+ # Turns kiosk mode for this stage on and off. When on, the stage will:
114
+ # * be fullscreen
115
+ # * not be frames
116
+ # * disable OS key commands
117
+ # * OS X: Cmd-Tab, Cmd-Alt-Esc, etc...
118
+ # * Windows: Alt-Tab, Ctrl-Esc, etc... (Ctrl-Alt-Del must be disabled through a registry entry)
119
+ #
120
+ # stage.kiosk = true
121
+ #
122
+ def kiosk=(on)
123
+ @peer.setKiosk(on)
124
+ end
125
+
126
+ # Return true if the stage is in kiosk mode.
127
+ #
128
+ def kiosk?
129
+ return @peer.isKiosk()
130
+ end
131
+
132
+
133
+ # Hides the stage so that it is not visible on the screen without destroying it.
134
+ #
135
+ def hide
136
+ @peer.hide
137
+ end
138
+
139
+ # Shows the stage after having hiding it.
140
+ #
141
+ def show
142
+ @peer.show
143
+ end
144
+
145
+ # Returns true if the stage is visible on the screen.
146
+ #
147
+ def visible?
148
+ return @peer.visible
149
+ end
150
+
151
+ # Sets the background color of the stage
152
+ #
153
+ def background_color=(value)
154
+ @peer.background_color = value.to_s
155
+ end
156
+
157
+ # Returns the background color of the stage in the format #RRGGBB(AA)
158
+ #
159
+ def background_color
160
+ return @peer.background_color
161
+ end
162
+
163
+ # When true, the stage will be frame with the operating system's standard window frame including close, minimize,
164
+ # and maximize buttons
165
+ #
166
+ def framed=(value)
167
+ @peer.framed = value
168
+ end
169
+
170
+ # Return true if the stage is framed.
171
+ #
172
+ def framed?
173
+ return @peer.framed?
174
+ end
175
+
176
+ # When true, the stage will remain on top of all other windows.
177
+ #
178
+ def always_on_top=(value)
179
+ @peer.always_on_top = value
180
+ end
181
+
182
+ # Return true if the stage has been set to always be on top.
183
+ #
184
+ def always_on_top?
185
+ return @peer.always_on_top
186
+ end
187
+
188
+ # Sets the vitality of the stage. Limelight will not exit while vital frames remain visible.
189
+ #
190
+ def vital=(value)
191
+ @peer.vital = value
192
+ end
193
+
194
+ # Returns true if this is a vital stage. Limelight will not exit while vital frames remain visible.
195
+ #
196
+ def vital?
197
+ return @peer.vital?
198
+ end
199
+
200
+ # Loads the provided Scene.
201
+ #
202
+ # See load_scene
203
+ #
204
+ def scene=(scene)
205
+ @peer.scene = scene.peer
206
+ end
207
+
208
+ # Returns the scene currently open on the stage
209
+ #
210
+ def scene
211
+ return @peer.scene.proxy if @peer.scene
212
+ end
213
+
214
+ # Returns the theater that the stage belongs to.
215
+ #
216
+ def theater
217
+ return @peer.theater.proxy
218
+ end
219
+
220
+ # Opens the stage. Opened stages are visible on the screen.
221
+ #
222
+ def open
223
+ @peer.open
224
+ end
225
+
226
+ # Closes the Stage. It's window will no longer be displayed on the screen.
227
+ #
228
+ def close
229
+ @peer.close
230
+ end
231
+
232
+ # Pops up a simple modal dialog with the provided message.
233
+ #
234
+ def alert(message)
235
+ Thread.new do
236
+ begin
237
+ Context.instance.studio.utilities_production.alert(message)
238
+ rescue StandardError => e
239
+ puts "Error on alert: #{e}"
240
+ end
241
+ end
242
+ end
243
+
244
+ # Called when the user or system would like to close the stage. The stage will return true, allowing it to be
245
+ # closed, unless the current_scene defines the allow_close? method in which case the decision it left up to the
246
+ # current_scene.
247
+ #
248
+ def should_allow_close
249
+ return @peer.should_all_close
250
+ end
251
+
252
+ # returns true if the stage has been closed. Closed stages may not be reopened.
253
+ #
254
+ def closed?
255
+ return @peer.closed?
256
+ end
257
+
258
+ def should_remain_hidden #:nodoc:
259
+ return @peer.should_remain_hidden
260
+ end
261
+
262
+ def should_remain_hidden=(value) #:nodoc:
263
+ @peer.should_remain_hidden = value
264
+ end
265
+ end
266
+
267
+ end
268
+