Sha256: 96ae882b7e5f44c5a24bcd7a59c3bef77ae8a45ddc2900a6b80e3e393ca43b68
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
require 'glimmer/data_binding/observable_element' require 'glimmer/swt/widget_proxy' module Glimmer module SWT class ComboProxy < WidgetProxy include Glimmer::DataBinding::ObservableElement attr_reader :text, :items def initialize(parent, args) super(parent, args) @items = [] end def element 'select' end def text=(value) @text = value Document.find(path).value = value end def items=(the_items) @items = the_items items_dom = items.to_a.map do |item| option_hash = {value: item} option_hash[:selected] = 'selected' if @text == item html { option(option_hash) { item } }.to_s end dom_element.html(items_dom) end def observation_request_to_event_mapping { 'on_widget_selected' => { event: 'change', event_handler: -> (event_listener) { -> (event) { @text = event.target.value event_listener.call(event) } } } } end def dom items = @items select_id = id select_style = css select_class = name @dom ||= html { select(id: select_id, class: select_class, style: select_style) { } }.to_s end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
glimmer-dsl-opal-0.4.0 | lib/glimmer/swt/combo_proxy.rb |
glimmer-dsl-opal-0.3.0 | lib/glimmer/swt/combo_proxy.rb |
glimmer-dsl-opal-0.2.0 | lib/glimmer/swt/combo_proxy.rb |