logo
24.2
search
No matching documents found.
list
search
No matching documents found.
logo

Javascript API

Webswing provides an NPM module for easier integration of Webswing to javascript/typescript projects. This allows easier integration of Webswing into the existing web project. The module provides typescript declarations.

Requirements: This module works with Webswing 22.2 and newer.

Installation

npm install webswing-api

Basic Usage

import { getWebswingApi } from 'webswing-api'

getWebswingApi("http://localhost:8080/webswing-demo").then((api) => {
    const instance = api.bootstrap(document.getElementById('#rootElement'))
    instance.start()
})

ThegetWebswingApi is an async functions that is responsible for loading the actuall Webswing JS client from the Webswing server identified by the connectionUrl parameter. When the JS client is loaded API object is returned, which can be used to bootstrap the Webswing view to a DOM element passed in the first argument.

Usage with Customization and Options

import { getWebswingApi } from 'webswing-api'

const connectionUrl = "http://localhost:8080/webswing-demo"

getWebswingApi(connectionUrl, i18n).then((api) => {
    const instance = api.bootstrap(document.getElementById('#rootElement'), {
            //here define basic bootstrap options like:
            autoStart: false,
            args: 'customArgs sent to Swing app',
            onReady: () => { instance.start()},
            onStart: () => {// ...}
        },
        (injector) => {
        	// here define more advanced customizations of Webswing JS client behavior like dialog contents: 
        	injector.services.dialog.content.startingDialog.content = `<p>MyApp is being started</p>`
            injector.services.dialog.content.initializingDialog.content = `<p>MyApp is being initialized</p>`
        }
    )
}).catch((e) => {
	console.error(e)
	// ...
})

The getWebswingApi function allows to pass in custom translations logic and with the bootstrap function you can modify the bootstrap options and also define advanced customizations of the Webswing client behavior.

Custom i18n

You can reuse the i18n framework from your project by passing custom translate logic as second parameter of getWebswingApi function. Otherwise will be loaded from server. The translation logic is expecting object with this interface:

interface ITranslations {
    translate: (key: string, vars?: any) => string;
    getLocale: () => string;
}

Bootstrap Options

These options can be modified in the bootstrap function's second parameter.

Options Description
autoStart tells Webswing to execute the start() function right after the instance is initialized. If it is false, start() function has to be triggered manually
connectionUrl base URL for connecting to websocket service (default: current location url)
onReady callback after session logs in and is ready to start
onStart callback after session starts
autoReconnect number of milliseconds to wait until re-connection attempt in case of connection to server is terminated
disableLogout removes Logout button from all dialogs
disableLogin completely disables login process
args additional Java application arguments. Value of this option is available in Webswing config using the ${customArgs} variable
securityToken parameter passed to security module during authentication.
realm parameter passed to security module during authentication.
debugPort integer that specifies on which port should the debugger listen to. See development docs for more information
recording record this application session (default: false)
javaCallTimeout JsLink Java method invocation timeout. If Java method is not returned with a result, an error is logged to the browser console
syncClipboard enable synchronization of user's local clipboard with Webswing (not yet supported in Firefox)
pingParams setup parameters for checking connection stability
windowsListener set of listener functions called when swing window status changes
hideTouchBar hide touch bar in touch mode
disableAppDocumentTitle disable setting browser document title based on active swing window title
debugLog enable debug logging
traceLog enable trace logging

api.bootstrap will return an instance of webswing. Check the reference below.

Webswing Instance API Reference

Methods Description
start This will initiate the connection to Webswing server and start the Swing application. If the autoStart is set to false or not defined in config object, the start function has to be called manually, otherwise the Webswing will call start function automatically.
disconnect Disconnects the current Webswing session, but leaving the swing application running.
configure Configure instance options before start.
kill Disconnects the current Webswing session with stopping the swing application.
destroy Destroys the Webswing instance to the state before bootstrapping the HTML div.
setControl Enables/disables the control of application. If set to false, no user events are sent to the Swing application.
repaint Notify webswing server that the application needs repaint.
instanceId Returns current instance id.
getWindows Returns all instance windows (Swing windows, HtmlPanel windows and internal windows).
getRenderedWindows Returns all instance windows (Swing windows, HtmlPanel windows and internal windows) that are rendered in current browser window.
getWindowById Find a window by its id.
performAction Perform an action that triggers server-side listener.
logout Disconnects the current Webswing session and logs user out.
getConnectionInfo Get information about this instance's connection to server.
isUndocked Returns true if this script is running in an undocked instance
getFilesManager Get extended API for managing files.