Communication
De WebswingConnector biedt bidirectionele communicatie tussen uw webforJ-app en de ingebedde Swing-app. Hierdoor kunt u opdrachten naar de Swing-app verzenden en meldingen ontvangen wanneer zich gebeurtenissen binnen deze app voordoen.
Acties naar Swing verzenden
De performAction()-methode stelt uw webforJ-app in staat om functionaliteit in de Swing-app te activeren. Dit is nuttig voor het synchroniseren van de status, het activeren van updates of het controleren van het gedrag van de Swing-app vanuit de webinterface.
Bijvoorbeeld, als uw Swing-app een aangepaste actiehandler heeft voor het vernieuwen van gegevens:
// Trigger een verversing in de Swing-applicatie vanuit webforJ
connector.performAction("refresh");
U kunt ook gegevens samen met de actie verzenden. De Swing-app ontvangt deze via de Webswing API-integratie:
// Stuur een opdracht met gegevens vanuit webforJ
connector.performAction("selectRecord", "12345");
// Stuur binaire gegevens
byte[] fileContent = Files.readAllBytes(path);
connector.performAction("uploadDocument", "invoice.pdf", new String(fileContent));
De actienamen en verwachte gegevensformaten zijn gedefinieerd door de implementatie van uw Swing-app.
Evenementen van Swing ontvangen
De connector genereert drie soorten evenementen die uw webforJ-app op de hoogte stellen van de status en acties van de Swing-app.
Levenscyclus evenementen
Het initialize evenement wordt geactiveerd wanneer de Webswing-verbinding is tot stand gebracht en klaar is voor communicatie:
connector.onInitialize(event -> {
// Verbinding tot stand gebracht
connector.getInstanceId().ifPresent(id ->
console.log("Verbonden met Webswing-instantie: " + id)
);
});
Het start evenement wordt geactiveerd wanneer de Swing-app volledig is geladen en draait:
connector.onStart(event -> {
// Swing-applicatie is nu zichtbaar en interactief
console.log("Applicatie klaar voor gebruikersinteractie");
});
Aangepaste actie-evenementen
Wanneer uw Swing-app aangepaste acties terug naar de webinterface verzendt met behulp van de Webswing Java API, worden deze ontvangen als actie-evenementen:
connector.onAction(event -> {
String actionName = event.getActionName();
switch(actionName) {
case "dataUpdated":
event.getActionData().ifPresent(data -> {
// Behandel de update-melding
updateWebInterface(data);
});
break;
case "fileReady":
event.getActionBinaryData().ifPresent(data -> {
// Binaire gegevens
saveFile(fileData);
});
break;
}
});