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
@@ -1,5 +1,5 @@
1
- #- Copyright 2008-2009 8th Light, Inc. All Rights Reserved.
2
- #- Limelight and all included source files are distributed under terms of the GNU LGPL.
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
3
 
4
4
  require 'limelight/pen'
5
5
 
@@ -8,20 +8,20 @@ module Limelight
8
8
  # A PaintAction is created by Prop.after_painting.
9
9
  #
10
10
  class PaintAction #:nodoc:
11
-
11
+
12
12
  include UI::Painting::PaintAction
13
-
13
+
14
14
  attr_reader :block
15
-
15
+
16
16
  def initialize(&block)
17
17
  @block = block
18
18
  end
19
-
19
+
20
20
  def invoke(graphics)
21
21
  pen = Pen.new(graphics)
22
22
  @block.call(pen)
23
23
  end
24
-
24
+
25
25
  end
26
-
26
+
27
27
  end
@@ -1,5 +1,5 @@
1
- #- Copyright 2008-2009 8th Light, Inc. All Rights Reserved.
2
- #- Limelight and all included source files are distributed under terms of the GNU LGPL.
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
3
 
4
4
  module Limelight
5
5
 
@@ -7,10 +7,10 @@ module Limelight
7
7
  # from which the Pen was acquired.
8
8
  #
9
9
  # All points used by the Pen are relative to the bounds of the Prop. The top left corner of the Prop is represented
10
- # by the point (0, 0). If a Prop has margin, border, or padding, the point (0, 0) may appear to be outside the Prop.
10
+ # by the point (0, 0). If a Prop has margin, border, or padding, the point (0, 0) may appear to be outside the Prop.
11
11
  #
12
12
  class Pen
13
-
13
+
14
14
  attr_accessor :context
15
15
 
16
16
  # It is constructed with a context which is essentially a java.awt.Graphic2D object. Defaults are set:
@@ -72,12 +72,12 @@ module Limelight
72
72
  @context.drawOval(x, y, width, height)
73
73
  end
74
74
 
75
- # Fills an oval specified by the bounding rectangle. See draw_oval.
75
+ # Fills an oval specified by the bounding rectangle. See draw_oval.
76
76
  #
77
77
  def fill_oval(x, y, width, height)
78
78
  @context.fillOval(x, y, width, height)
79
79
  end
80
-
80
+
81
81
  end
82
-
82
+
83
83
  end
