Communication
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;
}
});