/**
 * Superclasse controlador
 * 
 * @author Renato Sulzbach
 * @version 2.0
 * @since 27/06/2008
 */
function CtrPrincipal() {

	this.codSucesso = 0;
	this.codErro = 1;
	this.codAlerta = 2;
	this.codPermissao = 3;
	

	/*
	 * Retorna o id do controlador
	 */
	this.getId = function() {
		return this.id;
	}
	
	
	/*
	 * Fecha o limite (GUI) destruindo todas as suas refer�ncias.
	 */
	 
	this.fecharJanela = function() {
		limiteDoAplcativo = aplicativo.getLimite(this.getId());
		if((this.getLimite() != undefined && this.getLimite() != null) || (limiteDoAplcativo != undefined && limiteDoAplcativo != null)) {
			this.getLimite().destroy();
		}
		
		this.objLimite = null;

		aplicativo.destruirControlador(this.getId());
	}
	

	/*
	 * Faz o tratamento de uma mensagem recebida pelo servidor (DWR)
	 * @param vCodigo o c�digo da mensagem retornada pelo servidor (sucesso, erro...)
	 * @param vMensagem a mensagem a ser mostrada para o usu�rio
	 * @param retornarFeedback TRUE para mostrar o feedback no HTML ou FALSE para n�o mostrar nada
	 */
	this.trataRespostaServidor = function(vCodigo, vMensagem, retornarFeedback) {
			var limite = this.getLimite();

		if (limite != null) {
			// Mostra feedback incondicionalmente quando eh erro
			// Quando eh sucesso, mostra apenas quanto retornarFeedback eh true
			if (Number(vCodigo) != 0 || retornarFeedback) {
				limite.mostrarMensagem(Number(vCodigo), vMensagem);
			}
		} else {
			vCodigo = 1;
		}

		return vCodigo == 0 ? true : false;
	}
	
	
	/*
	 * M�todos de acesso
	 */
	this.getCodSucesso = function() {
		return this.codSucesso;
	}
	
	this.getCodErro = function() {
		return this.codErro;
	}
	
	this.getCodAlerta = function() {
		return this.codAlerta;
	}
	
	this.getCodPermissao = function() {
		return this.codPermissao;
	}
}
CtrPrincipal.prototype = new Controlador;