class KendoPageObjectWidgets::Widgets::KendoMultiSelectComboBox

Public Class Methods

accessor_methods(accessor, name) click to toggle source
# File lib/widgets/kendo_multi_select_combo_box.rb, line 28
def self.accessor_methods(accessor, name)

  accessor.send :define_method, "#{name}_option_text" do
    self.send("open_#{name}")
    self.send("#{name}_listbox").when_present(10)
    self.send("#{name}_listbox").text
  end

  accessor.send :define_method, "clear_#{name}" do
    self.send("open_#{name}")
    KendoMultiSelectComboBox.clear_values(self.send("#{name}_element"))
  end

  accessor.send :define_method, "#{name}=" do |values|
    values.each do |new_value|
      unless new_value.empty?
        send("#{name}_element").parent.text_field(class: 'k-input').value = new_value
        list_item = send("#{name}_listbox").list_item_element(text: new_value.strip)
        list_item.click if list_item.when_present 10
      end
    end
  end

  #private

  accessor.send :define_method, "open_#{name}" do
    self.send("#{name}_element").parent.click
  end

  accessor.send :define_method, "#{name}_listbox" do
    self.platform.unordered_list_for(:id => "#{self.send("#{name}_id")}_listbox")
  end

  accessor.send :define_method, "#{name}_id" do
    self.send("#{name}_element").attribute('id')
  end

  accessor.send :private, "open_#{name}", "#{name}_listbox", "#{name}_id"
end
clear_values(base) click to toggle source
# File lib/widgets/kendo_multi_select_combo_box.rb, line 21
def self.clear_values(base)
  unless base.parent.list_item_elements(:class => 'k-button').length == 0
    list_elements = base.parent.span_elements(:class => 'k-select')
    list_elements.map { |item| item }.each { |li| li.click }
  end
end

Public Instance Methods

clear_all() click to toggle source
# File lib/widgets/kendo_multi_select_combo_box.rb, line 5
def clear_all
  self.parent.click
  KendoMultiSelectComboBox.clear_values(self)
end
set(values) click to toggle source
# File lib/widgets/kendo_multi_select_combo_box.rb, line 10
def set(values)
  values.each do |value|
    unless value.empty?
      self.parent.click
      self.append(value.strip)
      sleep 0.5
      self.send_keys :enter
    end
  end
end