class Glimmer::SWT::TableColumnProxy

Constants

STYLE

Attributes

editor[R]
no_sort[R]
no_sort?[R]
sort_block[RW]
sort_by_block[RW]
sort_property[R]
text[R]
width[R]

Public Class Methods

new(parent, args, block) click to toggle source
Calls superclass method
# File lib/glimmer/swt/table_column_proxy.rb, line 26
def initialize(parent, args, block)
  @no_sort = args.delete(:no_sort)
  super(parent, args, block)
  unless no_sort?
    content {
      on_widget_selected { |event|
        parent.sort_by_column!(self)
      }
    }
  end
end

Public Instance Methods

dom() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 101
def dom
  table_column_text = text
  table_column_id = id
  table_column_id_style = "width: #{width}px;"
  table_column_css_classes = css_classes
  table_column_css_classes << name
  @dom ||= html {
    th(id: table_column_id, style: table_column_id_style, class: table_column_css_classes.to_a.join(' ')) {
      span {table_column_text}
      span(class: sort_icon_class)
    }
  }.to_s
end
editable?() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 83
def editable?
  !@editor&.include?(:none)
end
editor=(*args) click to toggle source

Sets editor (e.g. combo)

# File lib/glimmer/swt/table_column_proxy.rb, line 79
def editor=(*args)
  @editor = args
end
element() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 64
def element
  'th'
end
observation_request_to_event_mapping() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 87
def observation_request_to_event_mapping
  {
    'on_widget_selected' => {
      event: 'click',
      event_handler: -> (event_listener) {
        -> (event) {
          event_listener.call(event)
          redraw_sort_direction
        }
      }
    },
  }
end
parent_path() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 60
def parent_path
  parent.columns_path
end
redraw_sort_direction() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 46
def redraw_sort_direction
  sort_icon_dom_element.attr('class', sort_icon_class)
end
sort_direction() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 42
def sort_direction
  parent.sort_direction if parent.sort_column == self
end
sort_icon_class() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 68
def sort_icon_class
  @sort_icon_class = 'sort-direction'
  @sort_icon_class += (sort_direction == SWTProxy[:up] ? ' ui-icon ui-icon-caret-1-n' : ' ui-icon ui-icon-caret-1-s') unless sort_direction.nil?
  @sort_icon_class
end
sort_icon_dom_element() click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 74
def sort_icon_dom_element
  dom_element.find('.sort-direction')
end
sort_property=(args) click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 38
def sort_property=(args)
  @sort_property = args unless args.empty?
end
text=(value) click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 50
def text=(value)
  @text = value
  redraw
end
width=(value) click to toggle source
# File lib/glimmer/swt/table_column_proxy.rb, line 55
def width=(value)
  @width = value
  redraw
end