dúvida table ow datatable..? help plzzzz

0 respostas
P

Seguinte galera.. estou desenvolvendo um monitor de serviços...
tenho um escopozinho dele ja feito... soh q agarrei num problema agora:
do jeito q ta ele esta feito com um arraylist num datatable..
agora.. preciso que o campo detalhes na "tabela" seja um link caso ocorra um erro(somente se ocorrer o erro),e esse link abra com detalhes do erro e talz..

alguem sabe me dizer se consigo fazer isso em datatable mesmo??
ow se terei q usar table..
arraylist mesmo??
como faço?
estou perdido!
ajudem plz.. valeu!!

package br.gov.prodemge.monitor;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import com.softwareag.entirex.aci.BrokerException;

import br.gov.prodemge.broker.client.BrokerConversation;

public class MonitorBean {
	
	List<Item> lista1;
	private final String CODIGO_ERRO="999";
	private String codigo,driver,url,user,password,query;
	
	public MonitorBean(){

		lista1 = new ArrayList<Item>();
		preencherDados();
		inicializarHosts();
		monitorar();
	}

	private ResourceBundle hostConfig;

	private ResourceBundle msgConfig;
	
	/*Método que carrega arquivo de propriedades com configurações do broker
	 * e com mensagens utilizadas no monitor.*/
	private void inicializarHosts(){

		try {
			hostConfig = ResourceBundle.getBundle("brokerconfigmonitor");         
		} catch (Exception e) {
			System.out.println("\n\n\n\nArquivo de configuração do Broker não encontrado.");     
			e.printStackTrace();

		}
		try {
			msgConfig = ResourceBundle.getBundle("mensagensmonitor");         
		} catch (Exception e) {
			System.out.println("\n\n\n\nArquivo de configuração de Mensagens não encontrado.");
			e.printStackTrace();
		}
	}
	String mensagem = null;
	String[] params = null;


	public void monitorar() {
		try {
			monitorarSigecop();
			monitorarSisap();
			monitorarBancoDeDados();
			monitorarAdseg();
		} catch (RuntimeException e) {
			e.printStackTrace();
		}


	}
	/* Método para monitorar serviço ADSEG*/
	public void monitorarAdseg() {
		try {
			BrokerConversation bcon = BrokerConversation.getInstancia("adseg", hostConfig, msgConfig);
			mensagem = "mensagem.acessarAdseg";
			StringBuffer result = bcon.getResponseAsString(mensagem, params);

			codigo=result.substring(0, 3);
			
			if(codigo.equals(CODIGO_ERRO))
			{
				lista1.get(4).setStatus(false);
				lista1.get(4).setDetalhe(msgConfig.getString("mensagem.erro.programa"));
			}
			else
			{
				lista1.get(4).setStatus(true);
				lista1.get(4).setDetalhe(msgConfig.getString("mensagem.servico.adseg.registrado"));
			}

		} catch (BrokerException e) {
			if((e.getErrorClass() == 0007) || e.getErrorCode() == 7)
			{	lista1.get(4).setDetalhe(msgConfig.getString("mensagem.erro.servico.adseg.nao.registrado"));
			}
			if((e.getErrorClass() == 0074) || e.getErrorCode() == 74)
			{	lista1.get(4).setDetalhe(msgConfig.getString("E074"));
			}			
			if((e.getErrorClass() == 0020) || e.getErrorCode() == 94)
			{	lista1.get(4).setDetalhe(msgConfig.getString("E0020"));
			}	
			if((e.getErrorClass() == 0215) || e.getErrorCode() == 215)
			{	lista1.get(4).setDetalhe(msgConfig.getString("E215"));
			}	
			lista1.get(4).setStatus(false);

		}
	}

