attributes(); $attributes->add('class', $renderer->getNodeClasses($node)); $attributes->add('id', 'bp-' . (string) $node); if ($node instanceof MonitoredNode) { $attributes->add('data-base-target', '_next'); $url = $node->getUrl(); } else { $bp = $renderer->getBusinessProcess(); $params = array( 'config' => $node instanceof ImportedNode ? $node->getConfigName() : $bp->getName() ); if ($name !== null) { $params['node'] = $name; } $url = $renderer->getBaseUrl(); $p = $url->getParams(); $p->mergeValues($params); if (! empty($path)) { $p->addValues('path', $path); } } if ($node instanceof ServiceNode) { $link = Link::create( Icon::create('service'), $url )->addContent($node->getHostname()) ->addContent(HtmlString::create('
')) ->addContent($node->getServiceDescription()); } elseif ($node instanceof HostNode) { $link = Link::create( Icon::create('host'), $url )->addContent($node->getHostname()); } else { $link = Link::create($node->getAlias(), $url); } $this->add($link); if ($node instanceof BpNode) { $link->addContent($renderer->renderStateBadges($node->getStateSummary())); } } }