<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ page import="acessoBanco.Sessao" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<f:view>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>SISTRACK</TITLE>
<link rel="stylesheet" href="css/styles.css">
</HEAD>
<body bgcolor="00007A">
<font face="verdana">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="750" height="750" bgcolor="#FFFFFF">
<tr>
<td width="750" height="100" colspan="3">
<p align="center"><img src="images/banner.jpg" border="0"/></p></td>
</tr>
<tr>
<td width="715" height="409" valign="top">
<div align="center" style="overflow: auto">
<table border="1" cellpadding="3" cellspacing="1" width="715" height="568">
<tr>
<td width="715" height="564" valign="top"> <h:form>
<TABLE width="697">
<TR align="right">
<TD width="600" align="left"><font size="3" color="00007A"><b>Acompanhamento em Tempo Real</b></font></TD>
<td width="100"><h:commandButton value="Iniciar Sessão" action="#{sessao.inicia}" /></td>
<td width="100"><h:commandButton value="Finalizar Sessão" action="#{sessao.finaliza}" /></td>
</TR>
</TABLE>
<table width="700">
<tr bgcolor="CCE2FF">
<td width="50"><div align="right">Sessão:</div></td>
<td width="344"><h:inputText value="#{sessao.nome}" style="width: 400px"/></td>
</tr>
<tr>
<td width="50"><div align="right">Tolerância:</div></td>
<td width="344">
<h:selectOneMenu id="descRelatorio" value="#{sessao.tolerancia}">
<f:selectItem itemValue="0.05" itemLabel="0.1 segundo (±0.05)" />
<f:selectItem itemValue="0.05" itemLabel="0.2 segundos (±0.1)" />
<f:selectItem itemValue="0.05" itemLabel="0.3 segundos (±0.15)" />
<f:selectItem itemValue="0.05" itemLabel="0.4 segundos (±0.2)" />
<f:selectItem itemValue="0.05" itemLabel="0.5 segundos (±0.25)" />
<f:selectItem itemValue="0.05" itemLabel="0.6 segundos (±0.3)" />
<f:selectItem itemValue="0.05" itemLabel="0.7 segundos (±0.35)" />
<f:selectItem itemValue="0.05" itemLabel="0.8 segundos (±0.4)" />
<f:selectItem itemValue="0.05" itemLabel="0.9 segundos (±0.45)" />
<f:selectItem itemValue="0.05" itemLabel="1.0 segundo (±0.5)" />
</h:selectOneMenu>
</td>
</tr>
<tr bgcolor="CCE2FF">
<td width="50"><div align="right">Ambiente:</div></td>
<td >
<h:selectOneMenu id="descAmbiente" value="#{sessao.idAmbiente}">
<f:selectItems value="#{sessao.listaAmbiente}" />
</h:selectOneMenu>
</td>
</tr>
</table>
</h:form> </td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td width="750" height="30" colspan="3">
<p align="center"> </p></td>
</tr>
</table>
</div>
</font>
</body>
</HTML>
</f:view>
Sessao2.java
package acessoBanco;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.faces.model.SelectItem;
import calculos.ThreadPosicoes;
public class Sessao {
private int id=0;
private String nome="";
private Timestamp inicio;
private Timestamp fim;
private double tolerancia=0;
private int idAmbiente=0;
private List<SelectItem> listaAmbiente = new ArrayList<SelectItem>();
public int getId(){return id;}
public void setId(int i){id = i;}
public String getNome(){return nome;}
public void setNome(String n){nome = n;}
public Timestamp getInicio(){return inicio;}
public void setInicio(Timestamp ts){ inicio=ts;}
public Timestamp getFim(){return fim;}
public void setFim(Timestamp ts){ fim=ts;}
public double getTolerancia(){return tolerancia;}
public void setTolerancia(int t){tolerancia = t;}
public int getIdAmbiente(){return idAmbiente;}
public void setIdAmbiente(int idAmbiente) {this.idAmbiente = idAmbiente;}
public List<SelectItem> getListaAmbiente() throws SQLException{
listaAmbiente.clear();
Connection connection = acessoBanco.ConectaBanco.getConnection();
Statement statement = connection.createStatement();
String query = "SELECT \"AMBI_ID\", \"AMBI_DESCRICAO\" FROM \"SISTRACK_AMBIENTE\" ORDER BY 1" ;
ResultSet resultSet = statement.executeQuery(query);
listaAmbiente.add( new SelectItem("0","Selecione"));
while(resultSet.next()){
listaAmbiente.add( new SelectItem(resultSet.getInt(1),resultSet.getString(2)));
}
return listaAmbiente;
}
public String inicia() throws Exception{
int proxId=0;
System.out.print("Teste\n");
//Pega o tempo atual
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
Timestamp currentTs = new Timestamp(now.getTime());
//Conecta ao banco
Connection connection = acessoBanco.ConectaBanco.getConnection();
Statement statement = connection.createStatement();
String queryId = "SELECT MAX(\"SESS_SEQUENCIAL\") FROM \"SISTRACK_SESSAO\"";
ResultSet rs = statement.executeQuery(queryId);
rs.next();
proxId = rs.getInt(1)+1;
String query = "INSERT INTO \"SISTRACK_SESSAO\" VALUES ("+proxId+",'"+currentTs+"',"+null+",'"+nome+"')";
statement.executeUpdate(query);
ThreadPosicoes.executaCalculos();
return("inicia");
}
public String finaliza() throws Exception{
int idSessao=0;
//Pega o tempo atual
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
Timestamp currentTs = new Timestamp(now.getTime());
//Conecta ao banco
Connection connection = acessoBanco.ConectaBanco.getConnection();
Statement statement = connection.createStatement();
//Seleciona o id da sessão
String queryId = "SELECT \"SESS_SEQUENCIAL\" FROM \"SISTRACK_SESSAO\" WHERE \"SESS_DESCRICAO\" = '"+nome+"'";
ResultSet rs = statement.executeQuery(queryId);
rs.next();
idSessao = rs.getInt(1);
//Atualiza a tabela
String query = "UPDATE \"SISTRACK_SESSAO\" SET \"SESS_FIM\" = '"+currentTs+"' WHERE \"SESS_SEQUENCIAL\" = "+idSessao;
statement.executeUpdate(query);
return("finaliza");
}
}
faces.config
<managed-bean>
<managed-bean-name>sessao</managed-bean-name>
<managed-bean-class>acessoBanco.Sessao</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/acompanhaTR.jsp</from-view-id>
<navigation-case>
<from-outcome>inicia</from-outcome>
<to-view-id>/inicio.jsp</to-view-id>
</navigation-case>
</navigation-rule>