Sha256: 25d60456f4f391d0608ba250caa56ab544d0d9b1a5ae4093653b106abffcfa12

Contents?: true

Size: 980 Bytes

Versions: 3

Compression:

Stored size: 980 Bytes

Contents

require 'glimmer/swt/widget_proxy'

module Glimmer
  module SWT
    class ButtonProxy < WidgetProxy
      attr_reader :text
      
      def text=(value)
        @text = value
        dom_element.html(@text)
      end
      
      def element
        'button'
      end

      def observation_request_to_event_mapping
        {
          'on_widget_selected' => {
            event: 'click'
          }, 
        }
      end
      
      def dom
        input_text = @text
        input_id = id
        input_style = css
        input_args = {}
        input_disabled = @enabled ? {} : {'disabled': 'disabled'}
        input_args = input_args.merge(type: 'password') if has_style?(:password)
        @dom ||= html {
          button(input_args.merge(id: input_id, class: name, style: input_style, style: 'min-width: 27px; min-height: 27px;').merge(input_disabled)) {
            input_text.to_s == '' ? '&nbsp;' : input_text
          }
        }.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/button_proxy.rb
glimmer-dsl-opal-0.3.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.2.0 lib/glimmer/swt/button_proxy.rb