Class ExternalBrowserPagesImpl

java.lang.Object
com.iizigo.comm.ExternalBrowserPagesImpl
All Implemented Interfaces:
IExternalBrowserPages

public class ExternalBrowserPagesImpl extends Object implements IExternalBrowserPages
Class to handle external web pages with embedded Jetty.
Author:
Christopher Mindus
  • Constructor Details

    • ExternalBrowserPagesImpl

      public ExternalBrowserPagesImpl(InternalWebServer webServer)
      Constructor.
  • Method Details

    • setTooltipPreview

      public static String setTooltipPreview(String html)
      Sets the current tooltip preview.
      Parameters:
      html - The HTML string to set as preview.
      Returns:
      The resource to use in a browser.
    • initialize

      public void initialize(IntegratedWebServer iws)
      Called when initialized.
    • doAuthenticate

      public boolean doAuthenticate(PortConfig portConfig, String target)
      Checks if a request URL is a WebSocket request or an Application URI that should not use authentication.
      Specified by:
      doAuthenticate in interface IExternalBrowserPages
      Parameters:
      portConfig - The port configuration.
      target - The target URI.
      Returns:
      true if authentication should be performed, false otherwise.
    • getFileOrResource

      public Object getFileOrResource(String location, String target)
      Gets a File or Resource redirection from a web server target request, used for e.g. Asset resource files when used on the server and the file is inside a Jar.
      Specified by:
      getFileOrResource in interface IExternalBrowserPages
      Parameters:
      location - The location string between '/$' and '$/'
      target - The target string from the Web Server after last '$/' (i.e. after location), does NOT begin with '/'.
      Returns:
      The File for the resource, null for none.
    • isTargetValid

      public boolean isTargetValid(PortConfig portConfig, String target)
      Checks for valid target to handle.
      Specified by:
      isTargetValid in interface IExternalBrowserPages
      Parameters:
      portConfig - The port configuration.
      target - The target URI.
      Returns:
      true if target is processed as an external page, false otherwise.
    • print

      public void print(PortConfig portConfig, PrintWriter pw, String root, String target, HttpServletRequest request, HttpServletResponse response) throws IOException
      Print the page output.
      Specified by:
      print in interface IExternalBrowserPages
      Parameters:
      portConfig - The port configuration.
      pw - The print writer.
      root - The web server root.
      target - Target page.
      request - The request.
      response - The response.
      Throws:
      IOException - For I/O errors.
    • getCustomizedAppHTML

      public File getCustomizedAppHTML(File file, String appID, String lang)
      Gets a customized "iiziApp.html" file for a specific application ID and optional language.
      Specified by:
      getCustomizedAppHTML in interface IExternalBrowserPages
      Parameters:
      file - The compressed iiziApp.html file without customization.
      appID - The application ID.
      lang - The language requested, or null for default.
      Returns:
      The customized (and probably cached) file to send instead of the un-customized one, or null for none, i.e. in case an application ID is not found.
    • getAppSorryInfo

      public BrowserGate.AppInfo getAppSorryInfo(String appID)
      Gets what iiziAppSorry.html shows for an application (CC-BROWSER-GATE, ruling Q2): the Designer's answer to what the server takes from ServerShell. The application is the first Module project loaded in the workspace whose registered appID, or whose name, equals the appID ignoring case, the name also with its spaces as dots, the way the development server launch derives an appID from it. The name and description come from its Module app settings, as the server takes them, and the store URLs from its .iiziApp, read on each call so that a saved change shows at once; a project without the file has no links.
      Specified by:
      getAppSorryInfo in interface IExternalBrowserPages
      Parameters:
      appID - The application ID, never null nor empty.
      Returns:
      The information, or null for an unknown application.