Class: ElementList

Inherits:
Object
  • Object
show all
Defined in:
lib/rsyntaxtree/elementlist.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeElementList

Returns a new instance of ElementList.



35
36
37
38
# File 'lib/rsyntaxtree/elementlist.rb', line 35

def initialize
  @elements = Array.new # The element array
  @iterator = -1 # Iterator index (used for get_first / get_next)
end

Instance Attribute Details

#elementsObject

Returns the value of attribute elements.



34
35
36
# File 'lib/rsyntaxtree/elementlist.rb', line 34

def elements
  @elements
end

#iteratorObject

Returns the value of attribute iterator.



34
35
36
# File 'lib/rsyntaxtree/elementlist.rb', line 34

def iterator
  @iterator
end

Instance Method Details

#add(element) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/rsyntaxtree/elementlist.rb', line 40

def add(element)
  @elements << element
  if(element.parent != 0)
    parent = get_id(element.parent)
    parent.type = ETYPE_NODE
  end
end

#get_child_count(id) ⇒ Object



79
80
81
# File 'lib/rsyntaxtree/elementlist.rb', line 79

def get_child_count(id)
  get_children(id).length
end

#get_children(id) ⇒ Object



83
84
85
86
87
88
89
90
91
# File 'lib/rsyntaxtree/elementlist.rb', line 83

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) ⇒ Object



93
94
95
96
97
98
99
100
# File 'lib/rsyntaxtree/elementlist.rb', line 93

def get_element_width(id)
  element = get_id(id)
  if element
    return element.width
  else
    return -1;
  end
end

#get_elementsObject



75
76
77
# File 'lib/rsyntaxtree/elementlist.rb', line 75

def get_elements
  @elements
end

#get_firstObject



48
49
50
51
52
53
54
55
# File 'lib/rsyntaxtree/elementlist.rb', line 48

def get_first
  if(@elements.length == 0)
    return nil
  else
    @iterator = 0
    return @elements[@iterator]
  end
end

#get_id(id) ⇒ Object



66
67
68
69
70
71
72
73
# File 'lib/rsyntaxtree/elementlist.rb', line 66

def get_id(id)
  @elements.each do |element|
    if(element.id == id)
      return element 
    end
  end  
  return nil;
end

#get_indent(id) ⇒ Object



109
110
111
112
113
114
115
116
# File 'lib/rsyntaxtree/elementlist.rb', line 109

def get_indent(id)
  element = get_id(id)
  if element
    return element.indent
  else
    return -1
  end  
end

#get_level_heightObject



125
126
127
128
129
130
131
132
133
134
# File 'lib/rsyntaxtree/elementlist.rb', line 125

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_nextObject



57
58
59
60
61
62
63
64
# File 'lib/rsyntaxtree/elementlist.rb', line 57

def get_next
    @iterator += 1
    if @elements[@iterator]
      return @elements[@iterator]
    else
      return nil
    end
end

#set_element_width(id, width) ⇒ Object



102
103
104
105
106
107
# File 'lib/rsyntaxtree/elementlist.rb', line 102

def set_element_width(id, width)
  element = get_id(id)
  if element
    element.width = width
  end
end

#set_indent(id, indent) ⇒ Object



118
119
120
121
122
123
# File 'lib/rsyntaxtree/elementlist.rb', line 118

def set_indent(id, indent)
  element = get_id(id)
  if element
    element.indent = indent
  end
end