class Tk::BWidget::Tree::Node
Constants
- TreeNode_ID
- TreeNode_TBL
Public Class Methods
id2obj(tree, id)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 306 def self.id2obj(tree, id) tpath = tree.path TreeNode_TBL.mutex.synchronize{ if TreeNode_TBL[tpath] TreeNode_TBL[tpath][id]? TreeNode_TBL[tpath][id]: id else id end } end
new(tree, *args)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 317 def initialize(tree, *args) if tree.kind_of?(Tk::BWidget::Tree) @tree = tree parent = args.shift if parent.kind_of?(Tk::BWidget::Tree::Node) if parent.tree.path != @tree.path fail RuntimeError, 'tree of parent node is not match' end end elsif tree.kind_of?(Tk::BWidget::Tree::Node) @tree = tree.tree parent = tree.parent else fail RuntimeError, "expect Tk::BWidget::Tree or Tk::BWidget::Tree::Node for 1st argument" end if args[-1].kind_of?(Hash) keys = _symbolkey2str(args.pop) else keys = {} end index = keys.delete('index') unless args.empty? index = args.shift end index = 'end' unless index unless args.empty? fail RuntimeError, 'too much arguments' end @tpath = @tree.path if keys.key?('nodename') @path = @id = keys.delete('nodename') else TreeNode_ID.mutex.synchronize{ @path = @id = TreeNode_ID.join(TkCore::INTERP._ip_id_) TreeNode_ID[1].succ! } end TreeNode_TBL.mutex.synchronize{ TreeNode_TBL[@id] = self TreeNode_TBL[@tpath] = {} unless TreeNode_TBL[@tpath] TreeNode_TBL[@tpath][@id] = self } @tree.insert(index, parent, @id, keys) end
Public Instance Methods
[](key)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 378 def [](key) cget(key) end
[]=(key, val)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 382 def []=(key, val) configure(key, val) val end
cget(key)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 390 def cget(key) @tree.itemcget(@id, key) end
cget_strict(key)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 393 def cget_strict(key) @tree.itemcget_strict(@id, key) end
cget_tkstring(key)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 387 def cget_tkstring(key) @tree.itemcget_tkstring(@id, key) end
close_tree(recurse=None)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 409 def close_tree(recurse=None) @tree.close_tree(@id, recurse) self end
configinfo(key=nil)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 401 def configinfo(key=nil) @tree.itemconfiginfo(@id, key) end
configure(key, val=None)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 397 def configure(key, val=None) @tree.itemconfigure(@id, key, val) end
current_configinfo(key=nil)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 405 def current_configinfo(key=nil) @tree.current_itemconfiginfo(@id, key) end
delete()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 414 def delete @tree.delete(@id) self end
edit(*args)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 419 def edit(*args) @tree.edit(@id, *args) self end
exist?()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 424 def exist? @tree.exist?(@id) end
id()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 374 def id @id end
index()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 428 def index @tree.index(@id) end
move(index, parent=nil)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 432 def move(index, parent=nil) if parent @tree.move(parent, @id, index) else @tree.move(self.parent, @id, index) end end
mutex()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 298 def mutex; @mutex; end
open?()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 445 def open? bool(@tree.itemcget(@id, 'open')) end
open_tree(recurse=None)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 440 def open_tree(recurse=None) @tree.open_tree(@id, recurse) self end
parent()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 449 def parent @tree.parent(@id) end
reorder(neworder)
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 453 def reorder(neworder) @tree.reorder(@id, neworder) end
see()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 457 def see @tree.see(@id) end
selection_add()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 461 def selection_add @tree.selection_add(@id) end
selection_remove()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 465 def selection_remove @tree.selection_remove(@id) end
selection_set()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 469 def selection_set @tree.selection_set(@id) end
selection_toggle()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 473 def selection_toggle @tree.selection_toggle(@id) end
toggle()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 477 def toggle @tree.toggle(@id) end
tree()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 370 def tree @tree end
visible()
click to toggle source
# File lib/tkextlib/bwidget/tree.rb, line 481 def visible @tree.visible(@id) end