Maintenance of Ruby 2.0.0 ended on February 24, 2016. Read more
# 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