[@s@ddlZddlmZmZmZddlmZeZde_de_ GdddeZ Gddde Z Gd d d e Z Gd d d e Z Gd dde Zie e6e e6e e6e e6e e6ee6e e6ZdddZddZedkr<ddlmZeendS)N)TreeItemTreeNodeScrolledCanvas)Reprdc@sseZdZdddZddZddZdd Zd d Zd d ZddZ ddZ dS)ObjectTreeItemNcCs||_||_||_dS)N) labeltextobject setfunction)selfrr r r +/usr/lib/python3.4/idlelib/ObjectBrowser.py__init__s  zObjectTreeItem.__init__cCs|jS)N)r)r r r r GetLabelTextszObjectTreeItem.GetLabelTextcCstj|jS)N)myreprreprr )r r r r GetTextszObjectTreeItem.GetTextcCs|jsdSdS)NZpython) IsExpandable)r r r r GetIconNames zObjectTreeItem.GetIconNamecCs |jdk S)N)r )r r r r IsEditable"szObjectTreeItem.IsEditablec Cs5yt|}|j|WnYn X||_dS)N)evalr r )r textvaluer r r SetText$s  zObjectTreeItem.SetTextcCst|j S)N)dirr )r r r r r,szObjectTreeItem.IsExpandablecCst|j}g}xt|D]l}yt|j|}Wntk rOwYnXtt|d|||jdd}|j|qW|S)Nz =cSst|||S)N)setattr)rkeyr r r r 9sz+ObjectTreeItem.GetSubList..)rr getattrAttributeErrormake_objecttreeitemstrappend)r keyssublistrritemr r r GetSubList.s   zObjectTreeItem.GetSubList) __name__ __module__ __qualname__rrrrrrrr&r r r r rs       rc@s(eZdZddZddZdS) ClassTreeItemcCsdS)NTr )r r r r r?szClassTreeItem.IsExpandablecCsltj|}t|jjdkrCtd|jjd}ntd|jj}|jd||S)Nz__bases__[0] =rz __bases__ =)rr&lenr __bases__r insert)r r$r%r r r r&AszClassTreeItem.GetSubListN)r'r(r)rr&r r r r r*>s  r*c@seZdZddZdS)AtomicObjectTreeItemcCsdS)Nrr )r r r r rLsz!AtomicObjectTreeItem.IsExpandableN)r'r(r)rr r r r r/Ks r/c@s4eZdZddZddZddZdS)SequenceTreeItemcCst|jdkS)Nr)r,r )r r r r rPszSequenceTreeItem.IsExpandablecCstt|jS)N)ranger,r )r r r r r#RszSequenceTreeItem.keysc Csg}xx|jD]j}y|j|}Wntk rAwYnX||jdd}td|f||}|j|qW|S)NcSs|||.setfunctionz%r:)r#r KeyErrorr r")r r$rrr r%r r r r&Ts zSequenceTreeItem.GetSubListN)r'r(r)rr#r&r r r r r0Os   r0c@seZdZddZdS) DictTreeItemc Cs2t|jj}y|jWnYnX|S)N)listr r#sort)r r#r r r r#bs zDictTreeItem.keysN)r'r(r)r#r r r r r3as r3cCs;t|}|tkr%t|}nt}||||S)N)typedispatchr)rr r tcr r r r ts    r c Csddl}ddlm}|}|jdttttjd|j \}}}}|j d||df|j dddd |j t |dd d dd d }|j jdd ddtd|} t|jd| } | j|jdS)Nr)TkzTest ObjectBrowserz[x+]z+%d+%dZbdZbgZyellowZwhiteZhighlightthicknessZ takefocusr+expandZfillZbothsys)r=Ztkinterr:titler4mapintresplitZgeometryZ configureZ focus_setrZframeZpackr rZcanvasupdateZmainloop) parentr=r:rootwidthZheightxyZscr%Znoder r r _object_browser}s   3  rI__main__)run)rAZidlelib.TreeWidgetrrrreprlibrr maxstringmaxotherrr*r/r0r3r@floatr!tupler4dictr6r7r rIr'Zidlelib.idle_test.htestrKr r r r  s.    (