Class OpenFinRuntime

  • Direct Known Subclasses:
    System

    public class OpenFinRuntime
    extends java.lang.Object
    An object representing the core of the OpenFin Runtime. Allows the developer to perform system-level actions, such as accessing logs, viewing processes, clearing the cache and exiting the Runtime. Created by wche on 1/26/16.
    • Field Detail

      • eventListenerPayload

        protected org.json.JSONObject eventListenerPayload
      • configPayload

        protected org.json.JSONObject configPayload
    • Constructor Detail

      • OpenFinRuntime

        public OpenFinRuntime​(DesktopConnection connection)
        Constructor
        Parameters:
        connection - Connection object to the AppDesktop
        See Also:
        DesktopConnection
    • Method Detail

      • getMachineId

        public void getMachineId​(AckListener listener)
        Gets Machine ID
        Parameters:
        listener - AckListener for machine ID
        See Also:
        AckListener
      • getEntityInfo

        public void getEntityInfo​(java.lang.String uuid,
                                  java.lang.String name,
                                  AckListener listener)
        Returns a frame info object relating to the entity specified by the uuid and name passed in. The possible types are 'window', 'iframe', 'external connection' or 'unknown'.
        Parameters:
        uuid - entity uuid
        name - entity name
        listener - AckListener for entity info
        See Also:
        AckListener
      • getVersion

        public void getVersion​(AckListener listener)
        Gets AppDesktop version number
        Parameters:
        listener - AckListener for version number
        See Also:
        AckListener
      • getCommandLineArguments

        public void getCommandLineArguments​(AckListener listener)
        Retrieves the command line argument string that started App Desktop
        Parameters:
        listener - AckListener for command line argument
        See Also:
        AckListener
      • getProcessList

        public void getProcessList​(AckListener listener)
        Retrieves an array of all App Desktop processes that are currently running Each element in the array is an object containing the uuid and the name of the application to which the process belongs.
        Parameters:
        listener - AckListener for process list
        See Also:
        AckListener
      • getLog

        public void getLog​(java.lang.String logName,
                           AckListener listener)
        Retrieves the contents of the log with the specified filename
        Parameters:
        logName - The filename of the log
        listener - AckListener for log contents
        See Also:
        AckListener
      • getLogList

        public void getLogList​(AckListener listener)
        Retrieves an array of data objects for all available logs Each object in the returned array takes the form: { name: (string) the filename of the log, size: (integer) the size of the log in bytes, date: (integer) the unix time at which the log was created }
        Parameters:
        listener - AckListener for log list
        See Also:
        AckListener
      • log

        public void log​(java.lang.String level,
                        java.lang.String message)
                 throws DesktopException
        Writes a message to the log
        Parameters:
        level - The log level for the entry. Can be either "info", "warning" or "error"
        message - The log message text
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException
      • log

        public void log​(java.lang.String level,
                        java.lang.String message,
                        AckListener listener)
                 throws DesktopException
        Writes a message to the log
        Parameters:
        level - The log level for the entry. Can be either "info", "warning" or "error"
        message - The log message text
        listener - AckListener for the result
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException, AckListener
      • getProxySettings

        public void getProxySettings​(AckListener listener)
        Retrieves the proxy settings object
         The proxy object the callback receives takes the following form:
         {
             type: (string) "system" or "named",
             proxyAddress: (string) the address of the proxy server,
             proxyPort: (integer) the port of proxy server
         }
         
        Parameters:
        listener - AckListener for the request
        See Also:
        AckListener
      • resolveProxy

        public void resolveProxy​(java.lang.String url,
                                 AckListener listener)
        Resolve proxy information for a given url
         Proxy setting for the url the callback receives takes the following form:
             DIRECT
         or
             PROXY host:port
        
         which can be retrieved with listener.getData()
        
         
        Parameters:
        url - url to resolve
        listener - AckListener for the request
        See Also:
        AckListener
      • updateProxySettings

        public void updateProxySettings​(java.lang.String type,
                                        java.lang.String proxyAddress,
                                        int proxyPort,
                                        AckListener listener)
                                 throws DesktopException
        Updates the proxy settings The passed type can be either "system" or "named". Use "system" to use the default system proxy settings. Otherwise use "named" to specify the address and port of the proxy server.
        Parameters:
        type - Type of the proxy
        proxyAddress - Address of the proxy
        proxyPort - Port of the proxy
        listener - AckListener for the request
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException, AckListener
      • clearCache

        public void clearCache​(boolean cache,
                               boolean cookies,
                               boolean localStorage,
                               boolean appcache,
                               boolean userData)
                        throws DesktopException
        Clears cached data containing window state/positions, application resource files (images, HTML, JavaScript files) cookies, and items stored in the Local Storage.
        Parameters:
        cache - If true, clears chrome caches
        cookies - If true, deletes all cookies
        localStorage - If true, clear application caches
        appcache - If true, clears local storage
        userData - If true, clears user data
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException
      • clearCache

        public void clearCache​(boolean cache,
                               boolean cookies,
                               boolean localStorage,
                               boolean appcache,
                               boolean userData,
                               AckListener listener)
                        throws DesktopException
        Clears cached data containing window state/positions, application resource files (images, HTML, JavaScript files) cookies, and items stored in the Local Storage.
        Parameters:
        cache - If true, clears chrome caches
        cookies - If true, deletes all cookies
        localStorage - If true, clear application caches
        appcache - If true, clears local storage
        userData - If true, clears user data
        listener - AckListener for the request
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException, AckListener
      • deleteCacheOnRestart

        public void deleteCacheOnRestart​(AckListener listener)
        Clears all cached data when App Desktop is restarted
        Parameters:
        listener - AckListener for the request
        See Also:
        AckListener
      • openUrlWithBrowser

        public void openUrlWithBrowser​(AckListener listener)
        Opens the passed URL
        Parameters:
        listener - AckListener for the request
        See Also:
        AckListener
      • getMonitorInfo

        public void getMonitorInfo​(AckListener listener)
        Retrieves an object that contains data about the about the
         monitor setup of the computer that App Desktop is running on.
             The returned object takes the form:
             {
                 nonPrimaryMonitors: [{
                     availableRect: {
                         bottom: (integer) bottom-most available monitor coordinate,
                         left: (integer) left-most available monitor coordinate,
                         right: (integer) right-most available monitor coordinate,
                         top: (integer) top-most available monitor coordinate
                     },
                     deviceId: (string) device id of the display,
                     displayDeviceActive: (boolean) true if the display is active,
                     monitorRect: {
                         bottom: (integer) bottom-most monitor coordinate,
                         left: (integer) left-most monitor coordinate,
                         right: (integer) right-most monitor coordinate,
                         top: (integer) top-most monitor coordinate
                     },
                     name: (string) name of the display
                 },
                 ...
                 ],
                 primaryMonitor: {
                     availableRect: {
                         bottom: (integer) bottom-most available monitor coordinate,
                         left: (integer) left-most available monitor coordinate,
                         right: (integer) right-most available monitor coordinate,
                         top: (integer) top-most available monitor coordinate
                     },
                     deviceId: (string) device id of the display,
                     displayDeviceActive: (boolean) true if the display is active,
                     monitorRect: {
                         bottom: (integer) bottom-most monitor coordinate,
                         left: (integer) left-most monitor coordinate,
                         right: (integer) right-most monitor coordinate,
                         top: (integer) top-most monitor coordinate
                     },
                     name: (string) name of the display
                 },
                 reason: (string) always "api-query",
                 taskbar: {
                     edge: {string} which edge of a monitor the taskbar is on,
                     rect: {
                         bottom: ({integer} bottom-most coordinate of the taskbar),
                         left: ({integer} left-most coordinate of the taskbar),
                         right: ({integer} right-most coordinate of the taskbar),
                         top: ({integer} top-most coordinate of the taskbar)
                     }
                 },
                 virtualScreen: {
                     bottom: (integer) bottom-most coordinate of the virtual screen,
                     left: (integer) left-most coordinate of the virtual screen,
                     right: (integer) right-most coordinate of the virtual screen,
                     top: (integer) top-most coordinate of the virtual screen
                 }
             }
         
        Parameters:
        listener - AckListener for the request
        See Also:
        AckListener
      • getMonitorInfoAsync

        public java.util.concurrent.CompletableFuture<MonitorInfo> getMonitorInfoAsync()
      • getAllWindows

        public void getAllWindows​(AckListener listener)
        The object passed to callback takes the form:
             [
                 {
                     uuid: (string) uuid of the application,
                     mainWindow: {
                         name: (string) name of the main window,
                         top: (integer) top-most coordinate of the main window,
                         right: (integer) right-most coordinate of the main window,
                         bottom: (integer) bottom-most coordinate of the main window,
                         left: (integer) left-most coordinate of the main window
                     },
                     childWindows: [{
                             name: (string) name of the child window,
                             top: (integer) top-most coordinate of the child window,
                             right: (integer) right-most coordinate of the child window,
                             bottom: (integer) bottom-most coordinate of the child window,
                             left: (integer) left-most coordinate of the child window
                         },
                         ...
                     ]
                 },
                 ...
             ]
         
        Parameters:
        listener - AckListener for the request
        See Also:
        AckListener
      • getAllApplications

        public void getAllApplications​(AckListener listener)
        Retrieves an array of data (uuid, running/active state) for all application windows
             The object passed to callback takes the form:
             [
                 {
                     uuid: (string) uuid of the application,
                     isRunning: (bool) true when the application is running/active
                 },
                 ...
             ]
         
        Parameters:
        listener - AckListener for the request
      • getMousePosition

        public void getMousePosition​(AckListener listener)
        Returns the mouse in virtual screen coordinates (left, top)
             The returned object takes the form:
             {
                 top: (integer) the top position of the mouse in virtual screen
                                coordinates,
                 left: (integer) the left position of the mouse in virtual screen
                                 coordinates
             }
         
        Parameters:
        listener - AckListener for the request
        See Also:
        AckListener
      • getConfig

        public void getConfig​(java.lang.String section,
                              AckListener callback)
                       throws DesktopException
        Retrieves the Runtime's configuration
        Parameters:
        section - Which section to return from the configuration. Pass null to get all sections
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to get Runtime configuration
        See Also:
        DesktopException, AckListener
      • showDeveloperTools

        public void showDeveloperTools​(java.lang.String applicationUUID,
                                       java.lang.String windowName,
                                       AckListener callback)
                                throws DesktopException
        Shows Developer tool
        Parameters:
        applicationUUID - The application ID
        windowName - The name of dev tool window
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to show devtools
        See Also:
        DesktopException, AckListener
      • addEventListener

        protected void addEventListener​(org.json.JSONObject subscriptionObject,
                                        EventListener listener,
                                        AckListener callback)
                                 throws DesktopException
        Registers an event listener on the specified event
             Supported system event types are:
                  desktop-icon-clicked
                  idle-state-changed
                  monitor-info-changed
                  session-changed
         
        Parameters:
        subscriptionObject - A JSON object containing subscription information such as the topic and type
        listener - EventListener for the event
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to add event listener specified
        See Also:
        EventListener, AckListener
      • addEventListener

        public void addEventListener​(java.lang.String type,
                                     EventListener listener,
                                     AckListener callback)
                              throws DesktopException
        Registers an event listener on the specified event
             Supported system event types are:
                  desktop-icon-clicked
                  idle-state-changed
                  monitor-info-changed
                  session-changed
         
        Parameters:
        type - Type of the event
        listener - EventListener for the event
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to add event listener specified
        See Also:
        EventListener, AckListener
      • terminateExternalProcess

        public void terminateExternalProcess​(java.lang.String processUuid,
                                             int timeout,
                                             boolean killTree,
                                             AsyncCallback<TerminateExternalProcessResult> callback,
                                             AckListener listener)
                                      throws DesktopException
        Attempts to cleanly close an external process and terminates it if the close has not occured after the elapsed timeout in milliseconds.
        Parameters:
        processUuid - The UUID for a process launched by DesktopSystem.launchExternalProcess()
        timeout - The time in milliseconds to wait for a close to occur before terminating
        killTree - true if child processes are included
        callback - A function that is called if the method succeed with result code being passed
        listener - A function that is called if the method fails
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException, terminateExternalProcess, TerminateExternalProcessResult, AckListener
      • releaseExternalProcess

        public void releaseExternalProcess​(java.lang.String processUuid,
                                           AckListener callback)
                                    throws DesktopException
        Removes the process entry for the passed UUID obtained from a previous call to DesktopSystem.launchExternalProcess().
        Parameters:
        processUuid - The UUID for a process launched by DesktopSystem.launchExternalProcess()
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException, AckListener
      • setCookie

        public void setCookie​(java.lang.String url,
                              java.lang.String name,
                              java.lang.String value,
                              long ttl,
                              boolean secure,
                              boolean httpOnly,
                              AckListener callback)
                       throws DesktopException
        Stores a cookie in the runtime
        Parameters:
        url - The URL that the cookie is for
        name - The key used to lookup the value
        value - The value paired with the key (name)
        ttl - The time to till the cookie expires in milliseconds. Never expires when set to 0. Defaults to 0.
        secure - Accessible only on a secured connection (SSL)
        httpOnly - Accessible only on HTTP/HTTPS.
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException, AckListener
      • setCookie

        public void setCookie​(java.lang.String url,
                              java.lang.String name,
                              java.lang.String value,
                              java.lang.String domain,
                              java.lang.String path,
                              long ttl,
                              boolean secure,
                              boolean httpOnly,
                              AckListener callback)
                       throws DesktopException
        Stores a cookie in the runtime
        Parameters:
        url - The URL that the cookie is for
        name - The key used to lookup the value
        value - The value paired with the key (name)
        domain - domain of the cookie
        path - path of the cookie
        ttl - The time to till the cookie expires in milliseconds. Never expires when set to 0. Defaults to 0.
        secure - Accessible only on a secured connection (SSL)
        httpOnly - Accessible only on HTTP/HTTPS.
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException, AckListener
      • getEnvironmentVariable

        public void getEnvironmentVariable​(java.lang.String name,
                                           AckListener callback)
                                    throws DesktopException
        Retrieve name of a environment variable
        Parameters:
        name - name of the environment variable
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        AckListener, DesktopException
      • getEnvironmentVariables

        public void getEnvironmentVariables​(java.lang.String[] names,
                                            AckListener callback)
                                     throws DesktopException
        Retrieve name of environment variables
        Parameters:
        names - names of the environment variable
        callback - AckListener for the request
        Throws:
        DesktopException - if this method fails to send the request to Runtime
        See Also:
        DesktopException, AckListener
      • launchManifest

        public void launchManifest​(java.lang.String manifestUrl,
                                   org.json.JSONObject rvmLaunchOptions,
                                   AckListener listener)
                            throws DesktopException
        Request Runtime to launch app from a manifest Shape of rvmLaunchOptions { noUi: boolean; userAppConfigArgs: JSONObject; }
        Parameters:
        manifestUrl - URL of a manifest
        rvmLaunchOptions - launch options used by RVM
        listener - AckListner for the request
        Throws:
        DesktopException - if the request fails
      • getAdapterVersion

        public static java.lang.String getAdapterVersion()
        Get version info of java adapter
        Returns:
        version information
      • getAdapterBuildTime

        public static java.lang.String getAdapterBuildTime()
        Get build time of java adapter
        Returns:
        build time
      • getInstallInfo

        public static org.json.JSONObject getInstallInfo()
        Retrieve info about RVM and Runtime already installed on desktop. Data is returned as JSONObject Example: { "rvm": { "path": "C:\\Users\\123\\AppData\\Local\\OpenFin\\OpenFinRVM.exe", "version": "5.0.0.9" }, "runtime": [{ "path": "C:\\Users\\123\\AppData\\Local\\OpenFin\\runtime\\10.66.39.43", "version": "10.66.39.43" }, { "path": "C:\\Users\\123\\AppData\\Local\\OpenFin\\runtime\\9.61.38.43", "version": "9.61.38.43" }] }
        Returns:
        JSONObject