Siirry pääsisältöön

Communication

Avaa ChatGPT:ssä

WebswingConnector tarjoaa kaksisuuntaisen viestinnän webforJ-sovelluksesi ja upotetun Swing-sovelluksen välillä. Tämä mahdollistaa komentojen lähettämisen Swing-sovellukseen ja ilmoitusten vastaanottamisen sen sisällä tapahtuvista tapahtumista.

Toimintojen lähettäminen Swingiin

performAction()-metodi mahdollistaa webforJ-sovelluksesi aktivoinnin Swing-sovelluksessa. Tämä on hyödyllistä tilan synkronoinnissa, päivitysten käynnistämisessä tai Swing-sovelluksen käyttäytymisen ohjaamisessa verkkoliittymästä.

Esimerkiksi, jos Swing-sovelluksellasi on mukautettu toimintokäsittelijä tietojen päivittämiseksi:

// Käynnistä päivittäminen Swing-sovelluksessa webforJ:stä
connector.performAction("refresh");

Voit myös lähettää tietoja yhdessä toiminnon kanssa. Swing-sovellus vastaanottaa tämän Webswing API -integraationsa kautta:

// Lähetä komento tietojen kanssa webforJ:stä
connector.performAction("selectRecord", "12345");

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

Toimintojen nimet ja odotetut tietomuodot määritellään Swing-sovelluksesi toteutuksen mukaan.

Tapahtumien vastaanottaminen Swingistä

Liitin lähettää kolmen tyyppisiä tapahtumia, jotka ilmoittavat webforJ-sovelluksellesi Swing-sovelluksen tilasta ja toiminnoista.

Elinkaaritapahtumat

alkamis tapahtuma laukaisee, kun Webswing-yhteys on muodostettu ja valmis viestintään:

connector.onInitialize(event -> {
// Yhteys muodostettu
connector.getInstanceId().ifPresent(id ->
console.log("Yhdistetty Webswing-instanssiin: " + id)
);
});

aloitus tapahtuma laukaisee, kun Swing-sovellus on täysin ladattu ja käynnissä:

connector.onStart(event -> {
// Swing-sovellus on nyt näkyvissä ja vuorovaikutteinen
console.log("Sovellus valmis käyttäjän vuorovaikutukseen");
});

Mukautetut toimintotapahtumat

Kun Swing-sovelluksesi lähettää mukautettuja toimintoja takaisin verkkoliittymään käyttäen Webswing Java API, nämä vastaanotetaan toimintotapahtumina:

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

switch(actionName) {
case "dataUpdated":
event.getActionData().ifPresent(data -> {
// Käsittele päivitysilmoitus
updateWebInterface(data);
});
break;

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