class Glimmer::SWT::MessageBoxProxy

Constants

STYLE

Attributes

message[R]
color: #aaaaaa;
float: right;
font-weight: bold;
margin: 5px;

} .close:hover, .close:focus {

color: #000;
text-decoration: none;
cursor: pointer;

}

text[R]
color: #aaaaaa;
float: right;
font-weight: bold;
margin: 5px;

} .close:hover, .close:focus {

color: #000;
text-decoration: none;
cursor: pointer;

}

Public Class Methods

new(parent, args, block) click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 73
def initialize(parent, args, block)
  i = 0
  @parent = parent
  @parent = nil if parent.is_a?(LatestShellProxy)
  @parent ||= DisplayProxy.instance.shells.detect(&:open?) || ShellProxy.new([])
  @args = args
  @block = block
  @children = Set.new
  @enabled = true
  on_widget_selected {
    hide
  }
  DisplayProxy.instance.message_boxes << self
end

Public Instance Methods

content(&block) click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 120
def content(&block)
  Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Opal::MessageBoxExpression.new, 'message_box', *@args, &block)
end
dom() click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 140
def dom
  @dom ||= html {
    div(id: id, class: "modal #{name}") {
      div(class: 'message-box-content') {
        header(class: 'text') {
          "#{text}&nbsp;" # ensure title area occuppied when there is no text by adding non-breaking space (&nbsp;)
        }
        tag(_name: 'p', id: 'message', class: 'message') {
          html_message
        }
        input(type: 'button', class: 'close', autofocus: 'autofocus', value: 'OK')
      }
    }
  }.to_s
end
hide() click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 115
def hide
  dom_element.remove
  @open = false
end
html_message() click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 93
def html_message
  message&.gsub("\n", '<br />')
end
listener_path() click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 128
def listener_path
  path + ' .close'
end
message=(msg) click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 97
def message=(msg)
  @message = msg
  dom_element.find('.message-box-content .message').html(html_message)
end
observation_request_to_event_mapping() click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 132
def observation_request_to_event_mapping
  {
    'on_widget_selected' => {
      event: 'click'
    },
  }
end
open() click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 106
def open
  shell.open(async: false) unless shell.open?
  owned_proc = Glimmer::Util::ProcTracker.new(owner: self, invoked_from: :open) {
    parent.post_initialize_child(self)
    @open = true
  }
  DisplayProxy.instance.async_exec(owned_proc)
end
open?() click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 102
def open?
  @open
end
selector() click to toggle source
Calls superclass method
# File lib/glimmer/swt/message_box_proxy.rb, line 124
def selector
  super + ' .close'
end
text=(txt) click to toggle source
# File lib/glimmer/swt/message_box_proxy.rb, line 88
def text=(txt)
  @text = txt
  dom_element.find('.message-box-content .text').html(@text)
end