Class: Glimmer::UI::Video
- Inherits:
-
Object
- Object
- Glimmer::UI::Video
show all
- Includes:
- CustomWidget
- Defined in:
- lib/glimmer/ui/video.rb
Defined Under Namespace
Classes: VideoObserverBrowserFunction
Instance Attribute Summary
Attributes included from CustomWidget
#body_root, #options, #parent, #swt_style, #swt_widget
Instance Method Summary
collapse
add_custom_widget_namespaces_for, #add_observer, after_body, #async_exec, #attribute_setter, before_body, body, #can_add_observer?, #content, custom_widget_namespaces, def_option_attr_readers, #dispose, for, #get_attribute, #has_attribute?, #has_instance_method?, #has_style?, #initialize, namespaces_for_class, option, options, reset_custom_widget_namespaces, #set_attribute, #sync_exec
#add_observer, #add_property_writer_observers, #array_object_observer_for, #ensure_array_object_observer, #has_observer?, #has_observer_for_any_property?, #notify_observers, #property_observer_hash, #property_observer_list, #remove_observer, #unregister_dependent_observers
#add_observer, #remove_observer
Instance Method Details
#can_handle_observation_request?(observation_request) ⇒ Boolean
144
145
146
147
148
149
150
151
|
# File 'lib/glimmer/ui/video.rb', line 144
def can_handle_observation_request?(observation_request)
result = false
if observation_request.start_with?('on_')
attribute = observation_request.sub(/^on_/, '')
result = OBSERVED_ATTRIBUTE_TO_PROPERTY_MAPPING.keys.include?(attribute)
end
result || super
end
|
#duration ⇒ Object
140
141
142
|
# File 'lib/glimmer/ui/video.rb', line 140
def duration
video_attribute('duration')
end
|
#ended? ⇒ Boolean
123
124
125
|
# File 'lib/glimmer/ui/video.rb', line 123
def ended?
video_attribute('ended')
end
|
#file=(a_file) ⇒ Object
93
94
95
96
|
# File 'lib/glimmer/ui/video.rb', line 93
def file=(a_file)
options[:file] = a_file
set_video_source
end
|
#handle_observation_request(observation_request, &block) ⇒ Object
153
154
155
156
157
158
159
160
161
162
163
164
|
# File 'lib/glimmer/ui/video.rb', line 153
def handle_observation_request(observation_request, &block)
if observation_request.start_with?('on_')
attribute = observation_request.sub(/^on_/, '')
if attribute == 'loaded' && !@completed
super('on_completed', &block)
elsif OBSERVED_ATTRIBUTE_TO_PROPERTY_MAPPING.keys.include?(attribute)
add_video_observer(block, OBSERVED_ATTRIBUTE_TO_PROPERTY_MAPPING[attribute])
else
super
end
end
end
|
#loaded? ⇒ Boolean
Video fully loaded and ready for playback
128
129
130
|
# File 'lib/glimmer/ui/video.rb', line 128
def loaded?
!!@completed
end
|
#pause ⇒ Object
107
108
109
|
# File 'lib/glimmer/ui/video.rb', line 107
def pause
video_action('pause')
end
|
#paused? ⇒ Boolean
115
116
117
|
# File 'lib/glimmer/ui/video.rb', line 115
def paused?
video_attribute('paused')
end
|
#play ⇒ Object
103
104
105
|
# File 'lib/glimmer/ui/video.rb', line 103
def play
video_action('play')
end
|
#playing? ⇒ Boolean
119
120
121
|
# File 'lib/glimmer/ui/video.rb', line 119
def playing?
!paused?
end
|
#position ⇒ Object
132
133
134
|
# File 'lib/glimmer/ui/video.rb', line 132
def position
video_attribute('currentTime')
end
|
#position=(new_position) ⇒ Object
136
137
138
|
# File 'lib/glimmer/ui/video.rb', line 136
def position=(new_position)
video_attribute_set('currentTime', new_position)
end
|
#reload ⇒ Object
111
112
113
|
# File 'lib/glimmer/ui/video.rb', line 111
def reload
video_action('load')
end
|
#source ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/glimmer/ui/video.rb', line 71
def source
file_source = file
if file_source
if file_source.start_with?('uri:classloader')
file_path = file_source.split(/\/\//).last
file_name = File.basename(file_source)
tmp_dir = ENV['temp'] ? File.expand_path(ENV['temp']) : '/tmp'
tmp_dir += '/glimmer/lib/glimmer/ui/video'
FileUtils.mkdir_p(tmp_dir)
tmp_file = File.join(tmp_dir, file_name)
file_content = File.binread(file_source) rescue File.binread(file_path)
File.binwrite(tmp_file, file_content)
"file://#{tmp_file}"
else
"file://#{file_source}"
end
else
url
end
end
|
#url=(a_url) ⇒ Object
98
99
100
101
|
# File 'lib/glimmer/ui/video.rb', line 98
def url=(a_url)
options[:url] = a_url
set_video_source
end
|