# File tk/lib/tkextlib/blt/tree.rb, line 22
def self.id2obj(tree, id)
tpath = tree.path
TreeNodeID_TBL.mutex.synchronize{
if TreeNodeID_TBL[tpath]
if TreeNodeID_TBL[tpath][id]
TreeNodeID_TBL[tpath][id]
else
begin
# self.new(tree, nil, 'node'=>Integer(id))
id = Integer(id)
if bool(tk_call(@tpath, 'exists', id))
(obj = self.allocate).instance_eval{
@parent = @tree = tree
@tpath = tpath
@path = @id = id
TreeNodeID_TBL[@tpath] = {} unless TreeNodeID_TBL[@tpath]
TreeNodeID_TBL[@tpath][@id] = self
}
obj
else
id
end
rescue
id
end
end
else
id
end
}
end
# File tk/lib/tkextlib/blt/tree.rb, line 54
def self.new(tree, parent, keys={})
keys = _symbolkey2str(keys)
tpath = tree.path
TreeNodeID_TBL.mutex.synchronize{
TreeNodeID_TBL[tpath] ||= {}
if (id = keys['node']) && (obj = TreeNodeID_TBL[tpath][id])
keys.delete('node')
tk_call(tree.path, 'move', id, parent, keys) if parent
return obj
end
(obj = self.allocate).instance_eval{
initialize(tree, parent, keys)
TreeNodeID_TBL[tpath][@id] = self
}
obj
}
end
# File tk/lib/tkextlib/blt/tree.rb, line 74
def initialize(tree, parent, keys={})
@parent = @tree = tree
@tpath = @parent.path
if (id = keys['node']) && bool(tk_call(@tpath, 'exists', id))
@path = @id = id
keys.delete('node')
tk_call(@tpath, 'move', @id, parent, keys) if parent
else
parent = tk_call(@tpath, 'root') unless parent
@path = @id = tk_call(@tpath, 'insert', parent, keys)
end
end
# File tk/lib/tkextlib/blt/tree.rb, line 92
def apply(keys={})
@tree.apply(@id, keys)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 97
def children()
@tree.children(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 101
def copy(parent, keys={})
@tree.copy(@id, parent, keys)
end
# File tk/lib/tkextlib/blt/tree.rb, line 104
def copy_to(dest_tree, parent, keys={})
@tree.copy_to(@id, dest_tree, parent, keys)
end
# File tk/lib/tkextlib/blt/tree.rb, line 108
def degree()
@tree.degree(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 112
def delete()
@tree.delete(@id)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 117
def depth()
@tree.depth(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 121
def dump()
@tree.dump(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 125
def dump_to_file(file)
@tree.dump_to_file(@id, file)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 130
def exist?(keys={})
@tree.exist?(@id, keys)
end
# File tk/lib/tkextlib/blt/tree.rb, line 134
def find(keys={})
@tree.find(@id, keys)
end
# File tk/lib/tkextlib/blt/tree.rb, line 138
def find_child(label)
@tree.find_child(@id, label)
end
# File tk/lib/tkextlib/blt/tree.rb, line 142
def first_child()
@tree.first_child(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 199
def fullpath()
@tree.fullpath(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 146
def get()
@tree.get(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 149
def get_value(key, default_val=None)
@tree.get_value(@id, key, default_val)
end
# File tk/lib/tkextlib/blt/tree.rb, line 153
def index()
@tree.index(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 167
def keys()
@tree.keys(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 171
def label(text = nil)
@tree.label(@id, nil)
end
# File tk/lib/tkextlib/blt/tree.rb, line 174
def label=(text)
@tree.label(@id, text)
end
# File tk/lib/tkextlib/blt/tree.rb, line 178
def last_child()
@tree.last_child(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 157
def leaf?()
@tree.leaf?(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 160
def link?()
@tree.link?(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 182
def move(dest, keys={})
@tree.keys(@id, dest, keys)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 187
def next()
@tree.next(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 191
def next_sibling()
@tree.next_sibling(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 195
def parent()
@tree.parent(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 203
def position()
@tree.position(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 211
def prev_sibling()
@tree.prev_sibling(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 207
def previous()
@tree.previous(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 215
def restore(str, keys={})
@tree.restore(@id, str, keys)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 224
def restore_from_file(file, keys={})
@tree.restore_from_file(@id, file, keys)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 219
def restore_overwrite(str, keys={})
@tree.restore_overwrite(@id, str, keys)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 228
def restore_overwrite_from_file(file, keys={})
@tree.restore_overwrite_from_file(@id, file, keys)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 233
def root()
@tree.root(@id)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 163
def root?()
@tree.root?(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 238
def set(data)
@tree.set(@id, data)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 243
def size()
@tree.size(@id)
end
# File tk/lib/tkextlib/blt/tree.rb, line 247
def sort(keys={})
@tree.sort(@id, keys)
self
end
# File tk/lib/tkextlib/blt/tree.rb, line 252
def type(key)
@tree.type(@id, key)
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.