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_observer, after_body, #async_exec, #attribute_setter, before_body, body, #can_add_observer?, #content, def_option_attr_readers, #dispose, for, #get_attribute, #has_attribute?, #has_style?, #initialize, option, options, #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
133
134
135
136
137
138
139
140
|
# File 'lib/glimmer/ui/video.rb', line 133
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
129
130
131
|
# File 'lib/glimmer/ui/video.rb', line 129
def duration
video_attribute('duration')
end
|
#ended? ⇒ Boolean
112
113
114
|
# File 'lib/glimmer/ui/video.rb', line 112
def ended?
video_attribute('ended')
end
|
#handle_observation_request(observation_request, &block) ⇒ Object
142
143
144
145
146
147
148
149
150
151
152
153
|
# File 'lib/glimmer/ui/video.rb', line 142
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
117
118
119
|
# File 'lib/glimmer/ui/video.rb', line 117
def loaded?
!!@completed
end
|
#pause ⇒ Object
96
97
98
|
# File 'lib/glimmer/ui/video.rb', line 96
def pause
video_action('pause')
end
|
#paused? ⇒ Boolean
104
105
106
|
# File 'lib/glimmer/ui/video.rb', line 104
def paused?
video_attribute('paused')
end
|
#play ⇒ Object
92
93
94
|
# File 'lib/glimmer/ui/video.rb', line 92
def play
video_action('play')
end
|
#playing? ⇒ Boolean
108
109
110
|
# File 'lib/glimmer/ui/video.rb', line 108
def playing?
!paused?
end
|
#position ⇒ Object
121
122
123
|
# File 'lib/glimmer/ui/video.rb', line 121
def position
video_attribute('currentTime')
end
|
#position=(new_position) ⇒ Object
125
126
127
|
# File 'lib/glimmer/ui/video.rb', line 125
def position=(new_position)
video_attribute_set('currentTime', new_position)
end
|
#reload ⇒ Object
100
101
102
|
# File 'lib/glimmer/ui/video.rb', line 100
def reload
video_action('load')
end
|
#source ⇒ Object
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/glimmer/ui/video.rb', line 70
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
|