Esempio n. 1
0
 /**
  *
  * @param  Column\AbstractColumn $col
  * @throws \Exception
  * @return array
  */
 private function getStyles(Column\AbstractColumn $col)
 {
     $styleFormatter = [];
     /*
      * First all based on value (only one works) @todo
      */
     foreach ($col->getStyles() as $style) {
         $prepend = '';
         $append = '';
         /* @var $style \ZfcDatagrid\Column\Style\AbstractStyle */
         foreach ($style->getByValues() as $rule) {
             $colString = $rule['column']->getUniqueId();
             $operator = '';
             switch ($rule['operator']) {
                 case Filter::EQUAL:
                     $operator = '==';
                     break;
                 case Filter::NOT_EQUAL:
                     $operator = '!=';
                     break;
                 default:
                     throw new \Exception('Currently not supported filter operation: "' . $rule['operator'] . '"');
                     break;
             }
             $prepend = 'if (rowObject.' . $colString . ' ' . $operator . ' \'' . $rule['value'] . '\') {';
             $append .= '}';
         }
         $styleString = '';
         switch (get_class($style)) {
             case 'ZfcDatagrid\\Column\\Style\\Bold':
                 $styleString = self::STYLE_BOLD;
                 break;
             case 'ZfcDatagrid\\Column\\Style\\Italic':
                 $styleString = self::STYLE_ITALIC;
                 break;
             case 'ZfcDatagrid\\Column\\Style\\Strikethrough':
                 $styleString = self::STYLE_STRIKETHROUGH;
                 break;
             case 'ZfcDatagrid\\Column\\Style\\Color':
                 $styleString = 'cellvalue = \'<span style="color: #' . $style->getRgbHexString() . ';">\' + cellvalue + \'</span>\';';
                 break;
             case 'ZfcDatagrid\\Column\\Style\\BackgroundColor':
                 // do NOTHING! this is done by loadComplete event...
                 // At this stage jqgrid haven't created the columns...
                 break;
             default:
                 throw new \Exception('Not defined style: "' . get_class($style) . '"');
                 break;
         }
         $styleFormatter[] = $prepend . $styleString . $append;
     }
     return $styleFormatter;
 }