diff --git a/src/List/TreeList.php b/src/List/TreeList.php index 792256e..33a7d09 100644 --- a/src/List/TreeList.php +++ b/src/List/TreeList.php @@ -14,6 +14,12 @@ use NoccyLabs\JsonEdit\Tree\ObjectNode; use NoccyLabs\JsonEdit\Tree\ValueNode; use Traversable; +/** + * This class flattens a tree into a list that can be indexed and addressed. + * The path separated by slashes is used as the key, and the Entry wraps the + * Node in the tree. + * + */ class TreeList implements Countable, IteratorAggregate { /** @var array */ @@ -21,7 +27,7 @@ class TreeList implements Countable, IteratorAggregate private const TREE_FOLD_OPEN = "\u{f0fe}"; private const TREE_FOLD_CLOSE = "\u{f146}"; - private const TREE_INDENT_GUIDE = "\u{258f} "; + private const TREE_INDENT_GUIDE = "\u{258e} "; private const TREE_INDENT = " "; private const ICON_NUMERIC = "\u{f89f}"; @@ -34,11 +40,21 @@ class TreeList implements Countable, IteratorAggregate { } + /** + * Iterate over all visible nodes + * + * @return Traversable + */ public function getIterator(): Traversable { return new ArrayIterator($this->list); } + /** + * Return the number of visible nodes + * + * @return int + */ public function count(): int { return count($this->list); @@ -134,6 +150,15 @@ class TreeList implements Countable, IteratorAggregate return null; } + /** + * Draw an entry to a row on the screen. + * + * @param int $screenRow + * @param int $entryRow + * @param int $columns + * @param bool $selected + * @return void + */ public function drawEntry(int $screenRow, int $entryRow, int $columns, bool $selected): void {