Zum Hauptinhalt springen

Communication

In ChatGPT öffnen

Der WebswingConnector bietet eine bidirektionale Kommunikation zwischen Ihrer webforJ-App und der eingebetteten Swing-App. Dies ermöglicht es Ihnen, Befehle an die Swing-App zu senden und Benachrichtigungen zu erhalten, wenn Ereignisse darin auftreten.

Aktionen an Swing senden

Die Methode performAction() ermöglicht es Ihrer webforJ-App, Funktionen in der Swing-App auszulösen. Dies ist nützlich, um den Zustand zu synchronisieren, Updates auszulösen oder das Verhalten der Swing-App von der Weboberfläche aus zu steuern.

Zum Beispiel, wenn Ihre Swing-App einen benutzerdefinierten Aktionshandler zum Aktualisieren von Daten hat:

// Auslösen einer Aktualisierung in der Swing-Anwendung von webforJ
connector.performAction("refresh");

Sie können auch Daten zusammen mit der Aktion senden. Die Swing-App empfängt dies über ihre Webswing-API-Integration:

// Senden eines Befehls mit Daten von webforJ
connector.performAction("selectRecord", "12345");

// Senden von Binärdaten
byte[] fileContent = Files.readAllBytes(path);
connector.performAction("uploadDocument", "invoice.pdf", new String(fileContent));

Die Aktionsnamen und die erwarteten Datenformate werden von der Implementierung Ihrer Swing-App definiert.

Ereignisse von Swing empfangen

Der Connector löst drei Arten von Ereignissen aus, die Ihre webforJ-App über den Zustand und die Aktionen der Swing-App informieren.

Lebenszyklusereignisse

Das Initialisierungsereignis wird ausgelöst, wenn die Webswing-Verbindung hergestellt ist und bereit für die Kommunikation:

connector.onInitialize(event -> {
// Verbindung hergestellt
connector.getInstanceId().ifPresent(id ->
console.log("Verbunden mit Webswing-Instanz: " + id)
);
});

Das Startereignis wird ausgelöst, wenn die Swing-App vollständig geladen und aktiv ist:

connector.onStart(event -> {
// Swing-Anwendung ist jetzt sichtbar und interaktiv
console.log("Anwendung bereit für Benutzerinteraktion");
});

Benutzerdefinierte Aktionsereignisse

Wenn Ihre Swing-App benutzerdefinierte Aktionen über die Webswing Java API an die Weboberfläche zurücksendet, werden diese als Aktionsereignisse empfangen:

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

switch(actionName) {
case "dataUpdated":
event.getActionData().ifPresent(data -> {
// Aktualisierungsbenachrichtigung bearbeiten
updateWebInterface(data);
});
break;

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