	/* Método para monitorar serviço SIGECOP*/
	public void monitorarSigecop(){
		try {

			BrokerConversation bcon = BrokerConversation.getInstancia("sigecop", hostConfig, msgConfig);
			mensagem = "mensagem.consultarConcurso";
			StringBuffer result = bcon.getResponseAsString(mensagem, params);
			codigo=result.substring(0, 3);
			
			if(codigo.equals(CODIGO_ERRO))
			{
				lista1.get(2).setStatus(false);
				lista1.get(2).setDetalhe(msgConfig.getString("mensagem.erro.programa"));
			}
			else
			{
				lista1.get(2).setStatus(true);
				lista1.get(2).setDetalhe(msgConfig.getString("mensagem.servico.sigecop.registrado"));
			}

			lista1.get(0).setStatus(true);


		} 
		catch (BrokerException e) {

			if((e.getErrorClass() == 0007) || e.getErrorCode() == 7)
			{	lista1.get(2).setDetalhe(msgConfig.getString("mensagem.erro.servico.sigecop.nao.registrado"));
			lista1.get(0).setDetalhe(msgConfig.getString("mensagem.servico.broker.funcionando"));
			lista1.get(0).setStatus(true);
			}
			if((e.getErrorClass() == 0074) || e.getErrorCode() == 74)
			{	lista1.get(2).setDetalhe(msgConfig.getString("E074"));
			lista1.get(0).setDetalhe(msgConfig.getString("mensagem.servico.broker.funcionando"));
			lista1.get(0).setStatus(true);
			}			
			if((e.getErrorClass() == 0020) || e.getErrorCode() == 94)
			{	lista1.get(2).setDetalhe(msgConfig.getString("E0020"));
			lista1.get(0).setDetalhe(msgConfig.getString("E0020"));
			lista1.get(0).setStatus(false);
			}	
			if((e.getErrorClass() == 0215) || e.getErrorCode() == 215)
			{	lista1.get(2).setDetalhe(msgConfig.getString("E215"));
			lista1.get(0).setDetalhe(msgConfig.getString("E215"));
			lista1.get(0).setStatus(false);
			}	

			lista1.get(2).setStatus(false);


		}

	}
	/* Método para monitorar serviço SISAP*/
	public void monitorarSisap(){

		try {
			BrokerConversation bcon = BrokerConversation.getInstancia("sisap", hostConfig, msgConfig);
			mensagem = "mensagem.orgaoEntidade";
			StringBuffer result = bcon.getResponseAsString(mensagem, params);
			codigo=result.substring(0, 3);
			
			if(codigo.equals(CODIGO_ERRO))
			{
				lista1.get(1).setStatus(false);
				lista1.get(1).setDetalhe(msgConfig.getString("mensagem.erro.programa"));
			}
			else
			{
				lista1.get(1).setStatus(true);
				lista1.get(1).setDetalhe(msgConfig.getString("mensagem.servico.sisap.registrado"));
			}


		} catch (BrokerException e) {
			if((e.getErrorClass() == 0007) || e.getErrorCode() == 7)
			{	lista1.get(1).setDetalhe(msgConfig.getString("mensagem.erro.servico.sisap.nao.registrado"));
			}
			if((e.getErrorClass() == 0074) || e.getErrorCode() == 74)
			{	lista1.get(1).setDetalhe(msgConfig.getString("E074"));
			}			
			if((e.getErrorClass() == 0020) || e.getErrorCode() == 94)
			{	lista1.get(1).setDetalhe(msgConfig.getString("E0020"));
			}	
			if((e.getErrorClass() == 0215) || e.getErrorCode() == 215)
			{	lista1.get(1).setDetalhe(msgConfig.getString("E215"));
			}	
			lista1.get(1).setStatus(false);

		}


	}
	/* Método para monitorar serviço de Banco de Dados*/
	public void monitorarBancoDeDados(){
		driver=msgConfig.getString("jdbc.driver");
		url=msgConfig.getString("jdbc.url");
		user=msgConfig.getString("jdbc.user");
		password=msgConfig.getString("jdbc.password");
		query=msgConfig.getString("jdbc.query");
		try {
			Class.forName(driver);
			Connection conn = DriverManager.getConnection(url,user,password);
			Statement stm = conn.createStatement();
			ResultSet rs = stm.executeQuery(query);
			if(rs!=null)
				lista1.get(3).setDetalhe(msgConfig.getString("mensagem.conexao.banco.dados.efetuada"));
			lista1.get(3).setStatus(true);


		} 
		catch (RuntimeException e) {
			lista1.get(3).setStatus(false);
			lista1.get(3).setDetalhe(msgConfig.getString("mensagem.erro.conexao.banco.dados"));
		}
		catch (SQLException e){
			lista1.get(3).setStatus(false);
			lista1.get(3).setDetalhe(msgConfig.getString("mensagem.erro.conexao.banco.dados"));
		}
		catch(ClassNotFoundException e)
		{
			e.printStackTrace();
		}
	}

