Saltar al contenido principal

Communication

Abrir en ChatGPT

El WebswingConnector proporciona comunicación bidireccional entre tu aplicación webforJ y la aplicación Swing incrustada. Esto te permite enviar comandos a la aplicación Swing y recibir notificaciones cuando ocurren eventos dentro de ella.

Enviando acciones a Swing

El método performAction() permite que tu aplicación webforJ active funcionalidades en la aplicación Swing. Esto es útil para sincronizar estado, activar actualizaciones o controlar el comportamiento de la aplicación Swing desde la interfaz web.

Por ejemplo, si tu aplicación Swing tiene un manejador de acciones personalizado para actualizar datos:

// Activar una actualización en la aplicación Swing desde webforJ
connector.performAction("refresh");

También puedes enviar datos junto con la acción. La aplicación Swing recibe esto a través de su integración con la API Webswing:

// Enviar un comando con datos desde webforJ
connector.performAction("selectRecord", "12345");

// Enviar datos binarios
byte[] fileContent = Files.readAllBytes(path);
connector.performAction("uploadDocument", "invoice.pdf", new String(fileContent));

Los nombres de las acciones y los formatos de datos esperados están definidos por la implementación de tu aplicación Swing.

Recibiendo eventos desde Swing

El conector dispara tres tipos de eventos que notifican a tu aplicación webforJ sobre el estado y las acciones de la aplicación Swing.

Eventos de ciclo de vida

El evento de inicialización se dispara cuando se establece la conexión Webswing y está lista para la comunicación:

connector.onInitialize(event -> {
// Conexión establecida
connector.getInstanceId().ifPresent(id ->
console.log("Conectado a la instancia de Webswing: " + id)
);
});

El evento de inicio se dispara cuando la aplicación Swing se ha cargado completamente y está en funcionamiento:

connector.onStart(event -> {
// La aplicación Swing ahora es visible e interactiva
console.log("Aplicación lista para la interacción del usuario");
});

Eventos de acción personalizada

Cuando tu aplicación Swing envía acciones personalizadas de vuelta a la interfaz web utilizando la API Java de Webswing, estas se reciben como eventos de acción:

connector.onAction(event -> {
String actionName = event.getActionName();

switch(actionName) {
case "dataUpdated":
event.getActionData().ifPresent(data -> {
// Manejar la notificación de actualización
updateWebInterface(data);
});
break;

case "fileReady":
event.getActionBinaryData().ifPresent(data -> {
// Datos binarios
saveFile(fileData);
});
break;
}
});