Location: PHPKode > scripts > Button Panel > button-panel/ButtonPanel.class.php
<?php
/**
 * Classe que gerencia a barra de botões padrão do modelo de
 * cadastro das classes que estendem a superclasse <b>Formulario</b>.
 * 
 * Desenha uma barra de botões usadas para formularios de cadastro.
 * @author Carlos A. Junior
 */
class ButtonPanel {
	private $buttonPanel 	= NULL;
	
	private $novo 			= FALSE;
	private $salvar			= FALSE;
	private $editar 		= FALSE;
	
	private $consultar 		= FALSE;
	private $excluir		= FALSE;
	private $cancelar		= FALSE;
	private $voltar			= FALSE;
	
	/**
	 * Construtor unico da classe.
	 * @param String evento referente a qual ação foi solicitada pelo 
	 * usuario da aplicação.
	 * 
	 * @param String pagina link referente a pagina para a construção
	 * dos links para execução das ações enviadas.
	 * 
	 * @param String chave valor de parametro que será integrado aos 
	 * links de edição e de exclusão.
	 * 
	 * @param Boolean enabled dirá se a barra de botões deverá estar 
	 * ativa ou não.
	 */
    function ButtonPanel($evento = '', $pagina, $chave, $enabled) {
    	$this->eventoBarraBotoes($evento, $enabled);
    	$this->criaBotoes($pagina,$chave);
    }
    
    /**
     * Metodo que habilita e desabilita os botoes da classe de modelo de 
     * cadastro que interage com as subclasses de Formulario.class.php<br>
     * 
     * @param String evento contendo o tipo do evento que fará com que
     * determinados botoes sejam desabilitados. Exemplo: 'salvar'
     * 
     * @param Boolean enabled referente a se a barra estara ativa ou não.
     */
    private function eventoBarraBotoes($evento, $enabled = TRUE){
    	switch ($evento) {
			case 'novo':
				$this->novo 		= FALSE;
				$this->salvar		= TRUE;
				$this->editar		= FALSE;
				$this->consultar	= FALSE;
				$this->excluir		= FALSE;
				$this->cancelar		= TRUE;
				$this->voltar		= FALSE;
				break;
			case 'salvar':
				$this->novo 		= TRUE;
				$this->salvar		= FALSE;
				$this->editar		= FALSE;
				$this->consultar	= TRUE;
				$this->excluir		= FALSE;
				$this->cancelar		= FALSE;
				$this->voltar		= TRUE;
				break;			
			case 'editar':
				$this->novo 		= FALSE;
				$this->salvar		= TRUE;
				$this->editar		= FALSE;
				$this->consultar	= FALSE;
				$this->excluir		= TRUE;
				$this->cancelar		= TRUE;
				$this->voltar		= FALSE;
				break;
			case 'excluir':
				$this->novo 		= TRUE;
				$this->salvar		= FALSE;
				$this->editar		= FALSE;
				$this->consultar	= TRUE;
				$this->excluir		= FALSE;
				$this->cancelar		= FALSE;
				$this->voltar		= TRUE;
				break;
			case 'cancelar':
				$this->novo 		= TRUE;
				$this->salvar		= FALSE;
				$this->editar		= FALSE;
				$this->consultar	= TRUE;
				$this->excluir		= FALSE;
				$this->cancelar		= FALSE;
				$this->voltar		= TRUE;
				break;
			case 'visualizar':
				$this->novo 		= TRUE;
				$this->salvar		= FALSE;
				$this->editar		= TRUE;
				$this->consultar	= TRUE;
				$this->excluir		= TRUE;
				$this->cancelar		= TRUE;
				$this->voltar		= FALSE;
				break;
			case 'consultar':
			default:
				$this->novo 		= TRUE;
				$this->salvar		= FALSE;
				$this->editar		= FALSE;
				$this->consultar	= FALSE;
				$this->excluir		= FALSE;
				$this->cancelar		= FALSE;
				$this->voltar		= TRUE;
				break;
		}
		if($enabled == FALSE){
			$this->novo 		= FALSE;
			$this->salvar		= FALSE;
			$this->editar		= FALSE;
			$this->consultar	= FALSE;
			$this->excluir		= FALSE;
			$this->cancelar		= FALSE;
			$this->voltar		= TRUE;
		}
    }
    
    private function cabecalho(){
		$cabecalho = "
	    <div id=\"botoesForm\">	
			<table border=\"0\" align=\"left\">
				<tr>
					<td><img src=\"css/imagens/cadastro/cpanel.png\" align=\"top\" alt=\"\"  /></td>
				</tr>
			</table>
			<table border=\"0\" align=\"right\" cellpadding=\"0\" cellspacing=\"0\">
				<tr id=\"buttons\">";
		
		return $cabecalho;
    }
    
