class ElementList

Attributes

elements[RW]
iterator[RW]

Public Class Methods

new() click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 21
def initialize
  @elements = Array.new # The element array
  @iterator = -1 # Iterator index (used for get_first / get_next)
end

Public Instance Methods

add(element) click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 26
def add(element)
  @elements << element
  if(element.parent != 0)
    parent = get_id(element.parent)
    parent.type = ETYPE_NODE
  end
end
get_child_count(id) click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 65
def get_child_count(id)
  get_children(id).length
end
get_children(id) click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 69
def get_children(id)
  children = Array.new
  @elements.each do |element|
    if(element.parent == id)
      children << element.id
    end
  end
  children
end
get_element_width(id) click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 79
def get_element_width(id)
  element = get_id(id)
  if element
    return element.width
  else
    return -1;
  end
end
get_elements() click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 61
def get_elements
  @elements
end
get_first() click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 34
def get_first
  if(@elements.length == 0)
    return nil
  else
    @iterator = 0
    return @elements[@iterator]
  end
end
get_id(id) click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 52
def get_id(id)
  @elements.each do |element|
    if(element.id == id)
      return element 
    end
  end  
  return nil;
end
get_indent(id) click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 95
def get_indent(id)
  element = get_id(id)
  if element
    return element.indent
  else
    return -1
  end  
end
get_level_height() click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 111
def get_level_height
  maxlevel = 0
  @elements.each do |element|
    level = element.level
    if(level > maxlevel)
      maxlevel = level
    end
  end
  return maxlevel + 1;
end
get_next() click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 43
def get_next
    @iterator += 1
    if @elements[@iterator]
      return @elements[@iterator]
    else
      return nil
    end
end
set_element_width(id, width) click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 88
def set_element_width(id, width)
  element = get_id(id)
  if element
    element.width = width
  end
end
set_indent(id, indent) click to toggle source
# File lib/rsyntaxtree/elementlist.rb, line 104
def set_indent(id, indent)
  element = get_id(id)
  if element
    element.indent = indent
  end
end