/** presentation */
 function renderEdgeTableRow($flowId)
 {
     $offset = 1 / 4;
     $rows = $this->flow->getFlowById($flowId);
     $sum = $this->flow->getSumOfOutgoingFlow($rows->from, $rows->to);
     $ratio = 0;
     if ($sum) {
         $ratio = $rows->count / $sum;
     }
     $output = "";
     $hue = 1 - ($ratio * 3 / 4 + $offset);
     $rgb = ExtraWatchHelper::HSV_TO_RGB($hue, 1, 1);
     if ($rgb) {
         $color = sprintf("#%02x%02x%02x", $rgb['R'], $rgb['G'], $rgb['B']);
     }
     $fromUri = $this->visit->getTitleByUriId($rows->from);
     $fromTitle = $this->visit->getUriNameByUri2TitleId($rows->from);
     $toUri = $this->visit->getTitleByUriId($rows->to);
     $toTitle = $this->visit->getUriNameByUri2TitleId($rows->to);
     $output .= sprintf("<tr>  \t \t    \t    \t\t  \t \t  \t \t  \t\t \t \t\t    \t \t\t\t \t   \t\t  \t \t \t\t \t \t   \t      \t  \t \t\t \t\t \t\t\t\t \t\t\t \t\t  \t\t    \t \t\t \t\t  \n        <td style='background-color: " . "%s" . "'></td>  \t \t    \t    \t\t  \t \t  \t \t  \t\t \t \t\t    \t \t\t\t \t   \t\t  \t \t \t\t \t \t   \t      \t  \t \t\t \t\t \t\t\t\t \t\t\t \t\t  \t\t    \t \t\t \t\t  \n        <th>%.2f%%</th>  \t \t    \t    \t\t  \t \t  \t \t  \t\t \t \t\t    \t \t\t\t \t   \t\t  \t \t \t\t \t \t   \t      \t  \t \t\t \t\t \t\t\t\t \t\t\t \t\t  \t\t    \t \t\t \t\t  \n        <td title='%s'>%s</td>  \t \t    \t    \t\t  \t \t  \t \t  \t\t \t \t\t    \t \t\t\t \t   \t\t  \t \t \t\t \t \t   \t      \t  \t \t\t \t\t \t\t\t\t \t\t\t \t\t  \t\t    \t \t\t \t\t  \n        <td title='%s'>%s</td>  \t \t    \t    \t\t  \t \t  \t \t  \t\t \t \t\t    \t \t\t\t \t   \t\t  \t \t \t\t \t \t   \t      \t  \t \t\t \t\t \t\t\t\t \t\t\t \t\t  \t\t    \t \t\t \t\t  \n        <th>%d</th>\n        <th>%d</th>\n    </tr>", $color, $ratio * 100, ExtraWatchHelper::truncate($fromUri, self::TRUNCATE_LEN), ExtraWatchHelper::truncate($fromTitle, self::TRUNCATE_LEN), ExtraWatchHelper::truncate($toUri, self::TRUNCATE_LEN), ExtraWatchHelper::truncate($toTitle, self::TRUNCATE_LEN), $rows->count, $sum);
     return $output;
 }
 public static function rgbColorFromRatio($ratio)
 {
     $color = "";
     $hue = ExtraWatchHelper::hueFromRatio($ratio);
     $rgb = ExtraWatchHelper::HSV_TO_RGB($hue, 1, 1);
     if ($rgb) {
         $color = sprintf("#%02x%02x%02x", $rgb['R'], $rgb['G'], $rgb['B']);
         return $color;
     }
     return $color;
 }