Sha256: 2969905f5e30e2b7f60e75a9501a08f82508402a90640af7086e1babe7dcb475

Contents?: true

Size: 1.36 KB

Versions: 24

Compression:

Stored size: 1.36 KB

Contents

require 'glimmer/swt/widget_proxy'
require 'glimmer/swt/radio_proxy'
require 'glimmer/swt/checkbox_proxy'

module Glimmer
  module SWT
    class ButtonProxy < WidgetProxy
      class << self
        def create(keyword, parent, args, block)
          if args.to_a.include?(:radio)
            RadioProxy.new(parent, args, block)
          elsif args.to_a.include?(:check)
            CheckboxProxy.new(parent, args, block)
          else
            new(parent, args, block)
          end
        end
      end
    
      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: 32px; min-height: 32px;').merge(input_disabled)) {
            input_text.to_s == '' ? '&nbsp;' : input_text
          }
        }.to_s
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
glimmer-dsl-opal-0.16.2 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.16.1 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.16.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.15.1 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.14.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.13.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.12.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.11.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.10.3 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.10.2 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.10.1 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.10.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.9.3 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.9.2 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.9.1 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.9.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.8.0 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.7.5 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.7.4 lib/glimmer/swt/button_proxy.rb
glimmer-dsl-opal-0.7.3 lib/glimmer/swt/button_proxy.rb