Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * classe PaginaList
- * Cadastro de Pagina: Contem a listagem e o formulario de busca
- */
- use Adianti\Database\TFilter1;
- include_once 'app/lib/funcdate.php';
- class PaginaList extends TPage {
- private $form; // formulario de cadastro
- private $datagrid; // listagem
- /*
- * metodo construtor
- * Cria a pagina, o formulario e a listagem
- */
- public function __construct() {
- parent::__construct();
- // instancia um formulario
- $this->form = new TForm('form_busca_Pagina');
- // instancia uma tabela
- $panel = new TPanelForm(1000, 100);
- // adiciona a tabela ao formulario
- $this->form->add($panel);
- // cria um rótulo para o título
- $titulo = new TLabel('Cadastro de Páginas');
- $titulo->setFontFace('Arial');
- $titulo->setFontColor('red');
- $titulo->setFontSize(18);
- // adiciona o campo Titulo
- $panel->put($titulo, $panel->getColuna(), $panel->getLinha());
- // cria os campos do formulario
- $opcao = new TCombo('opcao');
- // cria um vetor com as opcoes da combo
- $items = array();
- $items['nome'] = 'Nome';
- $items['id'] = 'Código';
- // adiciona as opcoes na combo
- $opcao->addItems($items);
- //coloca o valor padrao no combo
- $opcao->setValue('nome');
- $opcao->setSize(150);
- $nome = new TEntry('nome');
- $nome->setSize(170);
- // cria um botao de acao (buscar)
- $find_button = new TButton('busca');
- // cria um botao de acao (cadastrar)
- $new_button = new TButton('novo');
- // define a acao do botao buscar
- $find_button->setAction(new TAction(array($this, 'onSearch')), 'Buscar');
- $obj = new PaginaForm;
- // define a acao do botao cadastrar
- $new_button->setAction(new TAction(array($obj, 'onEdit')), 'Novo');
- $panel->setLinha(50);
- // adiciona o campo
- $panel->putCampo(null, 'Selecione o Campo:', 0, 0);
- $panel->put(new TLabel('Informe o Valor da Busca:'), $panel->getColuna() + 160, $panel->getLinha());
- $panel->setLinha(70);
- $panel->put($opcao, $panel->getColuna(), $panel->getLinha());
- $panel->put($nome, $panel->getColuna() + 160, $panel->getLinha());
- $panel->put($find_button, $panel->getColuna() + 350, $panel->getLinha());
- $panel->put($new_button, $panel->getColuna() + 420, $panel->getLinha());
- // define quais sao os campos do formulario
- $this->form->setFields(array($nome, $find_button, $new_button));
- // instancia objeto DataGrid
- $this->datagrid = new TDataGrid;
- // instancia as colunas da DataGrid
- $dgcodigo = new TDataGridColumn('id', 'Código', 'right', 50);
- $dgnome = new TDataGridColumn('nome', 'Nome', 'left', 350);
- $dgarquivo = new TDataGridColumn('arquivo', 'Arquivo', 'left', 350);
- $dgsituacao = new TDataGridColumn('situacao', 'Situação', 'left', 100);
- $dgmodulo = new TDataGridColumn('nome_modulo', 'Módulo', 'left', 50);
- $dggrupo = new TDataGridColumn('nome_grupomenu', 'Grupo Menu', 'left', 100);
- // adiciona as colunas a DataGrid
- //$this->datagrid->addColumn($dgcodigo);
- $this->datagrid->addColumn($dgnome);
- $this->datagrid->addColumn($dgarquivo);
- $this->datagrid->addColumn($dgsituacao);
- $this->datagrid->addColumn($dgmodulo);
- $this->datagrid->addColumn($dggrupo);
- // instancia duas acoes da DataGrid
- $action1 = new TDataGridAction(array($obj, 'onEdit'));
- $action1->setLabel('Editar');
- $action1->setImage('ico_edit.png');
- $action1->setField('id');
- $action2 = new TDataGridAction(array($this, 'onDelete'));
- $action2->setLabel('Deletar');
- $action2->setImage('ico_delete.png');
- $action2->setField('id');
- $action3 = new TDataGridAction(array('PaginaDependenciaDetalhe', 'onReload'));
- $action3->setLabel('Paginas Dependentes');
- $action3->setImage('ico_novo.png');
- $action3->setField('id');
- $action3->setFk('id');
- $action3->setParameter('fk','id');
- // $action3->setParameter('fk', filter_input(INPUT_GET, 'fk'));
- // adiciona as acoes a DataGrid
- $this->datagrid->addAction($action1);
- $this->datagrid->addAction($action2);
- $this->datagrid->addAction($action3);
- // cria o modelo da DataGrid, montando sua estrutura
- $this->datagrid->createModel();
- // monta a paina atraves de uma tabela
- $panel = new TPanelForm(1000, 500);
- $panel->put($this->form, 0, 0);
- $panel->put($this->datagrid, 50, 110);
- // adiciona a tabela a pagina
- parent::add($panel);
- }
- /*
- * metodo onReload()
- * Carrega a DataGrid com os objetos do banco de dados
- */
- function onSearch() {
- // inicia transacao com o banco 'pg_ceres'
- TTransaction::open('pg_ceres');
- // instancia um repositorio para Carros
- $repository = new TRepository('PaginaRecord');
- //obtem os dados do formulario de busca
- $campo = $this->form->getFieldData('opcao');
- $dados = $this->form->getFieldData('nome');
- // cria um criterio de selecao, ordenado pelo id
- $criteria = new TCriteria;
- //verifica se o usuario preencheu o formulario
- if (($dados) && ($_GET['method'] != '')) {
- if (is_numeric($dados)) {
- $operador = '=';
- $valor = strtoupper($dados);
- } else {
- $operador = 'like';
- $valor = ("%{$dados}%");
- }
- //filtra pelo campo selecionado pelo usuario
- $criteria->add(new TFilter($campo, $operador, $valor));
- }
- $criteria->setProperty('order', 'nome');
- // carrega os objetos de acordo com o criterio
- $cadastros = $repository->load($criteria);
- $this->datagrid->clear();
- if ($cadastros) {
- // percorre os objetos retornados
- foreach ($cadastros as $cadastro) {
- // adiciona o objeto na DataGrid
- $this->datagrid->addItem($cadastro);
- }
- }
- // finaliza a transacao
- TTransaction::close();
- $this->loaded = true;
- }
- /*
- * metodo onReload()
- * Carrega a DataGrid com os objetos do banco de dados
- */
- function onReload() {
- // inicia transacao com o banco 'pg_ceres'
- TTransaction::open('pg_ceres');
- // instancia um repositorio para Carros
- $repository = new TRepository('PaginaRecord');
- // cria um criterio de selecao, ordenado pelo id
- $criteria = new TCriteria;
- $criteria->setProperty('order', 'nome');
- // carrega os objetos de acordo com o criterio
- $cadastros = $repository->load($criteria);
- $this->datagrid->clear();
- if ($cadastros) {
- // percorre os objetos retornados
- foreach ($cadastros as $cadastro) {
- // adiciona o objeto na DataGrid
- $this->datagrid->addItem($cadastro);
- }
- }
- // finaliza a transacao
- TTransaction::close();
- $this->loaded = true;
- }
- /*
- * metodo onDelete()
- * Executada quando o usuario clicar no botao excluir da datagrid
- * Pergunta ao usuario se deseja realmente excluir um registro
- */
- function onDelete($param) {
- // obtem o parametro $key
- $key = $param['key'];
- // define duas acoes
- $action1 = new TAction(array($this, 'Delete'));
- // $action2 = new TAction(array($this, 'NaoDelete'));
- // define os parametros de cada acao
- $action1->setParameter('key', $key);
- $action1->setParameter('msg', 'delete');
- // $action2->setParameter('key', $key);
- // exibe um dialogo ao usuario
- new TQuestion('Deseja realmente excluir o registro ?', $action1);
- }
- /*
- * metodo Delete()
- * Exclui um registro
- */
- function Delete($param) {
- // obtem o parametro $key
- $key = $param['key'];
- // inicia transacao com o banco 'pg_ceres'
- TTransaction::open('pg_ceres');
- // instanicia objeto Record
- $cadastro = new PaginaRecord($key);
- try {
- // deleta objeto do banco de dados
- $cadastro->delete();
- // finaliza a transacao
- TTransaction::close();
- } catch (Exception $e) { // em caso de exceção
- // exibe a mensagem gerada pela exceção
- new TMessage('error', $e->getMessage());
- // desfaz todas alterações no banco de dados
- TTransaction::rollback();
- }
- // re-carrega a datagrid
- $this->onReload();
- // exibe mensagem de sucesso
- //new TMessage('info', "Registro Excluído com sucesso");
- }
- /*
- * metodo show()
- * Exibe a pagina
- */
- function show() {
- // carrega os dados no datagrid
- $this->onReload();
- //chama o metodo show da super classe
- parent::show();
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement