#!/usr/bin/python # Copyright (C) 2013 Patrick Totzke <*****@*****.**> # This file is released under the GNU GPL, version 3 or a later revision. from example1 import construct_example_tree, palette # example data from decoration import ArrowTree # for Decoration from widgets import TreeBox import urwid if __name__ == "__main__": # get example tree stree = construct_example_tree() # Here, we add some decoration by wrapping the tree using ArrowTree. atree = ArrowTree(stree, # customize at will.. # arrow_hbar_char=u'\u2550', # arrow_vbar_char=u'\u2551', # arrow_tip_char=u'\u25B7', # arrow_connector_tchar=u'\u2560', # arrow_connector_lchar=u'\u255A', ) # put the into a treebox treebox = TreeBox(atree) rootwidget = urwid.AttrMap(treebox, 'body') urwid.MainLoop(rootwidget, palette).run() # go
# This file is released under the GNU GPL, version 3 or a later revision. from example1 import construct_example_tree, palette # example data from decoration import CollapsibleIndentedTree # for Decoration from widgets import TreeBox import urwid def unhandled_input(k): #exit on q if k in ['q', 'Q']: raise urwid.ExitMainLoop() if __name__ == "__main__": # get some SimpleTree stree = construct_example_tree() # Use (subclasses of) the wrapper decoration.CollapsibleTree to construct a # tree where collapsible subtrees. Apart from the original tree, these take # a callable `is_collapsed` that defines initial collapsed-status if a # given position. # We want all grandchildren collapsed initially if_grandchild = lambda pos: stree.depth(pos) > 1 # We use CollapsibleIndentedTree around the original example tree. # This uses Indentation to indicate the tree structure and squeezes in # text-icons to indicate the collapsed status. # Also try CollapsibleTree or CollapsibleArrowTree.. tree = CollapsibleIndentedTree( stree,
# Copyright (C) 2013 Patrick Totzke <*****@*****.**> # This file is released under the GNU GPL, version 3 or a later revision. from example1 import palette, construct_example_tree # example data from example1 import FocusableText, unhandled_input # Selectable Text used for nodes from urwidtrees.widgets import TreeBox from urwidtrees.tree import SimpleTree from urwidtrees.nested import NestedTree from urwidtrees.decoration import ArrowTree, CollapsibleArrowTree # decoration import urwid import logging if __name__ == "__main__": #logging.basicConfig(filename='example.log',level=logging.DEBUG) # Take some Arrow decorated Tree that we later stick inside another tree. innertree = ArrowTree(construct_example_tree()) # Some collapsible, arrow decorated tree with extra indent anotherinnertree = CollapsibleArrowTree(construct_example_tree(), indent=10) # A SimpleTree, that contains the two above middletree = SimpleTree( [ (FocusableText('Middle ROOT'), [ (FocusableText('Mid Child One'), None), (FocusableText('Mid Child Two'), None), (innertree, None), (FocusableText('Mid Child Three'), [ (FocusableText('Mid Grandchild One'), None),
from example1 import FocusableText # Selectable Text used for nodes from widgets import TreeBox from tree import SimpleTree from nested import NestedTree from decoration import ArrowTree, CollapsibleArrowTree # decoration import urwid import logging def unhandled_input(k): #exit on q if k in ['q', 'Q']: raise urwid.ExitMainLoop() if __name__ == "__main__": #logging.basicConfig(filename='example.log',level=logging.DEBUG) # Take some Arrow decorated Tree that we later stick inside another tree. innertree = ArrowTree(construct_example_tree()) # Some collapsible, arrow decorated tree with extra indent anotherinnertree = CollapsibleArrowTree(construct_example_tree(), indent=10) # A SimpleTree, that contains the two above middletree = SimpleTree( [ (FocusableText('Middle ROOT'), [ (FocusableText('Mid Child One'), None), (FocusableText('Mid Child Two'), None), (innertree, None), (FocusableText('Mid Child Three'), [ (FocusableText('Mid Grandchild One'), None),