Ejemplo n.º 1
0
 /**
  * 
  */
 public function makeTDataGrid($properties)
 {
     $table = new TTable();
     $widget = new TDataGrid();
     $widget->setHeight((string) $properties->{'height'});
     if ($properties->{'columns'}) {
         foreach ($properties->{'columns'} as $Column) {
             $dgcolumn = new TDataGridColumn((string) $Column->{'name'}, (string) $Column->{'label'}, (string) $Column->{'align'}, (string) $Column->{'width'});
             $widget->addColumn($dgcolumn);
             $this->fieldsByName[(string) $Column->{'name'}] = $dgcolumn;
         }
     }
     if ($properties->{'actions'}) {
         foreach ($properties->{'actions'} as $Action) {
             $dgaction = new TDataGridAction(array($this->controller, (string) $Action->{'method'}));
             $dgaction->setLabel((string) $Action->{'label'});
             $dgaction->setImage((string) $Action->{'image'});
             $dgaction->setField((string) $Action->{'field'});
             $widget->addAction($dgaction);
             //$this->fieldsByName[(string)$properties->Name] = $column;
         }
     }
     if ((string) $properties->{'pagenavigator'} == 'yes') {
         $loader = (string) $properties->{'loader'} ? (string) $properties->{'loader'} : 'onReload';
         $pageNavigation = new TPageNavigation();
         $pageNavigation->setAction(new TAction(array($this->controller, $loader)));
         $pageNavigation->setWidth($widget->getWidth());
     }
     $widget->createModel();
     $row = $table->addRow();
     $row->addCell($widget);
     if (isset($pageNavigation)) {
         $row = $table->addRow();
         $row->addCell($pageNavigation);
         $widget->setPageNavigation($pageNavigation);
     }
     $this->fieldsByName[(string) $properties->{'name'}] = $widget;
     $widget = $table;
     return $widget;
 }
$nome = new TDataGridColumn('nome', 'Nome', 'left', 160);
$endereco = new TDataGridColumn('endereco', 'Endereço', 'left', 140);
$datanasc = new TDataGridColumn('datanasc', 'Data Nasc', 'left', 100);
$sexo = new TDataGridColumn('sexo', 'Sexo', 'center', 100);
// aplica as funções para transformar as colunas
$nome->setTransformer('strtoupper');
$datanasc->setTransformer('conv_data_to_br');
$sexo->setTransformer('get_sexo');
// adiciona as colunas à DataGrid
$datagrid->addColumn($codigo);
$datagrid->addColumn($nome);
$datagrid->addColumn($endereco);
$datagrid->addColumn($datanasc);
$datagrid->addColumn($sexo);
// cria o modelo da DataGrid, montando sua estrutura
$datagrid->createModel();
// obtém objetos do banco de dados
try {
    // inicia transação com o banco 'pg_livro'
    TTransaction::open('pg_livro');
    // instancia um repositório para Pessoa
    $repository = new TRepository('Pessoa');
    // cria um critério, definindo a ordenação
    $criteria = new TCriteria();
    $criteria->setProperty('order', 'id');
    // carrega os objetos $pessoas
    $pessoas = $repository->load($criteria);
    foreach ($pessoas as $pessoa) {
        // adiciona o objeto na DataGrid
        $datagrid->addItem($pessoa);
    }