Zum Hauptinhalt springen

Communication

In ChatGPT öffnen

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

Aktionen an Swing senden

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

Wenn Ihre Swing-Anwendung beispielsweise einen benutzerdefinierten Aktionshandler für das Aktualisieren von Daten hat:

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

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

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

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

Die Aktionsnamen und erwarteten Datenformate sind durch die Implementierung Ihrer Swing-Anwendung definiert.

Ereignisse von Swing empfangen

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

Lebenszyklusereignisse

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

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

Das start Ereignis wird ausgelöst, wenn die Swing-Anwendung vollständig geladen und aktiv ist:

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

Benutzerdefinierte Aktionsereignisse

Wenn Ihre Swing-Anwendung benutzerdefinierte Aktionen an die Weboberfläche mit der Webswing Java API sendet, werden diese als Aktionsereignisse empfangen:

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

switch(actionName) {
case "dataUpdated":
event.getActionData().ifPresent(data -> {
// Benachrichtigung über die Aktualisierung bearbeiten
updateWebInterface(data);
});
break;

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