epall-limelight 0.5.0-java
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.
- data/bin/icons/icon.ico +0 -0
- data/bin/icons/icon_48.gif +0 -0
- data/bin/icons/limelight.icns +0 -0
- data/bin/limelight +5 -0
- data/bin/ll +10 -0
- data/bin/ll.bat +5 -0
- data/lib/init.rb +16 -0
- data/lib/limelight.jar +0 -0
- data/lib/limelight/animation.rb +41 -0
- data/lib/limelight/builtin/players.rb +16 -0
- data/lib/limelight/builtin/players/button.rb +39 -0
- data/lib/limelight/builtin/players/check_box.rb +50 -0
- data/lib/limelight/builtin/players/combo_box.rb +89 -0
- data/lib/limelight/builtin/players/combo_box_popup_list.rb +19 -0
- data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +21 -0
- data/lib/limelight/builtin/players/curtains.rb +23 -0
- data/lib/limelight/builtin/players/image.rb +54 -0
- data/lib/limelight/builtin/players/password_box.rb +34 -0
- data/lib/limelight/builtin/players/radio_button.rb +65 -0
- data/lib/limelight/builtin/players/stage_mover.rb +31 -0
- data/lib/limelight/builtin/players/stage_sizer.rb +34 -0
- data/lib/limelight/builtin/players/text_area.rb +34 -0
- data/lib/limelight/builtin/players/text_box.rb +34 -0
- data/lib/limelight/builtin/styles.rb +35 -0
- data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +11 -0
- data/lib/limelight/builtin/utilities_production/alert/props.rb +8 -0
- data/lib/limelight/builtin/utilities_production/alert/styles.rb +14 -0
- data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +20 -0
- data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +12 -0
- data/lib/limelight/builtin/utilities_production/production.rb +62 -0
- data/lib/limelight/builtin/utilities_production/stages.rb +12 -0
- data/lib/limelight/builtin/utilities_production/styles.rb +53 -0
- data/lib/limelight/button_group_cache.rb +11 -0
- data/lib/limelight/casting_director.rb +112 -0
- data/lib/limelight/client/playbills.rb +86 -0
- data/lib/limelight/commands/command.rb +168 -0
- data/lib/limelight/commands/create_command.rb +98 -0
- data/lib/limelight/commands/freeze_command.rb +131 -0
- data/lib/limelight/commands/help_command.rb +61 -0
- data/lib/limelight/commands/open_command.rb +60 -0
- data/lib/limelight/commands/pack_command.rb +45 -0
- data/lib/limelight/commands/unpack_command.rb +44 -0
- data/lib/limelight/commands/version_command.rb +31 -0
- data/lib/limelight/data.rb +37 -0
- data/lib/limelight/dsl/build_exception.rb +55 -0
- data/lib/limelight/dsl/menu_bar.rb +71 -0
- data/lib/limelight/dsl/prop_builder.rb +155 -0
- data/lib/limelight/dsl/stage_builder.rb +105 -0
- data/lib/limelight/dsl/styles_builder.rb +157 -0
- data/lib/limelight/file_chooser.rb +68 -0
- data/lib/limelight/file_filter.rb +33 -0
- data/lib/limelight/file_loader.rb +46 -0
- data/lib/limelight/gems.rb +51 -0
- data/lib/limelight/java_couplings.rb +66 -0
- data/lib/limelight/java_util.rb +49 -0
- data/lib/limelight/limelight_exception.rb +24 -0
- data/lib/limelight/main.rb +108 -0
- data/lib/limelight/paint_action.rb +27 -0
- data/lib/limelight/pen.rb +83 -0
- data/lib/limelight/producer.rb +179 -0
- data/lib/limelight/production.rb +169 -0
- data/lib/limelight/prop.rb +367 -0
- data/lib/limelight/scene.rb +151 -0
- data/lib/limelight/specs/spec_helper.rb +87 -0
- data/lib/limelight/specs/test_scene_opener.rb +60 -0
- data/lib/limelight/stage.rb +292 -0
- data/lib/limelight/string.rb +38 -0
- data/lib/limelight/studio.rb +185 -0
- data/lib/limelight/styles.rb +347 -0
- data/lib/limelight/templates/production_templater.rb +49 -0
- data/lib/limelight/templates/scene_templater.rb +47 -0
- data/lib/limelight/templates/sources/freezing/limelight_init.rb.template +5 -0
- data/lib/limelight/templates/sources/production/init.rb.template +15 -0
- data/lib/limelight/templates/sources/production/production.rb.template +49 -0
- data/lib/limelight/templates/sources/production/spec/spec_helper.rb.template +12 -0
- data/lib/limelight/templates/sources/production/stages.rb.template +17 -0
- data/lib/limelight/templates/sources/production/styles.rb.template +12 -0
- data/lib/limelight/templates/sources/scene/props.rb.template +6 -0
- data/lib/limelight/templates/sources/scene/styles.rb.template +18 -0
- data/lib/limelight/templates/sources/scene_spec/scene_spec.rb.template +13 -0
- data/lib/limelight/templates/templater.rb +131 -0
- data/lib/limelight/templates/templater_logger.rb +39 -0
- data/lib/limelight/theater.rb +77 -0
- data/lib/limelight/util.rb +65 -0
- data/lib/limelight/util/downloader.rb +115 -0
- data/lib/limelight/version.rb +20 -0
- data/productions/examples/8thlight.com/about/about.txt +24 -0
- data/productions/examples/8thlight.com/about/props.rb +11 -0
- data/productions/examples/8thlight.com/about/styles.rb +2 -0
- data/productions/examples/8thlight.com/footer.rb +6 -0
- data/productions/examples/8thlight.com/home/props.rb +28 -0
- data/productions/examples/8thlight.com/home/styles.rb +2 -0
- data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
- data/productions/examples/8thlight.com/images/bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
- data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/header.jpg +0 -0
- data/productions/examples/8thlight.com/images/moses.jpg +0 -0
- data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
- data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
- data/productions/examples/8thlight.com/menu.rb +11 -0
- data/productions/examples/8thlight.com/services/props.rb +11 -0
- data/productions/examples/8thlight.com/services/services.txt +8 -0
- data/productions/examples/8thlight.com/services/styles.rb +2 -0
- data/productions/examples/8thlight.com/stages.rb +8 -0
- data/productions/examples/8thlight.com/styles.rb +210 -0
- data/productions/examples/calculator/players/button.rb +24 -0
- data/productions/examples/calculator/players/calculator.rb +15 -0
- data/productions/examples/calculator/players/calculator_model.rb +13 -0
- data/productions/examples/calculator/props.rb +23 -0
- data/productions/examples/calculator/styles.rb +36 -0
- data/productions/examples/langstons_ant/html_javascript/ant.css +39 -0
- data/productions/examples/langstons_ant/html_javascript/ant.html +22 -0
- data/productions/examples/langstons_ant/html_javascript/ant.js +23 -0
- data/productions/examples/langstons_ant/init.rb +4 -0
- data/productions/examples/langstons_ant/players/ant.rb +103 -0
- data/productions/examples/langstons_ant/players/log.rb +29 -0
- data/productions/examples/langstons_ant/players/start_stop_button.rb +37 -0
- data/productions/examples/langstons_ant/players/world.rb +35 -0
- data/productions/examples/langstons_ant/props.rb +22 -0
- data/productions/examples/langstons_ant/styles.rb +104 -0
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +10 -0
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +32 -0
- data/productions/examples/sandbox/alerts/incompatible_production/production.rb +52 -0
- data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +16 -0
- data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +8 -0
- data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +20 -0
- data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +15 -0
- data/productions/examples/sandbox/alerts/players/alerts.rb +17 -0
- data/productions/examples/sandbox/alerts/props.rb +10 -0
- data/productions/examples/sandbox/alerts/styles.rb +46 -0
- data/productions/examples/sandbox/background_images/props.rb +22 -0
- data/productions/examples/sandbox/background_images/styles.rb +40 -0
- data/productions/examples/sandbox/click_me/players/chromaton.rb +52 -0
- data/productions/examples/sandbox/click_me/props.rb +8 -0
- data/productions/examples/sandbox/click_me/styles.rb +11 -0
- data/productions/examples/sandbox/floaters/players/floater.rb +108 -0
- data/productions/examples/sandbox/floaters/players/surface.rb +21 -0
- data/productions/examples/sandbox/floaters/props.rb +10 -0
- data/productions/examples/sandbox/floaters/styles.rb +24 -0
- data/productions/examples/sandbox/frameing/players/sandbox.rb +17 -0
- data/productions/examples/sandbox/frameing/props.rb +35 -0
- data/productions/examples/sandbox/frameing/styles.rb +45 -0
- data/productions/examples/sandbox/gradients/players/spinner.rb +20 -0
- data/productions/examples/sandbox/gradients/players/teaser.rb +19 -0
- data/productions/examples/sandbox/gradients/players/wave.rb +19 -0
- data/productions/examples/sandbox/gradients/players/waves.rb +19 -0
- data/productions/examples/sandbox/gradients/props.rb +13 -0
- data/productions/examples/sandbox/gradients/styles.rb +47 -0
- data/productions/examples/sandbox/header.rb +22 -0
- data/productions/examples/sandbox/homer/players/homer.rb +24 -0
- data/productions/examples/sandbox/homer/props.rb +10 -0
- data/productions/examples/sandbox/homer/styles.rb +16 -0
- data/productions/examples/sandbox/images/arch.jpg +0 -0
- data/productions/examples/sandbox/images/beach.jpg +0 -0
- data/productions/examples/sandbox/images/homer.jpg +0 -0
- data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
- data/productions/examples/sandbox/images/logo.png +0 -0
- data/productions/examples/sandbox/images/marilyn.jpg +0 -0
- data/productions/examples/sandbox/images/space.png +0 -0
- data/productions/examples/sandbox/images_scene/props.rb +36 -0
- data/productions/examples/sandbox/images_scene/styles.rb +34 -0
- data/productions/examples/sandbox/inputs/players/button_input.rb +48 -0
- data/productions/examples/sandbox/inputs/players/check_box_input.rb +40 -0
- data/productions/examples/sandbox/inputs/players/combo_box_input.rb +41 -0
- data/productions/examples/sandbox/inputs/players/radio_button_input.rb +43 -0
- data/productions/examples/sandbox/inputs/players/text_area_input.rb +36 -0
- data/productions/examples/sandbox/inputs/players/text_box_input.rb +36 -0
- data/productions/examples/sandbox/inputs/props.rb +40 -0
- data/productions/examples/sandbox/inputs/styles.rb +39 -0
- data/productions/examples/sandbox/kiosk/players/kiosk.rb +39 -0
- data/productions/examples/sandbox/kiosk/props.rb +9 -0
- data/productions/examples/sandbox/kiosk/styles.rb +37 -0
- data/productions/examples/sandbox/players/sandbox.rb +11 -0
- data/productions/examples/sandbox/rounded_corners/players/box.rb +11 -0
- data/productions/examples/sandbox/rounded_corners/props.rb +22 -0
- data/productions/examples/sandbox/rounded_corners/styles.rb +17 -0
- data/productions/examples/sandbox/scrolling/players/add_button.rb +19 -0
- data/productions/examples/sandbox/scrolling/players/cell.rb +15 -0
- data/productions/examples/sandbox/scrolling/props.rb +45 -0
- data/productions/examples/sandbox/scrolling/styles.rb +33 -0
- data/productions/examples/sandbox/sketching/players/sketchpad.rb +46 -0
- data/productions/examples/sandbox/sketching/props.rb +25 -0
- data/productions/examples/sandbox/sketching/styles.rb +35 -0
- data/productions/examples/sandbox/sounds/bird.au +0 -0
- data/productions/examples/sandbox/sounds/cat.au +0 -0
- data/productions/examples/sandbox/sounds/cow.au +0 -0
- data/productions/examples/sandbox/sounds/dog.au +0 -0
- data/productions/examples/sandbox/sounds/donkey.au +0 -0
- data/productions/examples/sandbox/sounds/duck.au +0 -0
- data/productions/examples/sandbox/sounds/players/clip.rb +10 -0
- data/productions/examples/sandbox/sounds/props.rb +10 -0
- data/productions/examples/sandbox/sounds/styles.rb +17 -0
- data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +16 -0
- data/productions/examples/sandbox/stage_handles/players/sizer.rb +35 -0
- data/productions/examples/sandbox/stage_handles/props.rb +17 -0
- data/productions/examples/sandbox/stage_handles/styles.rb +58 -0
- data/productions/examples/sandbox/stages.rb +8 -0
- data/productions/examples/sandbox/styles.rb +35 -0
- data/productions/examples/sandbox/teaser/players/fader.rb +58 -0
- data/productions/examples/sandbox/teaser/props.rb +14 -0
- data/productions/examples/sandbox/teaser/styles.rb +21 -0
- data/productions/examples/tutorials/tutorial_1/players/sample.rb +11 -0
- data/productions/examples/tutorials/tutorial_1/props.rb +9 -0
- data/productions/examples/tutorials/tutorial_1/styles.rb +25 -0
- data/productions/playbills.lll +1 -0
- data/productions/stage_composer/init.rb +10 -0
- data/productions/stage_composer/inspector/players/inspector.rb +80 -0
- data/productions/stage_composer/inspector/players/prop_row.rb +12 -0
- data/productions/stage_composer/inspector/players/prop_tree.rb +33 -0
- data/productions/stage_composer/inspector/players/style_table.rb +12 -0
- data/productions/stage_composer/inspector/players/style_value.rb +16 -0
- data/productions/stage_composer/inspector/props.rb +19 -0
- data/productions/stage_composer/inspector/styles.rb +71 -0
- data/productions/stage_composer/lib/init.rb +5 -0
- data/productions/stage_composer/lib/limelight/composer/controller.rb +51 -0
- data/productions/stage_composer/lib/limelight/composer/lethargy.rb +24 -0
- data/productions/stage_composer/production.rb +6 -0
- data/productions/stage_composer/stages.rb +15 -0
- data/productions/startup/images/logo.png +0 -0
- data/productions/startup/images/splash.png +0 -0
- data/productions/startup/production.rb +52 -0
- data/productions/startup/spec/default_scene/default_scene_spec.rb +16 -0
- data/productions/startup/spec/spec_helper.rb +8 -0
- data/productions/startup/stages.rb +9 -0
- data/productions/startup/styles.rb +15 -0
- data/productions/startup/welcome/players/browse_button.rb +10 -0
- data/productions/startup/welcome/players/download_button.rb +17 -0
- data/productions/startup/welcome/players/sandbox_button.rb +11 -0
- data/productions/startup/welcome/props.rb +23 -0
- data/productions/startup/welcome/styles.rb +103 -0
- data/spec/limelight/builtin/players/button_spec.rb +20 -0
- data/spec/limelight/builtin/players/check_box_spec.rb +29 -0
- data/spec/limelight/builtin/players/combo_box_spec.rb +29 -0
- data/spec/limelight/builtin/players/image_spec.rb +43 -0
- data/spec/limelight/builtin/players/password_box_spec.rb +27 -0
- data/spec/limelight/builtin/players/radio_button_spec.rb +64 -0
- data/spec/limelight/builtin/players/stage_mover_spec.rb +36 -0
- data/spec/limelight/builtin/players/stage_sizer_spec.rb +40 -0
- data/spec/limelight/builtin/players/text_area_spec.rb +27 -0
- data/spec/limelight/builtin/players/text_box_spec.rb +27 -0
- data/spec/limelight/builtin/utilities_production/spec_helper.rb +7 -0
- data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +146 -0
- data/spec/limelight/casting_director_spec.rb +164 -0
- data/spec/limelight/client/playbills_spec.rb +79 -0
- data/spec/limelight/commands/command_spec.rb +26 -0
- data/spec/limelight/commands/create_command_spec.rb +108 -0
- data/spec/limelight/commands/freeze_command_spec.rb +143 -0
- data/spec/limelight/commands/help_command_spec.rb +42 -0
- data/spec/limelight/commands/open_command_spec.rb +52 -0
- data/spec/limelight/commands/pack_command_spec.rb +26 -0
- data/spec/limelight/commands/unpack_command_spec.rb +47 -0
- data/spec/limelight/data_spec.rb +36 -0
- data/spec/limelight/dsl/prop_builder_spec.rb +245 -0
- data/spec/limelight/dsl/stage_builder_spec.rb +90 -0
- data/spec/limelight/dsl/styles_builder_spec.rb +194 -0
- data/spec/limelight/file_chooser_spec.rb +64 -0
- data/spec/limelight/file_filter_spec.rb +29 -0
- data/spec/limelight/file_loader_spec.rb +28 -0
- data/spec/limelight/gems_spec.rb +92 -0
- data/spec/limelight/java_util_spec.rb +37 -0
- data/spec/limelight/main_spec.rb +40 -0
- data/spec/limelight/paint_action_spec.rb +30 -0
- data/spec/limelight/pen_spec.rb +62 -0
- data/spec/limelight/producer_spec.rb +210 -0
- data/spec/limelight/production_spec.rb +100 -0
- data/spec/limelight/prop_spec.rb +431 -0
- data/spec/limelight/scene_spec.rb +173 -0
- data/spec/limelight/stage_spec.rb +202 -0
- data/spec/limelight/string_spec.rb +38 -0
- data/spec/limelight/studio_spec.rb +157 -0
- data/spec/limelight/styles_spec.rb +53 -0
- data/spec/limelight/templates/production_templater_spec.rb +66 -0
- data/spec/limelight/templates/scene_templater_spec.rb +51 -0
- data/spec/limelight/templates/templater_logger_spec.rb +41 -0
- data/spec/limelight/templates/templater_spec.rb +107 -0
- data/spec/limelight/theater_spec.rb +72 -0
- data/spec/limelight/util/downloader_spec.rb +92 -0
- data/spec/spec_helper.rb +70 -0
- metadata +335 -0
|
@@ -0,0 +1,68 @@
|
|
|
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.
|
|
3
|
+
|
|
4
|
+
require 'limelight/file_filter'
|
|
5
|
+
|
|
6
|
+
module Limelight
|
|
7
|
+
|
|
8
|
+
# An object that manages the selection of a file on the file system. When invoked, a file chooser window
|
|
9
|
+
# will pop up and allow the user to select a file.
|
|
10
|
+
#
|
|
11
|
+
class FileChooser
|
|
12
|
+
|
|
13
|
+
attr_reader :chooser, :chosen_file
|
|
14
|
+
|
|
15
|
+
# Creates a new FileChooser. Options may include:
|
|
16
|
+
# * :description => a string describing the desired file
|
|
17
|
+
# * :parent => (required) the parent window
|
|
18
|
+
# * :directory => starting directory
|
|
19
|
+
# * :title => title of the window
|
|
20
|
+
# * :directories_only => boolean, true if the user must select a directory
|
|
21
|
+
# * :files_only => boolean, true if the user must select a file
|
|
22
|
+
#
|
|
23
|
+
def initialize(options = {}, &filter)
|
|
24
|
+
@options = options
|
|
25
|
+
@parent = options[:parent]
|
|
26
|
+
create_chooser
|
|
27
|
+
@chooser.setFileFilter(FileFilter.new(@options[:description], &filter)) if filter
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Opens the windows and returns the chosen file.
|
|
31
|
+
#
|
|
32
|
+
def choose_file
|
|
33
|
+
returnVal = @chooser.showOpenDialog(@parent);
|
|
34
|
+
|
|
35
|
+
if(returnVal == javax.swing.JFileChooser::APPROVE_OPTION)
|
|
36
|
+
@chosen_file = @chooser.getSelectedFile().absolute_path
|
|
37
|
+
else
|
|
38
|
+
@chosen_file = nil
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
return @chosen_file
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private ###############################################
|
|
45
|
+
|
|
46
|
+
def create_chooser
|
|
47
|
+
if @options.has_key?(:directory)
|
|
48
|
+
@chooser = javax.swing.JFileChooser.new(@options[:directory])
|
|
49
|
+
else
|
|
50
|
+
@chooser = javax.swing.JFileChooser.new
|
|
51
|
+
end
|
|
52
|
+
configure_file_selection_mode
|
|
53
|
+
@chooser.setDialogTitle(@options[:title]) if @options[:title]
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def configure_file_selection_mode
|
|
57
|
+
if(@options[:directories_only])
|
|
58
|
+
@chooser.setFileSelectionMode(javax.swing.JFileChooser::DIRECTORIES_ONLY)
|
|
59
|
+
elsif(@options[:files_only])
|
|
60
|
+
@chooser.setFileSelectionMode(javax.swing.JFileChooser::FILES_ONLY)
|
|
61
|
+
else
|
|
62
|
+
@chooser.setFileSelectionMode(javax.swing.JFileChooser::FILES_AND_DIRECTORIES)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
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.
|
|
3
|
+
|
|
4
|
+
module Limelight
|
|
5
|
+
|
|
6
|
+
# A FileFiler is used in conjunction with FileChooser. It is used to help the user select only files of the
|
|
7
|
+
# desired type.
|
|
8
|
+
#
|
|
9
|
+
class FileFilter < javax.swing.filechooser::FileFilter
|
|
10
|
+
|
|
11
|
+
attr_reader :description, :filter
|
|
12
|
+
|
|
13
|
+
# The filter parameter is a block that contains the logic to decide whether a given file is selectable or not.
|
|
14
|
+
#
|
|
15
|
+
def initialize(description, &filter)
|
|
16
|
+
super()
|
|
17
|
+
@description = description
|
|
18
|
+
@filter = filter
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Called to determine if a file is selectable. Invokes the filter block.
|
|
22
|
+
#
|
|
23
|
+
def accept(file)
|
|
24
|
+
return @filter.call(file)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def getDescription
|
|
28
|
+
return @description
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
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.
|
|
3
|
+
|
|
4
|
+
module Limelight
|
|
5
|
+
|
|
6
|
+
class FileLoader #:nodoc:
|
|
7
|
+
|
|
8
|
+
include ResourceLoader
|
|
9
|
+
|
|
10
|
+
attr_reader :root
|
|
11
|
+
|
|
12
|
+
def self.for_root(root)
|
|
13
|
+
loader = new
|
|
14
|
+
loader.reset_on_root(root)
|
|
15
|
+
return loader
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def reset_on_root(root)
|
|
19
|
+
@root = File.expand_path(root)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def path_to(path)
|
|
23
|
+
if (path == File.expand_path(path))
|
|
24
|
+
return path
|
|
25
|
+
else
|
|
26
|
+
return File.expand_path(File.join(@root, path))
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def exists?(path)
|
|
31
|
+
return File.exists?(path_to(path))
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
alias :pathTo :path_to
|
|
35
|
+
|
|
36
|
+
def load(path)
|
|
37
|
+
file_to_load = path_to(path)
|
|
38
|
+
raise LimelightException.new("File not found: #{file_to_load}") if not File.exists?(file_to_load)
|
|
39
|
+
return IO.read(file_to_load)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
alias :read :load
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
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.
|
|
3
|
+
|
|
4
|
+
module Limelight
|
|
5
|
+
module Gems
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
|
|
9
|
+
attr_accessor :current_production
|
|
10
|
+
|
|
11
|
+
def load_path
|
|
12
|
+
@load_path = $: if @load_path.nil?
|
|
13
|
+
return @load_path
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def install(gem_name, paths)
|
|
17
|
+
stack = paths.dup
|
|
18
|
+
while !stack.empty?
|
|
19
|
+
load_path.unshift File.join(current_production.gems_directory, gem_name, stack.pop)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
#TODO - MDM - This doesn't work when loading gems like: gem 'gem_name'. Need make use of Gem::SourceIndex. See SourceIndex.load_gems_in
|
|
24
|
+
def install_gems_in_production(production)
|
|
25
|
+
self.current_production = production
|
|
26
|
+
|
|
27
|
+
gems_dir = current_production.gems_directory
|
|
28
|
+
if File.exists?(gems_dir) && File.directory?(gems_dir)
|
|
29
|
+
gems = Dir.entries(gems_dir).select { |dir| dir != "." && dir != ".." }
|
|
30
|
+
gems.sort!
|
|
31
|
+
gems.reverse!
|
|
32
|
+
gems.each do |gem_name|
|
|
33
|
+
init_file = File.join(gems_dir, gem_name, 'limelight_init.rb')
|
|
34
|
+
if File.exists?(init_file)
|
|
35
|
+
load init_file
|
|
36
|
+
else
|
|
37
|
+
puts "WARNING: Frozen gem (#{gem_name}) is missing limelight_init.rb file."
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
Gem.use_paths(self.current_production.gems_root, Gem.default_path)
|
|
43
|
+
|
|
44
|
+
self.current_production = nil
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
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.
|
|
3
|
+
|
|
4
|
+
module Limelight #:nodoc:
|
|
5
|
+
|
|
6
|
+
Main = Java::limelight.Main
|
|
7
|
+
ResourceLoader = Java::limelight.ResourceLoader
|
|
8
|
+
Context = Java::limelight.Context
|
|
9
|
+
|
|
10
|
+
module Background
|
|
11
|
+
Animation = Java::limelight.background.Animation
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module Styles #:nodoc:
|
|
15
|
+
Style = Java::limelight.styles.Style
|
|
16
|
+
FlatStyle = Java::limelight.styles.FlatStyle
|
|
17
|
+
RichStyle = Java::limelight.styles.RichStyle
|
|
18
|
+
ScreenableStyle = Java::limelight.styles.ScreenableStyle
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
module Util #:nodoc:
|
|
22
|
+
Colors = Java::limelight.util.Colors
|
|
23
|
+
Version = Java::limelight.util.Version
|
|
24
|
+
Debug = Java::limelight.util.Debug
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
module UI #:nodoc:
|
|
28
|
+
|
|
29
|
+
ButtonGroupCache = Java::limelight.ui.ButtonGroupCache
|
|
30
|
+
|
|
31
|
+
module Model #:nodoc:
|
|
32
|
+
Frame = Java::limelight.ui.model.StageFrame
|
|
33
|
+
Panel = Java::limelight.ui.model.PropPanel
|
|
34
|
+
ImagePanel = Java::limelight.ui.model.ImagePanel
|
|
35
|
+
|
|
36
|
+
module Inputs #:nodoc:
|
|
37
|
+
ButtonPanel = Java::limelight.ui.model.inputs.ButtonPanel
|
|
38
|
+
CheckBoxPanel = Java::limelight.ui.model.inputs.CheckBoxPanel
|
|
39
|
+
ComboBoxPanel = Java::limelight.ui.model.inputs.ComboBoxPanel
|
|
40
|
+
RadioButtonPanel = Java::limelight.ui.model.inputs.RadioButtonPanel
|
|
41
|
+
TextAreaPanel = Java::limelight.ui.model.inputs.TextAreaPanel
|
|
42
|
+
TextBoxPanel = Java::limelight.ui.model.inputs.TextBoxPanel
|
|
43
|
+
PasswordBoxPanel = Java::limelight.ui.model.inputs.PasswordBoxPanel
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
module Api #:nodoc:
|
|
48
|
+
Scene = Java::limelight.ui.api.Scene
|
|
49
|
+
Prop = Java::limelight.ui.api.Prop
|
|
50
|
+
Stage = Java::limelight.ui.api.Stage
|
|
51
|
+
Theater = Java::limelight.ui.api.Theater
|
|
52
|
+
Studio = Java::limelight.ui.api.Studio
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
module Painting #:nodoc:
|
|
56
|
+
PaintAction = Java::limelight.ui.painting.PaintAction
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
module Util #:nodoc:
|
|
62
|
+
|
|
63
|
+
Packer = Java::limelight.io.Packer
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
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.
|
|
3
|
+
|
|
4
|
+
require 'limelight/string'
|
|
5
|
+
|
|
6
|
+
class Class
|
|
7
|
+
|
|
8
|
+
# Class level method to creates Java style getters.
|
|
9
|
+
#
|
|
10
|
+
# getters :foo, :bar
|
|
11
|
+
#
|
|
12
|
+
# Creates the following methods:
|
|
13
|
+
#
|
|
14
|
+
# def getFoo
|
|
15
|
+
# return @foo
|
|
16
|
+
# end
|
|
17
|
+
#
|
|
18
|
+
# def getBar
|
|
19
|
+
# return @bar
|
|
20
|
+
# end
|
|
21
|
+
#
|
|
22
|
+
def getters(*symbols)
|
|
23
|
+
symbols.each do |symbol|
|
|
24
|
+
self.class_eval "def get#{symbol.to_s.camalized}; return #{symbol}; end"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Class level method to creates Java style setters.
|
|
29
|
+
#
|
|
30
|
+
# setters :foo, :bar
|
|
31
|
+
#
|
|
32
|
+
# Creates the following methods:
|
|
33
|
+
#
|
|
34
|
+
# def setFoo(value)
|
|
35
|
+
# @foo = value
|
|
36
|
+
# end
|
|
37
|
+
#
|
|
38
|
+
# def setBar(value)
|
|
39
|
+
# @bar = value
|
|
40
|
+
# end
|
|
41
|
+
#
|
|
42
|
+
def setters(*symbols)
|
|
43
|
+
symbols.each do |symbol|
|
|
44
|
+
self.class_eval "def set#{symbol.to_s.camalized}(value); self.#{symbol} = value; end"
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
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.
|
|
3
|
+
|
|
4
|
+
module Limelight
|
|
5
|
+
|
|
6
|
+
# Most exeception thrown by Limelight Ruby code will be of this type.
|
|
7
|
+
#
|
|
8
|
+
class LimelightException < Exception
|
|
9
|
+
|
|
10
|
+
def initialize(thing)
|
|
11
|
+
case thing
|
|
12
|
+
when String
|
|
13
|
+
super(thing)
|
|
14
|
+
when Exception
|
|
15
|
+
super("#{thing.class}: #{thing.message}")
|
|
16
|
+
set_backtrace(thing.backtrace)
|
|
17
|
+
else
|
|
18
|
+
raise "Can't build LimelightException out of #{thing}"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
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.
|
|
3
|
+
|
|
4
|
+
require 'limelight/commands/command'
|
|
5
|
+
|
|
6
|
+
module Limelight
|
|
7
|
+
|
|
8
|
+
# Used to open and manage Limelight Productions.
|
|
9
|
+
#
|
|
10
|
+
# Productions may have a single scene or multiple scenes.
|
|
11
|
+
#
|
|
12
|
+
# Single-Scene Production Directory Structure:
|
|
13
|
+
#
|
|
14
|
+
# - calculator
|
|
15
|
+
# | - props.rb
|
|
16
|
+
# | - styles.rb
|
|
17
|
+
# | - players
|
|
18
|
+
# | - <player_name>.rb
|
|
19
|
+
# | - *
|
|
20
|
+
# | - stages.rb
|
|
21
|
+
# | - production.rb
|
|
22
|
+
#
|
|
23
|
+
# In a Single-Scene production, the scene name and production name are the same. As seen above, both names are 'calculator'.
|
|
24
|
+
# Inside the scene there are three files and one directory, all of which are options.
|
|
25
|
+
#
|
|
26
|
+
# == props.rb
|
|
27
|
+
# This file defines the props contained in the scene
|
|
28
|
+
# See Limelight::PropBuilder
|
|
29
|
+
#
|
|
30
|
+
# == styles.rb
|
|
31
|
+
# This file defines the styles used in the scene
|
|
32
|
+
# See Limelight::StylesBuilder
|
|
33
|
+
#
|
|
34
|
+
# == players
|
|
35
|
+
# A directory containing all the players used in the scene. Players are modules that are included by Prop objects.
|
|
36
|
+
# If you have a Prop named 'wall', then you may optionaly have a file named 'wall.rb' in the players directory.
|
|
37
|
+
# Inside 'wall.rb' you would define a module named 'Wall'. All behavior defined in the Wall modules will automatically be included
|
|
38
|
+
# in every prop named 'wall'.
|
|
39
|
+
#
|
|
40
|
+
# == stages.rb
|
|
41
|
+
# This file uses a DSL to configure the stages that will be used in the production.
|
|
42
|
+
# See Limelight::StagesBuilder
|
|
43
|
+
#
|
|
44
|
+
# == production.rb
|
|
45
|
+
# This file uses a DSL to configure the current Production.
|
|
46
|
+
# See Limelight::ProductionBuilder
|
|
47
|
+
#
|
|
48
|
+
# Multiple-Scene Production Directory Structure:
|
|
49
|
+
#
|
|
50
|
+
# - sandbox
|
|
51
|
+
# | - stages.rb
|
|
52
|
+
# | - production.rb
|
|
53
|
+
# | - styles.rb
|
|
54
|
+
# | - players
|
|
55
|
+
# | - <player_name>.rb
|
|
56
|
+
# | - fader
|
|
57
|
+
# | - props.rb
|
|
58
|
+
# | - styles.rb
|
|
59
|
+
# | - players
|
|
60
|
+
# | - <player_name>.rb
|
|
61
|
+
# | - floater
|
|
62
|
+
# | - props.rb
|
|
63
|
+
# | - styles.rb
|
|
64
|
+
# | - players
|
|
65
|
+
# | - <player_name>.rb
|
|
66
|
+
#
|
|
67
|
+
# In a Multiple-Scene production, the production acquires that name of the root directory. In this case the production is named 'sandbox'.
|
|
68
|
+
# Each directory inside the root directory is a scene. This production has two scenes named 'fader' and 'floater'. Each scene is structured
|
|
69
|
+
# the same as in a Single-Scene production with the exception of the 'stages.rb' file. This file is specific to the production. The production
|
|
70
|
+
# may contain a 'styles.rb' which contains styles used by multiple scenes. If some players are used in multiple Scenes, then it is useful to
|
|
71
|
+
# to create a players directory in the Production root to hold the common players. Other files may exist in the directory structure and they will not
|
|
72
|
+
# conflict with Limelight.
|
|
73
|
+
#
|
|
74
|
+
# See Limelight::Commands
|
|
75
|
+
#
|
|
76
|
+
class Main
|
|
77
|
+
|
|
78
|
+
# Instantiates a new instance of Main to process the command
|
|
79
|
+
#
|
|
80
|
+
def self.run(args)
|
|
81
|
+
new().run(args)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Executes behavior of limelight command.
|
|
85
|
+
#
|
|
86
|
+
def run(args)
|
|
87
|
+
command_name = args.shift
|
|
88
|
+
command = Commands[command_name]
|
|
89
|
+
if command
|
|
90
|
+
command.new.run(args)
|
|
91
|
+
else
|
|
92
|
+
usage
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Prints the usage of the limelight command.
|
|
97
|
+
#
|
|
98
|
+
def usage
|
|
99
|
+
Commands["help"].new.run([])
|
|
100
|
+
exit -1
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
private ###############################################
|
|
104
|
+
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
end
|