Class: ElementList
- Inherits:
-
Object
- Object
- ElementList
- Defined in:
- lib/rsyntaxtree/elementlist.rb
Instance Attribute Summary collapse
-
#elements ⇒ Object
Returns the value of attribute elements.
-
#iterator ⇒ Object
Returns the value of attribute iterator.
Instance Method Summary collapse
- #add(element) ⇒ Object
- #get_child_count(id) ⇒ Object
- #get_children(id) ⇒ Object
- #get_element_width(id) ⇒ Object
- #get_elements ⇒ Object
- #get_first ⇒ Object
- #get_id(id) ⇒ Object
- #get_indent(id) ⇒ Object
- #get_level_height ⇒ Object
- #get_next ⇒ Object
-
#initialize ⇒ ElementList
constructor
A new instance of ElementList.
- #set_element_width(id, width) ⇒ Object
- #set_indent(id, indent) ⇒ Object
Constructor Details
#initialize ⇒ ElementList
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
#elements ⇒ Object
Returns the value of attribute elements.
34 35 36 |
# File 'lib/rsyntaxtree/elementlist.rb', line 34 def elements @elements end |
#iterator ⇒ Object
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_elements ⇒ Object
75 76 77 |
# File 'lib/rsyntaxtree/elementlist.rb', line 75 def get_elements @elements end |
#get_first ⇒ Object
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_height ⇒ Object
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_next ⇒ Object
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 |