Communication
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;
}
});