class Glimmer::SWT::Custom::Shape::Rectangle

Public Instance Methods

dom() click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 89
def dom
  shape_id = id
  shape_class = name
  @dom ||= xml {
    rect(id: shape_id, class: shape_class, x: @args[0], y: @args[1], width: @args[2], height: @args[3], rx: @args[4].to_f/2.0, ry: @args[5].to_f/2.0)
  }.to_s
end
element() click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 85
def element
  'rect'
end
parameter_names() click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 34
def parameter_names
  if @parameter_names.nil?
    if rectangle_parameter_names.size == @args.size
      @parameter_names = rectangle_parameter_names
    elsif rectangle_round_parameter_names.size == @args.size
      @parameter_names = rectangle_round_parameter_names
    elsif rectangle_gradient_parameter_names.size == @args.size
      @parameter_names = rectangle_gradient_parameter_names
    elsif rectangle_rectangle_parameter_names.size == @args.size
      @parameter_names = rectangle_rectangle_parameter_names
    end
  end
  @parameter_names || rectangle_parameter_names
end
possible_parameter_names() click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 49
def possible_parameter_names
  # TODO refactor and improve this method through meta-programming (and share across other shapes)
  (rectangle_round_parameter_names + rectangle_parameter_names + rectangle_gradient_parameter_names + rectangle_rectangle_parameter_names).uniq
end
rectangle_gradient_parameter_names() click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 58
def rectangle_gradient_parameter_names
  [:x, :y, :width, :height, :vertical]
end
rectangle_parameter_names() click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 62
def rectangle_parameter_names
  [:x, :y, :width, :height]
end
rectangle_rectangle_parameter_names() click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 66
def rectangle_rectangle_parameter_names
  # this receives a Rectangle object
  [:rectangle]
end
rectangle_round_parameter_names() click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 54
def rectangle_round_parameter_names
  [:x, :y, :width, :height, :arc_width, :arc_height]
end
set_parameter_attribute(attribute_name, *args) click to toggle source
# File lib/glimmer/swt/custom/shape/rectangle.rb, line 71
def set_parameter_attribute(attribute_name, *args)
  return super(attribute_name, *args) if @parameter_names.to_a.map(&:to_s).include?(attribute_name.to_s)
  if rectangle_parameter_names.map(&:to_s).include?(attribute_name.to_s)
    @parameter_names = rectangle_parameter_names
  elsif rectangle_round_parameter_names.map(&:to_s).include?(attribute_name.to_s)
    @parameter_names = rectangle_round_parameter_names
  elsif rectangle_gradient_parameter_names.map(&:to_s).include?(attribute_name.to_s)
    @parameter_names = rectangle_gradient_parameter_names
  elsif rectangle_rectangle_parameter_names.map(&:to_s).include?(attribute_name.to_s)
    @parameter_names = rectangle_rectangle_parameter_names
  end
  super(attribute_name, *args)
end