    /**
     * Metodo que desenha e define o caminho de link para as açoes das classes de formularios
     * que estendam a superclasse Formulario.class.php.<br>
     * 
     * @param $pagina <b>String</b> que contem a referencia de qual pagina(formulario) está sendo 
     * construida um link. Exemplo: $pagina = 'usuario'. <br>
     * 
     * @param $chave <b>Integer</b> numero de referencia para os botoes de exclusão e edição dentro
     * das classes que estendem a superclasse Formulario.class.php. 
     */
    private function criaBotoes($pagina, $chave){
	    $botaoNovo = "<td>";
	    if($this->novo){
	    	$botaoNovo .= "<div class=\"icon\"><div><p><a title=\"Inserir novo registro\"   href=\"?pagina=".$pagina."&amp;acao=novo\">";
	    	$botaoNovo .= "<img src=\"css/imagens/cadastro/new_en.png\" border=\"0\" alt=\"Inserir novo registro\"/><br />Novo</a></p></div>";
	    }else{
	    	$botaoNovo .= "<div class=\"iconDis\"><div><p><img src=\"css/imagens/cadastro/new_dis.png\" 
										alt=\"\" border=\"0\" align=\"middle\" /><br />Novo</p></div></div>";
	    }
	    $botaoNovo .= "</td>";



		$botaoSalvar = "<td>";
		if($this->salvar){
			$botaoSalvar .= "<div class=\"icon\"><div><p><a title=\"Salvar\"  
										onclick=\"javascript:validatorManager('formulario', '$pagina', 'salvar')\">";
			$botaoSalvar .= "<img src=\"css/imagens/cadastro/save_en.png\" border=\"0\" alt=\"Salvar\"/><br />Salvar</a></p></div></div>";
		}else
			$botaoSalvar .= "<div class=\"iconDis\"><div><p><img src=\"css/imagens/cadastro/save_dis.png\" 
									alt=\"\" border=\"0\" align=\"middle\" /><br />Salvar</p></div></div>";
		$botaoSalvar .= "</td>";
		
		
		
		$botaoEditar = "<td>";
		if($this->editar){
			$botaoEditar .= "<div class=\"icon\"><div><p><a title=\"Editar registro\" 
									href=\"?pagina=".$pagina."&amp;acao=editar&amp;referencia=".$chave." \">";
	    	$botaoEditar .= "<img src=\"css/imagens/cadastro/edit_en.png\" border=\"0\" 
									alt=\"Editar registro\"/><br />Editar</a></p></div></div>";
		}else
			$botaoEditar .= "<div class=\"iconDis\"><div><p><img src=\"css/imagens/cadastro/edit_dis.png\" 
						alt=\"\" border=\"0\" align=\"middle\" /><br />Editar</p></div></div>";
		$botaoEditar .= "</td>";
		
		
		
		$botaoConsultar = "<td>";
		if($this->consultar){
			$botaoConsultar .= "<div class=\"icon\"><div><p><a title=\"Consultar\" href=\"?pagina=".$pagina."&amp;acao=consultar\">";
	    	$botaoConsultar .= "<img src=\"css/imagens/cadastro/search_en.png\" border=\"0\" 
									alt=\"Consultar\"/><br />Consultar</a></p></div></div>";
		}else
			$botaoConsultar .= "<div class=\"iconDis\"><div><p><img src=\"css/imagens/cadastro/search_dis.png\" 
											alt=\"\" border=\"0\" align=\"middle\" /><br />Consultar</p></div></div>";
		$botaoConsultar .= "</td>";
		
		
		
		$botaoExcluir = "<td>";
		if($this->excluir){
			$botaoExcluir .= "<div class=\"icon\"><div><p><a title=\"Remover o registro\" 
									href=\"?pagina=".$pagina."&amp;acao=excluir&amp;referencia=".$chave."\" " .
									" onclick=\"return deletaRegistro('formulario');\" >";
	    	$botaoExcluir .= "<img src=\"css/imagens/cadastro/delete_en.png\" border=\"0\" 
									alt=\"Remover o registro\"/><br />Excluir</a></p></div></div>";
		}else
			$botaoExcluir .= "<div class=\"iconDis\"><div><p><img src=\"css/imagens/cadastro/delete_dis.png\" 
								alt=\"\" border=\"0\" align=\"middle\" /><br />Excluir</p></div></div>";
		$botaoExcluir .= "</td>";
		
		
		
		$botaoCancelar = "<td>";
		if($this->cancelar){
			$botaoCancelar .= "<div class=\"icon\"><div><p><a title=\"Cancelar ação\" href=\"?pagina=".$pagina."&amp;acao=cancelar\">";
	    	$botaoCancelar .= "<img src=\"css/imagens/cadastro/cancel_en.png\" border=\"0\" 
										alt=\"Cancelar ação\"/><br />Cancelar</a></p></div></div>";
		}else
			$botaoCancelar .= "<div class=\"iconDis\"><div><p><img src=\"css/imagens/cadastro/cancel_dis.png\" 
								alt=\"\" border=\"0\" align=\"middle\" /><br />Cancelar</p></div></div>";
		$botaoCancelar .= "</td>";
		
		
		
		$botaoVoltar = "<td>";
		if($this->voltar){
			$botaoVoltar .= "<div class=\"icon\"><div><p><a title=\"Voltar a pagina Principal\" href=\"index2.php\">";
	    	$botaoVoltar .= "<img src=\"css/imagens/cadastro/back_en.png\" border=\"0\" 
									alt=\"Voltar a pagina Principal\"/><br />Voltar</a></p></div></div>";
		}else
			$botaoVoltar .= "<div class=\"iconDis\"><div><p><img src=\"css/imagens/cadastro/back_dis.png\" 
									alt=\"\" border=\"0\" align=\"middle\" /><br />Voltar</p></div></div>";
		$botaoVoltar .= "</td>";
		
		
		
	    $rodape = "</tr></table></div>";
	    
	    $barraFinal = $this->cabecalho().$botaoNovo.$botaoSalvar.$botaoEditar.$botaoConsultar.$botaoExcluir;
	    $barraFinal .= $botaoCancelar.$botaoVoltar.$rodape;
	    
	    $this->buttonPanel = $barraFinal;
	}
    
    /**
     * Retorna uma referencia para o painel de botões.
     */
    public function getButtonPanel(){
    	return $this->buttonPanel;
    }
}
?>
Return current item: Button Panel