Changeset View
Changeset View
Standalone View
Standalone View
src/console/view/PhutilConsoleList.php
- This file was added.
| <?php | |||||
| final class PhutilConsoleList extends PhutilConsoleView { | |||||
| private $items = array(); | |||||
| private $wrap = true; | |||||
| private $bullet = '-'; | |||||
| public function addItem($item) { | |||||
| $this->items[] = $item; | |||||
| return $this; | |||||
| } | |||||
| public function addItems(array $items) { | |||||
| foreach ($items as $item) { | |||||
| $this->addItem($item); | |||||
| } | |||||
| return $this; | |||||
| } | |||||
| public function getItems() { | |||||
| return $this->items; | |||||
| } | |||||
| public function setBullet($bullet) { | |||||
| $this->bullet = $bullet; | |||||
| return $this; | |||||
| } | |||||
| public function getBullet() { | |||||
| return $this->bullet; | |||||
| } | |||||
| public function setWrap($wrap) { | |||||
| $this->wrap = $wrap; | |||||
| return $this; | |||||
| } | |||||
| protected function drawView() { | |||||
| $indent_depth = 6; | |||||
| $indent_string = str_repeat(' ', $indent_depth); | |||||
| if ($this->bullet !== null) { | |||||
| $bullet = $this->bullet.' '; | |||||
| $indent_depth = $indent_depth + phutil_utf8_console_strlen($bullet); | |||||
| } else { | |||||
| $bullet = ''; | |||||
| } | |||||
| $output = array(); | |||||
| foreach ($this->getItems() as $item) { | |||||
| if ($this->wrap) { | |||||
| $item = tsprintf('%s', $item) | |||||
| ->applyIndent($indent_depth, false); | |||||
| } | |||||
| $output[] = $indent_string.$bullet.$item; | |||||
| } | |||||
| return $this->drawLines($output); | |||||
| } | |||||
| } | |||||