Module: Glimmer::UI::CustomShell

Includes:
CustomWidget
Included in:
EmailShell
Defined in:
lib/glimmer/ui/custom_shell.rb

Instance Attribute Summary

Attributes included from CustomWidget

#body_root, #options, #parent, #swt_style

Class Method Summary collapse

Instance Method Summary collapse

Methods included from CustomWidget

add_custom_widget_namespaces_for, #add_observer, #async_exec, #attribute_setter, #can_add_observer?, #can_handle_observation_request?, #content, custom_widget_namespaces, for, #get_attribute, #handle_observation_request, #has_attribute?, #has_instance_method?, #has_style?, #local_respond_to?, #method_missing, namespaces_for_class, #post_initialize_child, reset_custom_widget_namespaces, #respond_to?, #set_attribute, #sync_exec

Methods included from DataBinding::ObservableModel

#add_property_writer_observers

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Glimmer::UI::CustomWidget

Class Method Details

.encoded_request_parameter_stringObject



42
43
44
# File 'lib/glimmer/ui/custom_shell.rb', line 42

def encoded_request_parameter_string
  `document.location.href`.match(/\?(.*)$/).to_a[1].to_s
end

.included(klass) ⇒ Object



32
33
34
35
36
# File 'lib/glimmer/ui/custom_shell.rb', line 32

def included(klass)
  klass.extend(CustomWidget::ClassMethods)
  klass.include(Glimmer) 
  Glimmer::UI::CustomWidget.add_custom_widget_namespaces_for(klass)
end

.request_parameter_stringObject



38
39
40
# File 'lib/glimmer/ui/custom_shell.rb', line 38

def request_parameter_string
  URI.decode_www_form_component(`document.location.href`.match(/\?(.*)$/).to_a[1].to_s)
end

.requested?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/glimmer/ui/custom_shell.rb', line 50

def requested?
  request_parameter_string.include?('custom_shell=')
end

.requested_and_not_handled?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/glimmer/ui/custom_shell.rb', line 46

def requested_and_not_handled?
  requested? && !request_parameter_string.include?('custom_shell_handled=true')        
end

Instance Method Details

#centerObject



83
84
85
# File 'lib/glimmer/ui/custom_shell.rb', line 83

def center
  body_root.center
end

#closeObject



71
72
73
# File 'lib/glimmer/ui/custom_shell.rb', line 71

def close
  body_root.close
end

#hideObject



75
76
77
# File 'lib/glimmer/ui/custom_shell.rb', line 75

def hide
  body_root.hide
end

#initialize(parent, args, options, &content) ⇒ Object

Raises:

  • (Error)


55
56
57
58
# File 'lib/glimmer/ui/custom_shell.rb', line 55

def initialize(parent, args, options, &content)
  super(parent, args, options, &content)
  raise Error, 'Invalid custom shell body root! Must be a shell or another custom shell.' unless body_root.is_a?(Glimmer::SWT::ShellProxy) || body_root.is_a?(Glimmer::UI::CustomShell)
end

#openObject

Classes may override



61
62
63
64
# File 'lib/glimmer/ui/custom_shell.rb', line 61

def open
  # TODO consider the idea of delaying rendering till the open method
  body_root.open
end

#showObject

DO NOT OVERRIDE. JUST AN ALIAS FOR ‘#open`. OVERRIDE `#open` INSTEAD.



67
68
69
# File 'lib/glimmer/ui/custom_shell.rb', line 67

def show
  open
end

#start_event_loopObject



87
88
89
# File 'lib/glimmer/ui/custom_shell.rb', line 87

def start_event_loop
  body_root.start_event_loop
end

#visible?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/glimmer/ui/custom_shell.rb', line 79

def visible?
  body_root.visible?
end