class Glimmer::SWT::MenuItemProxy
Proxy for org.eclipse.swt.widgets.MenuItem
Follows the Proxy Design Pattern since it's a proxy for an HTML based menu Follows the Adapter Design Pattern since it's adapting a Glimmer
DSL
for SWT
widget
Constants
- STYLE
Attributes
accelerator[RW]
Public Class Methods
new(parent, args)
click to toggle source
Calls superclass method
# File lib/glimmer/swt/menu_item_proxy.rb, line 46 def initialize(parent, args) args.push(:push) if args.empty? super(parent, args) # TODO do not add the following event till post_add_content to avoid adding if already one on_widget_selected event existed on_widget_selected { # No Op, just trigger selection } end
Public Instance Methods
cascade?()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 59 def cascade? args.include?(:cascade) end
check?()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 71 def check? args.include?(:check) end
div_content()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 110 def div_content div_attributes = {} icon_suffix = check? ? 'check' : 'bullet' div(div_attributes) { unless separator? # empty content automatically gets a separator style in jQuery-UI span(class: "menu-item-selection #{"ui-icon ui-icon-#{icon_suffix}" if selection}") {} span(class: 'ui-menu-icon ui-icon ui-icon-caret-1-e') {} if cascade? && !parent.bar? span(class: 'menu-item-text') { @text } '' end } end
dom()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 164 def dom # TODO support rendering image @dom ||= html { li(id: id, class: "#{name} #{'disabled' unless enabled}") { div_content } }.to_s end
element()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 160 def element 'li' end
enabled=(value)
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 104 def enabled=(value) @enabled = value dom_element.toggle_class('disabled', !@enabled) @enabled end
observation_request_to_event_mapping()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 135 def observation_request_to_event_mapping { 'on_widget_selected' => { event: 'mouseup', event_handler: -> (event_listener) { -> (event) { if enabled && (push? || radio? || check?) if check? self.toggle_selection! elsif radio? && !selection parent.children.detect(&:selection)&.selection = false self.selection = true end if !root_menu.bar? remove_event_listener_proxies root_menu.close end event_listener.call(event) end } }, }, } end
post_initialize_child(child)
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 55 def post_initialize_child(child) @children << child end
push?()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 63 def push? args.include?(:push) end
radio?()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 67 def radio? args.include?(:radio) end
selection()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 89 def selection @selection end
selection=(value)
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 93 def selection=(value) @selection = value icon_suffix = check? ? 'check' : 'bullet' dom_element.find('.menu-item-selection').toggle_class("ui-icon ui-icon-#{icon_suffix}", @selection) @selection end
separator?()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 75 def separator? args.include?(:separator) end
skip_content_on_render_blocks?()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 131 def skip_content_on_render_blocks? true end
text()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 79 def text @text end
text=(value)
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 83 def text=(value) @text = value dom_element.find('.menu-item-text').html(@text) @text end
toggle_selection!()
click to toggle source
# File lib/glimmer/swt/menu_item_proxy.rb, line 100 def toggle_selection! self.selection = !selection end