Class: Glimmer::DSL::SWT::WidgetExpression

Inherits:
Expression
  • Object
show all
Includes:
ParentExpression
Defined in:
lib/glimmer/dsl/swt/widget_expression.rb

Constant Summary collapse

EXCLUDED_KEYWORDS =
%w[shell display tab_item]

Instance Method Summary collapse

Methods included from ParentExpression

#add_content

Methods inherited from Expression

#add_content, dsl, #textual?, #widget?

Instance Method Details

#can_interpret?(parent, keyword, *args, &block) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
17
# File 'lib/glimmer/dsl/swt/widget_expression.rb', line 13

def can_interpret?(parent, keyword, *args, &block)
  !EXCLUDED_KEYWORDS.include?(keyword) and
    widget?(parent) and #TODO change to composite?(parent)
    Glimmer::SWT::WidgetProxy.widget_exists?(keyword)
end

#interpret(parent, keyword, *args, &block) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/glimmer/dsl/swt/widget_expression.rb', line 19

def interpret(parent, keyword, *args, &block)
  begin
    class_name = "#{keyword.camelcase(:upper)}Proxy".to_sym
    widget_class = Glimmer::SWT.const_get(class_name)
  rescue
    widget_class = Glimmer::SWT::WidgetProxy
  end
  widget_class.new(keyword, parent, args)
end