Académique Documents
Professionnel Documents
Culture Documents
package model;
package socket;
import java.util.ArrayList;
import javax.enterprise.context.ApplicationScoped;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.json.JsonObject;
import javax.json.spi.JsonProvider;
import javax.websocket.Session;
import model.Usuario;
@ApplicationScoped
public class UsuarioManager {
private int deviceId = 1;
private final Set<Session> sessions = new HashSet<>();
private final Set<Usuario> usuarios = new HashSet<>();
package socket;
import java.io.StringReader;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import model.Usuario;
@ApplicationScoped
@ServerEndpoint("/acciones")
public class UsuarioSocket {
@Inject
private UsuarioManager usuarioManager;
@OnOpen
public void open(Session session) {
usuarioManager.addSession(session);
@OnMessage
public void handleMessage(String message, Session session) {
try (JsonReader reader = Json.createReader(new
StringReader(message))) {
JsonObject jsonMessage = reader.readObject();
if ("add".equals(jsonMessage.getString("action"))) {
Usuario usuario = new Usuario();
usuario.setCodigo(jsonMessage.getString("codigo"));
usuario.setNombre(jsonMessage.getString("nombre"));
usuarioManager.addUsuario(usuario);
}
if ("remove".equals(jsonMessage.getString("action"))) {
int id = (int) jsonMessage.getInt("id");
usuarioManager.removeUsuario(id);
}
}
}
}
.contenedor-tabla{
display: table;
}
.contenedor-fila{
display: table-row;
border: 2px solid #000000;
}
.contenedor-columna{
display: table-cell;
border: 1px solid #000000;
vertical-align: middle;
padding: 10px;
}
window.onload = init;
var socket = new
WebSocket("ws://localhost:8080/Mantenimiento/acciones");
socket.onmessage = onMessage;
function onMessage(event) {
var usuario = JSON.parse(event.data);
if (usuario.action === "add") {
visualizarUsuario(usuario);
}
}
function removeUsuario(element) {
var id = element;
var DeviceAction = {
action: "remove",
id: id
};
socket.send(JSON.stringify(DeviceAction));
}
function visualizarUsuario(device) {
var table = document.getElementById("tabla");
fila.appendChild(col1)
fila.appendChild(col2)
fila.appendChild(col3)
table.appendChild(fila);
}
function addUsuario(codigo, nombre) {
var UsuarioAction = {
action: "add",
codigo: codigo,
nombre: nombre
};
socket.send(JSON.stringify(UsuarioAction));
}
function showForm() {
document.getElementById("FormularioAgregarUsuario").style.display = '';
}
function hideForm() {
document.getElementById("FormularioAgregarUsuario").style.display =
"none";
}
function formSubmit() {
var formulario = document.getElementById("FormularioAgregarUsuario");
var codigo = formulario.elements["codigo"].value;
var nombre = formulario.elements["nombre"].value;
hideForm();
document.getElementById("FormularioAgregarUsuario").reset();
addUsuario(codigo, nombre);
}
function init() {
hideForm();
}
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<script src="websocket.js"></script>
<link rel="stylesheet" type="text/css" href="estilo.css">
</head>
<body>
<div>Mantenimiento de Usuario</div>
<div id="AgregarUsuario">
<div class="button">
<a href="#" OnClick="showForm()">Agregar Usuario</a>
</div>
<form id="FormularioAgregarUsuario">
<h3>Agregar Usuario</h3>
<table>
<tr>
<td>Codigo
</td>
<td><input type="text" name="codigo" id="codigo">
</td>
</tr>
<tr>
<td>Nombre:
</td>
<td><input type="text" name="nombre" id="nombre">
</td>
</tr>
</table>
<input type="button" class="button" value="Agregar"
onclick=formSubmit()>
<input type="reset" class="button" value="Cancelar"
onclick=hideForm()>
</form>
</div>
<br />
<h3>Listado</h3>
<div id="contenido">
<div id="tabla" class="contenedor-tabla">
<div id="fila" class="contenedor-fila">
<div id="col1" class="contenedor-columna">
Codigo
</div>
<div id="col2" class="contenedor-columna">
Nombre
</div>
<div id="col3" class="contenedor-columna">
Eliminar
</div>
</div>
</div>
</div>
</body>
</html>