	public List<Item> getLista1() {
		return lista1;
	}

	public void setLista1(List<Item> lista1) {
		this.lista1 = lista1;
	}

	private void preencherDados(){
		lista1.add(new Item("Broker"));
		lista1.add(new Item("Sisap"));
		lista1.add(new Item("Sigecop"));
		lista1.add(new Item("Banco de Dados"));
		lista1.add(new Item("Adseg"));


	}
	public static void main (String args[]) throws ClassNotFoundException, SQLException {
		MonitorBean m= new MonitorBean();
		m.monitorarBancoDeDados();
		m.monitorarSisap();
		m.monitorarSigecop();
		m.monitorarAdseg();
		System.out.println("Adseg ="+m.lista1.get(4).isStatus());
		System.out.println("banco = " + m.lista1.get(3).isStatus());
		System.out.println("sisap = " + m.lista1.get(1).isStatus());
		System.out.println("sigecop =" +m.lista1.get(2).isStatus());
		System.out.println("broker =" +m.lista1.get(0).isStatus());

	}


}
package br.gov.prodemge.monitor;

public class Item {
	private int codigo;
	private String descricao;
	private String detalhe;
	private boolean status;
	
	public Item(String descricao){
		this.setDescricao(descricao);
		this.setStatus(false);
	}
	
	public Item(String descricao, boolean status){
		this.setDescricao(descricao);
		this.setStatus(status);
	}
	
	public boolean isStatus() {
		return status;
	}

	public void setStatus(boolean status) {
		this.status = status;
	}
	
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public String getDetalhe() {
		return detalhe;
	}
	
	public void setDetalhe(String detalhe) {
		this.detalhe = detalhe;
		
	}
}
package br.gov.prodemge.monitor;

public class Item {
	private int codigo;
	private String descricao;
	private String detalhe;
	private boolean status;
	
	public Item(String descricao){
		this.setDescricao(descricao);
		this.setStatus(false);
	}
	
	public Item(String descricao, boolean status){
		this.setDescricao(descricao);
		this.setStatus(status);
	}
	
	public boolean isStatus() {
		return status;
	}

	public void setStatus(boolean status) {
		this.status = status;
	}
	
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public String getDetalhe() {
		return detalhe;
	}
	
	public void setDetalhe(String detalhe) {
		this.detalhe = detalhe;
		
	}
}
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<f:view>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>Monitoramento Sigecop</TITLE>
<LINK REL="STYLESHEET" HREF="./css/estilo_seplag.css" TYPE="text/css">
</HEAD>
<BODY>
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0">
		  <tr>
		    <td width="25%"  bgcolor="#C4DBEB"><div align="left"><img src="images/cab_left.jpg" width="188" height="90"></div></td>
		    <td width="49%"  bgcolor="#C4DBEB"><div align="center"><img src="images/logomarca_sigecop.jpg" width="366" height="90"></div></td>
		    <td width="26%"  bgcolor="#C4DBEB"><div align="right"><img src="images/cab_right.jpg" width="188" height="90"></div></td>
		  </tr>
		</table>

<CENTER>
<TABLE style="bordaTodosLados">
	  <TR style="cabecalhoTabela">
	  	<td CLASS="tituloTela">Monitor SIGECOP</td>
	  </TR>
	</TABLE>
<h:form>
<h:dataTable styleClass="tabela" value="#{monitorBean.lista1}"var="itemMonitorado1"border="1">
<h:column>
<h:outputText value="#{itemMonitorado1.descricao}" style=""/>
</h:column>
<h:column>
 <h:outputText value="#{itemMonitorado1.status}" styleClass="#{ itemMonitorado1.status ? 'RedMessage' : 'GreenMessage'}" /> 
</h:column>
<h:column>
<h:outputText style=" font-weight: bold;" value="#{itemMonitorado1.detalhe}"/>
</h:column>
</h:dataTable>
<h:commandButton action="#{monitorBean.monitorar}" value="Atualizar" styleClass="botao"></h:commandButton>
</h:form>
</CENTER></BODY></HTML>
</f:view>
Criado 11 de fevereiro de 2008
Respostas 0
Participantes 1