Passer au contenu principal

Communication

Ouvrir dans ChatGPT

Le WebswingConnector fournit une communication bidirectionnelle entre votre application webforJ et l'application Swing intégrée. Cela vous permet d'envoyer des commandes à l'application Swing et de recevoir des notifications lorsque des événements se produisent à l'intérieur.

Envoi d'actions à Swing​

La méthode performAction() permet à votre application webforJ de déclencher des fonctionnalités dans l'application Swing. Cela est utile pour synchroniser l'état, déclencher des mises à jour ou contrôler le comportement de l'application Swing depuis l'interface web.

Par exemple, si votre application Swing a un gestionnaire d'action personnalisé pour rafraîchir les données :

// Déclencher un rafraîchissement dans l'application Swing depuis webforJ
connector.performAction("refresh");

Vous pouvez également envoyer des données avec l'action. L'application Swing reçoit cela via son intégration API Webswing :

// Envoyer une commande avec des données depuis webforJ
connector.performAction("selectRecord", "12345");

// Envoyer des données binaires
byte[] fileContent = Files.readAllBytes(path);
connector.performAction("uploadDocument", "invoice.pdf", new String(fileContent));

Les noms d'action et les formats de données attendus sont définis par l'implémentation de votre application Swing.

Réception d'événements de Swing​

Le connecteur déclenche trois types d'événements qui notifient votre application webforJ sur l'état et les actions de l'application Swing.

Événements de cycle de vie​

L'événement d'initialisation se déclenche lorsque la connexion Webswing est établie et prête pour la communication :

connector.onInitialize(event -> {
// Connexion établie
connector.getInstanceId().ifPresent(id ->
console.log("Connecté à l'instance Webswing : " + id)
);
});

L'événement de démarrage se déclenche lorsque l'application Swing a complètement chargé et est en cours d'exécution :

connector.onStart(event -> {
// L'application Swing est maintenant visible et interactive
console.log("Application prête pour l'interaction utilisateur");
});

Événements d'action personnalisés​

Lorsque votre application Swing envoie des actions personnalisées vers l'interface web en utilisant l'API Java Webswing, celles-ci sont reçues en tant qu'événements d'action :

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

switch(actionName) {
case "dataUpdated":
event.getActionData().ifPresent(data -> {
// Gérer la notification de mise à jour
updateWebInterface(data);
});
break;

case "fileReady":
event.getActionBinaryData().ifPresent(data -> {
// Données binaires
saveFile(fileData);
});
break;
}
});