Path: blob/master/src/applications/differential/engine/DifferentialFileTreeEngine.php
12256 views
<?php12final class DifferentialFileTreeEngine3extends Phobject {45private $viewer;6private $changesets;7private $disabled;8private $ownedChangesets;910public function setViewer($viewer) {11$this->viewer = $viewer;12return $this;13}1415public function getViewer() {16return $this->viewer;17}1819public function getIsVisible() {20return (bool)$this->getSetting($this->getVisibleSettingKey());21}2223public function setDisabled($disabled) {24$this->disabled = $disabled;25return $this;26}2728public function getDisabled() {29return $this->disabled;30}3132public function setChangesets(array $changesets) {33$this->changesets = $changesets;34return $this;35}3637public function getChangesets() {38return $this->changesets;39}4041public function newView($content) {42if ($this->getDisabled()) {43return $content;44}4546require_celerity_resource('diff-tree-view-css');4748$width = $this->getWidth();49$is_visible = $this->getIsVisible();5051$formation_view = new PHUIFormationView();5253$flank_view = $formation_view->newFlankColumn()54->setHeaderText(pht('Paths'))55->setIsResizable(true)56->setIsFixed(true)57->setIsVisible($is_visible)58->setIsDesktopOnly(true)59->setWidth($width)60->setMinimumWidth($this->getMinimumWidth())61->setMaximumWidth($this->getMaximumWidth());6263$viewer = $this->getViewer();64if ($viewer->isLoggedIn()) {65$flank_view66->setExpanderTooltip(pht('Show Paths Panel'))67->setVisibleSettingKey($this->getVisibleSettingKey())68->setWidthSettingKey($this->getWidthSettingKey());69}7071$head_view = id(new PHUIListView())72->addMenuItem(73id(new PHUIListItemView())74->setIcon('fa-list')75->setName(pht('Table of Contents'))76->setKeyCommand('t')77->setHref('#'));78$flank_view->setHead($head_view);7980$tail_view = id(new PHUIListView());8182if ($viewer->isLoggedIn()) {83$tail_view->addMenuItem(84id(new PHUIListItemView())85->setIcon('fa-comment-o')86->setName(pht('Add Comment'))87->setKeyCommand('x')88->setHref('#'));89}9091$tail_view92->addMenuItem(93id(new PHUIListItemView())94->setIcon('fa-chevron-left')95->setName(pht('Hide Panel'))96->setKeyCommand('f')97->setHref('#'))98->addMenuItem(99id(new PHUIListItemView())100->setIcon('fa-keyboard-o')101->setName(pht('Keyboard Reference'))102->setKeyCommand('?')103->setHref('#'));104$flank_view->setTail($tail_view);105106$main_column = $formation_view->newContentColumn()107->appendChild($content);108109return $formation_view;110}111112private function getVisibleSettingKey() {113return PhabricatorFiletreeVisibleSetting::SETTINGKEY;114}115116private function getWidthSettingKey() {117return PhabricatorFiletreeWidthSetting::SETTINGKEY;118}119120private function getWidth() {121$width = (int)$this->getSetting($this->getWidthSettingKey());122123if (!$width) {124$width = $this->getDefaultWidth();125}126127$min = $this->getMinimumWidth();128if ($width < $min) {129$width = $min;130}131132$max = $this->getMaximumWidth();133if ($width > $max) {134$width = $max;135}136137return $width;138}139140private function getDefaultWidth() {141return 240;142}143144private function getMinimumWidth() {145return 150;146}147148private function getMaximumWidth() {149return 512;150}151152private function getSetting($key) {153$viewer = $this->getViewer();154return $viewer->getUserSetting($key);155}156157158}159160161