@@ -0,0 +1,148 @@
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
+ module Limelight
5
+ class Player < Module
6
+
7
+ include Java::limelight.model.api.Player
8
+
9
+ def initialize(player_name, player_path)
10
+ @name = player_name
11
+ @path = player_path
12
+ @__event_cache = {}
13
+ end
14
+
15
+ def cast(prop)
16
+ prop = prop.is_a?(Limelight::Prop) ? prop : prop.proxy
17
+ unless prop.is_a?(self)
18
+ prop.extend(self)
19
+ end
20
+ end
21
+
22
+ def path
23
+ @path
24
+ end
25
+ alias getPath path
26
+
27
+ def name
28
+ @name
29
+ end
30
+ alias getName name
31
+
32
+ def applyOptions(prop, options)
33
+ # nothing to do here because options are already applied to mixed in methods
34
+ options
35
+ end
36
+
37
+ def __add_action(type, action)
38
+ actions = @__event_cache[type]
39
+ if actions == nil
40
+ actions = @__event_cache[type] = []
41
+ end
42
+ actions << action
43
+ end
44
+
45
+ def extended(prop)
46
+ on_cast_actions = @__event_cache[:on_cast]
47
+ if on_cast_actions
48
+ on_cast_actions.each do |action|
49
+ prop.instance_exec(&action)
50
+ end
51
+ end
52
+
53
+ @__event_cache.each do |event, actions|
54
+ if actions && event != :on_cast
55
+ actions.each do |action|
56
+ prop.peer.event_handler.add(event, Proc.new { |e| prop.instance_exec(e, &action) })
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ def on_cast(& action)
63
+ __add_action(:on_cast, action)
64
+ end
65
+
66
+ def on_mouse_pressed(& action)
67
+ __add_action(Java::limelight.ui.events.panel.MousePressedEvent, action)
68
+ end
69
+
70
+ def on_mouse_released(& action)
71
+ __add_action(Java::limelight.ui.events.panel.MouseReleasedEvent, action)
72
+ end
73
+
74
+ def on_mouse_clicked(& action)
75
+ __add_action(Java::limelight.ui.events.panel.MouseClickedEvent, action)
76
+ end
77
+
78
+ def on_mouse_entered(& action)
79
+ __add_action(Java::limelight.ui.events.panel.MouseEnteredEvent, action)
80
+ end
81
+
82
+ def on_mouse_exited(& action)
83
+ __add_action(Java::limelight.ui.events.panel.MouseExitedEvent, action)
84
+ end
85
+
86
+ def on_mouse_moved(& action)
87
+ __add_action(Java::limelight.ui.events.panel.MouseMovedEvent, action)
88
+ end
89
+
90
+ def on_mouse_wheel(& action)
91
+ __add_action(Java::limelight.ui.events.panel.MouseWheelEvent, action)
92
+ end
93
+
94
+ def on_mouse_dragged(& action)
95
+ __add_action(Java::limelight.ui.events.panel.MouseDraggedEvent, action)
96
+ end
97
+
98
+ def on_key_pressed(& action)
99
+ __add_action(Java::limelight.ui.events.panel.KeyPressedEvent, action)
100
+ end
101
+
102
+ def on_key_released(& action)
103
+ __add_action(Java::limelight.ui.events.panel.KeyReleasedEvent, action)
104
+ end
105
+
106
+ def on_char_typed(& action)
107
+ __add_action(Java::limelight.ui.events.panel.CharTypedEvent, action)
108
+ end
109
+
110
+ def on_focus_gained(& action)
111
+ __add_action(Java::limelight.ui.events.panel.FocusGainedEvent, action)
112
+ end
113
+
114
+ def on_focus_lost(& action)
115
+ __add_action(Java::limelight.ui.events.panel.FocusLostEvent, action)
116
+ end
117
+
118
+ def on_button_pushed(& action)
119
+ __add_action(Java::limelight.ui.events.panel.ButtonPushedEvent, action)
120
+ end
121
+
122
+ def on_value_changed(& action)
123
+ __add_action(Java::limelight.ui.events.panel.ValueChangedEvent, action)
124
+ end
125
+
126
+ def on_scene_opened(& action)
127
+ __add_action(Java::limelight.ui.events.panel.SceneOpenedEvent, action)
128
+ end
129
+
130
+ def on_illuminated(& action)
131
+ __add_action(Java::limelight.ui.events.panel.IlluminatedEvent, action)
132
+ end
133
+
134
+ def prop_reader(*symbols)
135
+ symbols.each do |sym|
136
+ module_eval("def #{sym}; return scene.find('#{sym}'); end")
137
+ end
138
+ end
139
+
140
+ def backstage_reader(*symbols)
141
+ symbols.each do |sym|
142
+ name = Java::limelight.util.StringUtil.spearCase(sym.to_s)
143
+ module_eval("def #{sym}; return backstage['#{name}']; end")
144
+ end
145
+ end
146
+
147
+ end
148
+ end
@@ -0,0 +1,54 @@
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/player'
5
+ require 'limelight/builtin/players'
6
+
7
+ module Limelight
8
+
9
+ # The PlayerRecruiter is responsible for finding Players for Props within a Production.
10
+ # Each scene has a unique instance of a PlayerRecruiter
11
+ #
12
+ # Users of Limelight need not be concerned with this class.
13
+ #
14
+ class PlayerRecruiter
15
+
16
+ attr_reader :cast
17
+
18
+ def initialize()
19
+ @cast = Module.new
20
+ @fs = Java::limelight.Context.fs
21
+ end
22
+
23
+ def can_recruit?(player_name, players_path)
24
+ @cast.const_defined?(player_name.camelized) || @fs.exists(player_filename(player_name, players_path))
25
+ end
26
+
27
+ alias :canRecruit :can_recruit?
28
+
29
+ def recruit_player(player_name, players_path)
30
+ module_name = player_name.camelized
31
+ if @cast.const_defined?(module_name)
32
+ @cast.const_get(module_name)
33
+ else
34
+ player_filename = player_filename(player_name, players_path)
35
+ src = @fs.read_text_file(player_filename)
36
+
37
+ player = Player.new(player_name, player_filename)
38
+ player.module_eval(src, player_filename)
39
+ @cast.const_set(module_name, player)
40
+ player
41
+ end
42
+ end
43
+
44
+ alias :recruitPlayer :recruit_player
45
+
46
+ private ###############################################
47
+
48
+ def player_filename(player_name, players_path)
49
+ "#{@fs.join(players_path, player_name.underscored)}.rb"
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -0,0 +1,257 @@
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/limelight_exception'
5
+ require 'limelight/dsl/styles_builder'
6
+ require 'limelight/theater'
7
+ require 'limelight/dsl/stage_builder'
8
+ require 'limelight/dsl/prop_builder'
9
+ require 'limelight/dsl/styles_builder'
10
+ require 'limelight/util/hashes'
11
+ require 'limelight/scene'
12
+ require 'drb'
13
+
14
+
15
+ module Limelight
16
+
17
+ # The root object of Limelight Production. Every Prop in a production has access to its Production object.
18
+ # Therefore it is typical to store reasources in the Production.
19
+ #
20
+ # Productions are configured, and attributes are added, by the ProductionBuilder.
21
+ #
22
+ class Production
23
+
24
+ include Java::limelight.model.api.ProductionProxy
25
+
26
+ attr_reader :peer
27
+ attr_accessor :theater
28
+
29
+ alias :getTheater :theater
30
+ alias :getPeer :peer
31
+
32
+ # Users typically need not create Production objects.
33
+ #
34
+ def initialize(production)
35
+ @peer = production
36
+ @theater = Theater.new(self, @peer.theater)
37
+
38
+ @peer.proxy = self
39
+ @fs = Java::limelight.Context.fs
40
+ end
41
+
42
+ # returns the productions "backstage" storage. (A map of map to store stuff)
43
+ #
44
+ def backstage
45
+ if @backstage == nil
46
+ value = @peer.backstage
47
+ @backstage = Util::Hashes.for_ruby(value)
48
+ end
49
+ @backstage
50
+ end
51
+
52
+ # returns true if the production has been opened, and not yet closed.
53
+ #
54
+ def open?
55
+ @peer.open?
56
+ end
57
+
58
+ # Returns the name of the Production
59
+ #
60
+ def name
61
+ @peer.name
62
+ end
63
+
64
+ # Sets the name of the Production. The name must be unique amongst all Productions in memory.
65
+ #
66
+ def name=(value)
67
+ @peer.name = value
68
+ end
69
+
70
+ # Return the path to the root directory of the production
71
+ #
72
+ def path
73
+ @peer.path
74
+ end
75
+
76
+ # Returns the path to the production's production.rb file
77
+ #
78
+ def production_file
79
+ @fs.path_to(path, "production.rb")
80
+ end
81
+
82
+ # Returns the path to the production's stages file
83
+ #
84
+ def stages_file
85
+ @fs.path_to(path, "stages.rb")
86
+ end
87
+
88
+ # Returns the path to the production's styles file
89
+ #
90
+ def styles_file
91
+ @fs.path_to(path, "styles.rb")
92
+ end
93
+
94
+ # Returns the path to the production's gems directory
95
+ #
96
+ def gems_directory
97
+ @fs.path_to(path, "__resources/gems/gems")
98
+ end
99
+
100
+ # Returns the path to the productions gems root
101
+ #
102
+ def gems_root
103
+ @fs.path_to(path, "__resources/gems")
104
+ end
105
+
106
+ # Returns the path to the named Scene's directory within the Production
107
+ #
108
+ def scene_directory(name)
109
+ name == nil ? path : @fs.path_to(path, name)
110
+ end
111
+
112
+ # Returns true if the production allows itself to be closed. The system will call this methods when
113
+ # it wishes to close the production, perhaps when the user quits the application. By default the production
114
+ # will always return true.
115
+ #
116
+ def allow_close?
117
+ @peer.allow_close?
118
+ end
119
+
120
+ # Specifies whether this production will allow itself to be closed. It should be noted that permanently setting
121
+ # this to false could keep the entire Limelight runtime from shutting down.
122
+ #
123
+ def allow_close=(value)
124
+ @peer.allow_close = value
125
+ end
126
+
127
+ # Specifies the minimum required version of Limelight that should be used to open this production.
128
+ # Defaults to zero, meaning any version of Limelight may open the production.
129
+ #
130
+ def minimum_limelight_version=(value)
131
+ @peer.minimum_limelight_version = value
132
+ end
133
+
134
+ # Closes the production. If there are no more productions open, the Limelight runtime will shutdown.
135
+ # The production will actually delegate to it's producer and the producer will close the production down.
136
+ #
137
+ def close
138
+ @peer.close
139
+ end
140
+
141
+ # Publish this production using DRb on the specified port. The production will delegate to its producer to
142
+ # actually do the publishing.
143
+ #
144
+ def publish_on_drb(port)
145
+ @producer.publish_production_on_drb(port)
146
+ end
147
+
148
+ def on_production_created(&action)
149
+ @peer.event_handler.add(Java::limelight.model.events.ProductionCreatedEvent, action)
150
+ end
151
+
152
+ def on_production_loaded(&action)
153
+ @peer.event_handler.add(Java::limelight.model.events.ProductionLoadedEvent, action)
154
+ end
155
+
156
+ def on_production_opened(&action)
157
+ @peer.event_handler.add(Java::limelight.model.events.ProductionOpenedEvent, action)
158
+ end
159
+
160
+ def on_production_closing(&action)
161
+ @peer.event_handler.add(Java::limelight.model.events.ProductionClosingEvent, action)
162
+ end
163
+
164
+ def on_production_closed(&action)
165
+ @peer.event_handler.add(Java::limelight.model.events.ProductionClosedEvent, action)
166
+ end
167
+
168
+ def backstage_pass(name)
169
+ instance_eval "def #{name}=(value); backstage[:#{name}] = value; end;"
170
+ instance_eval "def #{name}; backstage[:#{name}]; end;"
171
+ end
172
+
173
+ def callMethod(name, java_obj_array) #:nodoc:
174
+ args = []
175
+ java_obj_array.length.times { |i| args << java_obj_array[i] }
176
+ send(name.to_sym, * args)
177
+ end
178
+
179
+ def open_scene(scene_path, options={})
180
+ stage_name = options[:stage]
181
+ if(stage_name)
182
+ scene_peer = @peer.open_scene(scene_path, stage_name, Util::Hashes.for_java(options))
183
+ else
184
+ scene_peer = @peer.open_scene(scene_path, Util::Hashes.for_java(options))
185
+ end
186
+ scene_peer.proxy
187
+ end
188
+
189
+ def illuminate
190
+ path = production_file
191
+ return unless @fs.exists?(path)
192
+ content = @fs.read_text_file(path)
193
+ path = path[5..-1] if path[0...5] == "file:"
194
+ self.instance_eval(content, path)
195
+ end
196
+
197
+ def load_libraries
198
+ # use bundler here
199
+ end
200
+
201
+ alias :loadLibraries :load_libraries
202
+
203
+ def load_stages
204
+ return unless @fs.exists?(stages_file)
205
+ content = @fs.read_text_file(stages_file)
206
+ prod = self
207
+ Limelight.build_stages(theater) do
208
+ begin
209
+ eval content
210
+ rescue Exception => e
211
+ puts e.backtrace
212
+ raise DSL::BuildException.new(prod.stages_file, content, e)
213
+ end
214
+ end
215
+ end
216
+
217
+ alias :loadStages :load_stages
218
+
219
+ def load_scene(scene_path, options={})
220
+ options = Util::Hashes.for_ruby(options)
221
+ instance_variables = options.delete(:instance_variables)
222
+ log.debug "production.rb - scene options: #{options.inspect}"
223
+ scene = Scene.new(options)
224
+ scene.production = self
225
+ if @fs.exists?(scene.props_file)
226
+ log.debug "production.rb - loading props: #{scene.props_file}"
227
+ content = @fs.read_text_file(scene.props_file)
228
+ options[:root_path] = self.path
229
+ Limelight.build_props(scene, options.merge(:instance_variables => instance_variables)) do
230
+ begin
231
+ eval content
232
+ rescue Exception => e
233
+ raise DSL::BuildException.new(scene.props_file, content, e)
234
+ end
235
+ end
236
+ else
237
+ log.debug "production.rb - props file doesn't exist': #{scene.props_file}"
238
+ end
239
+ scene
240
+ end
241
+
242
+ alias :loadScene :load_scene
243
+
244
+ def load_styles(source, extendable_styles)
245
+ result = {}
246
+ styles_path = @fs.join(source.path, "styles.rb")
247
+ if @fs.exists?(styles_path)
248
+ Limelight.build_styles_from_file(styles_path, :styles => result, :extendable_styles => extendable_styles)
249
+ end
250
+ result
251
+ end
252
+
253
+ alias :loadStyles :load_styles
254
+
255
+ end
256
+
257
+ end