jv.object

## Class PsConfig

- java.lang.Object
- - jv.object.PsConfig

-     public final class PsConfig
      extends java.lang.Object

  Static configuration class of JavaView with global static variables. The class must be initialized with current applet and frame. Initialization is automatically done in `PvViewer` when PvViewer instance is created in the top applet. If applet does not create an instance of PvViewer then applet must initialize this class directly using its `init` method.

  Information about version, authors etc. is parsed during generation of jar file to be included as manifest information (currently, the information is just added as a file `_jarVersion.txt` to the archive).

  Author:
    Konrad Polthier
  Version:
    13.09.19, 7.01 revised (kp) Preparing 5.0 release.
    23.03.19, 6.00 revised (kp) Going public with latest JavaView version, remedy license issue.
    09.11.16, 5.40 revised (kp) New superclass jv.project.PvApplet and usage in most vgp applet.
    13.10.16, 5.35 revised (kp) New option to assign name of program extension, e.g. "lite".
    29.09.16, 5.30 revised (kp) New command line parameter monitor.dpi allows rendering for high dpi monitors.
    23.02.14, 5.20 revised (kp) New command line parameter jv-instDir allows setting of resources independent of codebase.
    12.02.14, 5.10 revised (kp) System icons moved to rsrc from image subdirectory.
    06.01.13, 5.00 revised (kp) Some member variables of P_Vector combined in private class for efficiency.
    19.10.12, 4.40 revised (kp) Return value of PsPanel.setTitle changed back to void.
    15.10.12, 4.30 revised (kp) Ignore empty address in current default rsrc file when setting author information.
    20.03.11, 4.20 revised (kp) Extended loader search path.
    04.02.11, 4.10 revised (kp) Model listing now uses dtd.
    01.01.11, 4.00 revised (kp) New SVN setting.
    23.06.07, 3.97 revised (kp) Handling of PgTetraSet added in dev section.
    05.07.04, 3.95 revised (kp) New archive dev added in application mode.
    15.10.03, 3.90 revised (kp) Language resource now has codebase prepended.
    17.08.03, 3.80 revised (kp) Versioning of resource DTDs.
    17.02.03, 3.70 revised (kp) JVX element <image> corrected to fulfill DTD.
    08.12.01, 3.60 revised (kp) Additional method getMessage(int).
    08.10.01, 3.50 revised (kp) Store codebase in init() in applet mode.
    10.08.00, 3.21 revised (kp) Renamed to get/setLanguage() from get/setBundle().
    10.08.00, 3.20 revised (kp) Removed method setBundle(ResourceBundle).
    01.05.00, 3.10 revised (sk) Internationalization added.
    20.02.00, 3.00 revised (kp) Resource modifications incl. font handling.
    29.10.99, 2.50 revised (kp) List of projects added.
    12.06.99, 2.20 revised (kp) New instance variable m_viewer added.
    12.06.99, 2.10 revised (kp) PsMainFrame used instead of Frame to enable uniform key handling.
    20.05.99, 2.00 revised (kp) Console instance variable moved to PsDebug.
    00.00.97, 1.00 created (kp)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ARCHIVE_DEV` ID if the development JavaView jar archive.
    `static int` | `ARCHIVE_DEV6` ID if the development JavaView jar archive requiring JdK6.
    `static int` | `ARCHIVE_JV` ID if the base JavaView jar archive.
    `static int` | `ARCHIVE_JVX` ID if the expansion JavaView jar archive.
    `static java.lang.String[]` | `ARCHIVE_NAME` Strings used as identifiers of jar archives available to a JavaView installation.
    `static int` | `ARCHIVE_VGP` ID if the vgp application JavaView jar archive.
    `static java.lang.String[]` | `AUTHOR` Array of current author names.
    `static java.lang.String[]` | `CONTRIBUTOR` Deprecated. use method getContributors() to access list of contributors.
    `static java.lang.String` | `EMAIL` Email address for contact.
    `static int` | `FONT_FIXED` Identifier of fixed (i.e. non-proportional) text font used in panels.
    `static int` | `FONT_HEADER2` Identifier of header font used in panels.
    `static int` | `FONT_HEADER4` Identifier of sub header font used in panels.
    `static int` | `FONT_MENU` Identifier of menu font used in panels.
    `static int` | `FONT_TEXT` Identifier of text font used in panels.
    `static java.lang.String` | `FONTS_HTML` Page with an applet showing available system fonts.
    `static java.lang.String` | `HELP_HTML` Help page of JavaView in Html format.
    `static java.lang.String` | `HOMEPAGE` Homepage of JavaView.
    `static java.lang.String` | `JAVAVIEW_LOGO` Relative path and name of JavaView textual logo image.
    `static boolean` | `JV_LITE`
    `static int` | `m_osId` Identifier of current operating system.
    `static int` | `NUM_OF_ARCHIVES` Number of jar archives available to a JavaView installation, depend on building javaview or jvLite.
    `static int` | `NUM_OF_RESOURCES` Number of language resource.
    `static int` | `OS_IRIX` Identifier of Silicon Graphics Irix operating system.
    `static int` | `OS_LINUX` Identifier of Linux operating system.
    `static int` | `OS_OTHER` Identifier of unknown other operating system.
    `static int` | `OS_SOLARIS` Identifier of Sun Solaris operating system.
    `static int` | `OS_WIN` Identifier of Microsoft Windows operating systems.
    `static int` | `RESOLUTION` Subpixel resolution is scale factor of monitor display, e.g. 4k hdpi monitor may use factor 2.
    `static java.lang.String[]` | `RESOLUTION_ID` Subpixel resolution is scale factor of monitor display, e.g. 4k hdpi monitor may use factor 2.
    `static java.lang.String[]` | `RESOURCE_NAME` Strings identifying a language resource.
    `static int` | `VERSION_DTD_JVA` Identifier to receive the version number of the JVA dtd which this JavaView program implements.
    `static int` | `VERSION_DTD_JVD` Identifier to receive the version number of the JVD dtd which this JavaView program implements.
    `static int` | `VERSION_DTD_JVF` Identifier to receive the version number of the JVF dtd which this JavaView program implements.
    `static int` | `VERSION_DTD_JVR` Identifier to receive the version number of the JVR dtd which this JavaView program implements.
    `static int` | `VERSION_DTD_JVV` Identifier to receive the version number of the JVV dtd which this JavaView program implements.
    `static int` | `VERSION_DTD_JVX` Identifier to receive the version number of the JVX dtd which this JavaView program implements.
    `static int` | `VERSION_DTD_LIC` Identifier to receive the version number of the LIC dtd which this JavaView program implements.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PsConfig()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.applet.Applet` | `getApplet()` Get applet if run as applet.
    `static java.lang.String` | `getAuthors()` Get author names separated by comma as single string
    `static java.lang.String` | `getCodeBase()` Get codebase of current applet or application.
    `static java.lang.String[]` | `getContributors()` Get list of contributors as array of strings.
    `static java.lang.String` | `getCopyright()` Get copyright notice as string.
    `static java.lang.String` | `getEmail()` Get email contact address of JavaView as string.
    `static char` | `getFileSeparator()` Always return "/", and do not use system file separator.
    `static java.awt.Font` | `getFont(int type)` Get font for specific textual application type, like FONT_TEXT, FONT_HEADER2 etc.
    `static java.awt.Frame` | `getFrame()` Get frame to be used as parent frame for dialogs.
    `static java.lang.String` | `getHomepage()` Get homepage of JavaView as string.
    `static java.lang.String` | `getImageIcon()` Get relative path and name of JavaView icon image as string.
    `static java.lang.String` | `getImageLaunch()` Get relative path and name of JavaView launch image as string.
    `static java.lang.String` | `getImageScenegraph()` Get relative path and name of JavaView scenegraph icon image as string.
    `static java.lang.String` | `getImageToolbar()` Get relative path and name of JavaView toolbar image as string.
    `static java.lang.String` | `getInstBase()` Get instbase of current applet or application.
    `static java.lang.String` | `getJavaViewLogo()` Get relative path and name of JavaView logo image as string.
    `static java.lang.String` | `getLanguage()` Get the current language used in localizations.
    `static java.util.Locale` | `getLocale()` Get the current language locale, for example, for number formatting.
    `static java.lang.String` | `getMessage(boolean bNew, int groupId, java.lang.String keyval)` Temporary method to get localized translation of message.
    `static java.lang.String` | `getMessage(int key)` Get localized translation of message.
    `static java.lang.String` | `getMessage(java.lang.String key)` Get localized translation of message.
    `static int` | `getMonitorScale()` Get subpixel resolution is scale factor of monitor display, e.g. 4k has factor 2.
    `static int` | `getOSId()` Get index of current operating system.
    `static java.lang.String` | `getOSName()` Get name of operating system as string.
    `static int` | `getPanelVersion()` Get unique id which characterizes version of current language and font setting.
    `static java.lang.String` | `getParameter(java.lang.String name)` Return a parameter from the system properties list.
    `static java.lang.String` | `getProgram()` Get name of program as string plus optional name of extension as suffix, e.g.
    `static java.lang.String` | `getProgramAndVersion()` Get name of program and version number as single string, plus option IDs.
    `static java.lang.String` | `getProject()` Get name of project as string.
    `static java.util.Hashtable` | `getProperties()` Get JavaView and system properties.
    `static java.lang.String` | `getTopic()` Get topic of current version as string.
    `static java.lang.String` | `getUserBase()` Get user directory of current application from where JavaView was launched.
    `static java.lang.String` | `getVersion()` Get version number as string.
    `static int[]` | `getVersion(int id)` Get the version number of a JavaView resource.
    `static PsViewerIf` | `getViewer()` Get viewer.
    `static boolean` | `hasArchive(int archiveID)` Test whether this applet or application has access to a certain JavaView archive.
    `static void` | `init(java.applet.Applet applet, java.awt.Frame frame)` Initialize this configuration class.
    `static void` | `init(java.applet.Applet applet, PsViewerIf viewer, java.awt.Frame frame)` Initialize this configuration class.
    `static boolean` | `isApplication()` Returns `true` if run as application, else `false`.
    `static boolean` | `isDev()` Temporary method, avoid usage.
    `static void` | `parseArgs(java.lang.String[] args, java.util.Properties props)` Store given command-line arguments as system properties by adding to each parameter to the system properties list.
    `static void` | `reset()` Clear all registered instances of applet, frame and viewer.
    `static void` | `runGC()` Finalize and run system gc until not further gain up to a total of 40 gc loops.
    `static void` | `runGC(int intensity, int loops)` Finalize and run system gc until not further gain up to a total of 40 gc loops.
    `static void` | `setApplication(boolean flag)` Determines status of this program if running as applet or application.
    `static void` | `setCodeBase(java.lang.String aCodeBase)` Set codebase of current applet or application.
    `static boolean` | `setFont(int os, int type, java.lang.String name, int style, int size)` Set font for specific textual application type, like FONT_TEXT, FONT_HEADER2 etc.
    `static void` | `setInstBase(java.lang.String aInstBase)` Set instbase of current application, for example, as command line parameter.
    `static void` | `setLanguage(java.lang.String language)` Set the current language used in localizations.
    `static void` | `setProgramExtension(java.lang.String ext)` Set name of program, to be extended to base program name PsConfig#PROGRAM.
    `static void` | `setUserBase(java.lang.String userBase)`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### AUTHOR

          public static final java.lang.String[] AUTHOR

      Array of current author names.
      See Also:
        `getAuthors()`

    - #### CONTRIBUTOR

          public static java.lang.String[] CONTRIBUTOR

      Deprecated. use method getContributors() to access list of contributors.
      Array of contributor names.

    - #### NUM_OF_ARCHIVES

          public static final int NUM_OF_ARCHIVES

      Number of jar archives available to a JavaView installation, depend on building javaview or jvLite.
      See Also:
        Constant Field Values

    - #### JV_LITE

          public static final boolean JV_LITE

      See Also:
        Constant Field Values

    - #### HOMEPAGE

          public static java.lang.String HOMEPAGE

      Homepage of JavaView.

    - #### EMAIL

          public static java.lang.String EMAIL

      Email address for contact.

    - #### HELP_HTML

          public static java.lang.String HELP_HTML

      Help page of JavaView in Html format.

    - #### FONTS_HTML

          public static java.lang.String FONTS_HTML

      Page with an applet showing available system fonts.

    - #### JAVAVIEW_LOGO

          public static java.lang.String JAVAVIEW_LOGO

      Relative path and name of JavaView textual logo image.

    - #### RESOLUTION

          public static int RESOLUTION

      Subpixel resolution is scale factor of monitor display, e.g. 4k hdpi monitor may use factor 2.
      Since:
        JavaView 4.65.001
      Version:
        29.09.16, 1.00 created (kp)

    - #### RESOLUTION_ID

          public static final java.lang.String[] RESOLUTION_ID

      Subpixel resolution is scale factor of monitor display, e.g. 4k hdpi monitor may use factor 2.
      Since:
        JavaView 4.65.001
      Version:
        29.09.16, 1.00 created (kp)

    - #### VERSION_DTD_JVX

          public static final int VERSION_DTD_JVX

      Identifier to receive the version number of the JVX dtd which this JavaView program implements.

      JVX files conforming to the version 1.00.001 or later of the jvx.dtd (and with minor changes since version 0.98.000) will validate against future versions of the jvx.dtd. This is called "forward compatibility" of the JVX dtd.

      The forward compatibility of JVX files includes that JVX files generated with this JavaView program will be correctly displayed by in future versions of JavaView.

      See Also:
        Constant Field Values

    - #### VERSION_DTD_JVD

          public static final int VERSION_DTD_JVD

      Identifier to receive the version number of the JVD dtd which this JavaView program implements.
      See Also:
        Constant Field Values

    - #### VERSION_DTD_JVR

          public static final int VERSION_DTD_JVR

      Identifier to receive the version number of the JVR dtd which this JavaView program implements.
      See Also:
        Constant Field Values

    - #### VERSION_DTD_JVF

          public static final int VERSION_DTD_JVF

      Identifier to receive the version number of the JVF dtd which this JavaView program implements.
      See Also:
        Constant Field Values

    - #### VERSION_DTD_JVV

          public static final int VERSION_DTD_JVV

      Identifier to receive the version number of the JVV dtd which this JavaView program implements.
      See Also:
        Constant Field Values

    - #### VERSION_DTD_JVA

          public static final int VERSION_DTD_JVA

      Identifier to receive the version number of the JVA dtd which this JavaView program implements.
      Since:
        JavaView v4.08.003
      See Also:
        Constant Field Values
      Version:
        12.02.14, 1.00 created (kp)

    - #### VERSION_DTD_LIC

          public static final int VERSION_DTD_LIC

      Identifier to receive the version number of the LIC dtd which this JavaView program implements.
      Since:
        JavaView v4.08.003
      See Also:
        Constant Field Values
      Version:
        12.02.14, 1.00 created (kp)

    - #### OS_WIN

          public static final int OS_WIN

      Identifier of Microsoft Windows operating systems.
      See Also:
        Constant Field Values

    - #### OS_IRIX

          public static final int OS_IRIX

      Identifier of Silicon Graphics Irix operating system.
      See Also:
        Constant Field Values

    - #### OS_SOLARIS

          public static final int OS_SOLARIS

      Identifier of Sun Solaris operating system.
      See Also:
        Constant Field Values

    - #### OS_LINUX

          public static final int OS_LINUX

      Identifier of Linux operating system.
      See Also:
        Constant Field Values

    - #### OS_OTHER

          public static final int OS_OTHER

      Identifier of unknown other operating system.
      See Also:
        Constant Field Values

    - #### m_osId

          public static int m_osId

      Identifier of current operating system.

    - #### FONT_TEXT

          public static final int FONT_TEXT

      Identifier of text font used in panels.
      See Also:
        Constant Field Values

    - #### FONT_FIXED

          public static final int FONT_FIXED

      Identifier of fixed (i.e. non-proportional) text font used in panels.
      See Also:
        Constant Field Values

    - #### FONT_MENU

          public static final int FONT_MENU

      Identifier of menu font used in panels.
      See Also:
        Constant Field Values

    - #### FONT_HEADER2

          public static final int FONT_HEADER2

      Identifier of header font used in panels.
      See Also:
        Constant Field Values

    - #### FONT_HEADER4

          public static final int FONT_HEADER4

      Identifier of sub header font used in panels.
      See Also:
        Constant Field Values

    - #### ARCHIVE_JV

          public static final int ARCHIVE_JV

      ID if the base JavaView jar archive.
      See Also:
        Constant Field Values

    - #### ARCHIVE_JVX

          public static final int ARCHIVE_JVX

      ID if the expansion JavaView jar archive.
      See Also:
        Constant Field Values

    - #### ARCHIVE_VGP

          public static final int ARCHIVE_VGP

      ID if the vgp application JavaView jar archive.
      See Also:
        Constant Field Values

    - #### ARCHIVE_DEV

          public static final int ARCHIVE_DEV

      ID if the development JavaView jar archive.
      See Also:
        Constant Field Values

    - #### ARCHIVE_DEV6

          public static final int ARCHIVE_DEV6

      ID if the development JavaView jar archive requiring JdK6.
      See Also:
        Constant Field Values

    - #### ARCHIVE_NAME

          public static final java.lang.String[] ARCHIVE_NAME

      Strings used as identifiers of jar archives available to a JavaView installation.

    - #### NUM_OF_RESOURCES

          public static final int NUM_OF_RESOURCES

      Number of language resource.
      See Also:
        Constant Field Values

    - #### RESOURCE_NAME

          public static final java.lang.String[] RESOURCE_NAME

      Strings identifying a language resource. Currently, just use the same identifiers as for archives.

  - ### Constructor Detail

    - #### PsConfig

          public PsConfig()

  - ### Method Detail

    - #### isApplication

          public static boolean isApplication()

      Returns `true` if run as application, else `false`. E.g. applet.stub is not initialized when applet does not run in browser. This information is used e.g. in PsDebug when displaying status messages.

      JavaView runs as application if and only if the argument `frame != null` in `PsConfig.init(Applet,Frame)`. Therefore it is essential to call `PsConfig.init`. Usually, this initialization is automatically done in the constructor of PvViewer, but it can be done by hand, if no PvViewer is created.

      See Also:
        `init(Applet, PsViewerIf, Frame)`, `PvViewer.PvViewer(Applet, Frame)`

    - #### setApplication

          public static void setApplication(boolean flag)

      Determines status of this program if running as applet or application.
      See Also:
        `isApplication()`

    - #### setProgramExtension

          public static void setProgramExtension(java.lang.String ext)

      Set name of program, to be extended to base program name PsConfig#PROGRAM.
      Since:
        JavaView v4.70.006
      See Also:
        `getProgram()`
      Version:
        13.10.16, 1.00 created (kp)

    - #### getApplet

          public static java.applet.Applet getApplet()

      Get applet if run as applet.

    - #### getFrame

          public static java.awt.Frame getFrame()

      Get frame to be used as parent frame for dialogs. If a frame has been specified as argument of `PsConfig.init(Applet,Frame)` this frame is return. Otherwise an invisible new frame is generated upon the first invocation.

    - #### getViewer

          public static PsViewerIf getViewer()

      Get viewer. Viewer manages the 3d-displays, control window, and list of projects. It is the central class in JavaView, and usually created at the beginning of an applet or application. This instance variable gives access to PvViewer, e.g. to show/hide dialogs and panels.
      See Also:
        `PsViewerIf`, `PvViewerIf`, `PvViewer.PvViewer(Applet, Frame)`

    - #### runGC

          public static void runGC()

      Finalize and run system gc until not further gain up to a total of 40 gc loops.
      Since:
        JavaView v2.22.001
      Version:
        29.04.04, 1.00 created (kp)

    - #### runGC

          public static void runGC(int intensity,
                                   int loops)

      Finalize and run system gc until not further gain up to a total of 40 gc loops.
      Since:
        JavaView v2.22.001
      Version:
        29.04.04, 1.00 created (kp)

    - #### reset

          public static void reset()

      Clear all registered instances of applet, frame and viewer. Method should be invoked when applets are being destroyed in order to speed up the garbage collection.

      Calling init() after a reset() will lead to a full new initialization of this class. If no reset() is invoked, subsequent init() calls will be ignored after the first init() call.

      Since:
        JavaView v2.22.001
      See Also:
        `init(Applet, Frame)`
      Version:
        29.04.04, 1.00 created (kp)

    - #### init

          public static void init(java.applet.Applet applet,
                                  PsViewerIf viewer,
                                  java.awt.Frame frame)

      Initialize this configuration class.
      See Also:
        `PvViewer.PvViewer(Applet, Frame)`, `init(Applet, Frame)`, `reset()`

    - #### init

          public static void init(java.applet.Applet applet,
                                  java.awt.Frame frame)

      Initialize this configuration class. Method must be called once and only once when JavaView is launched.

      If argument `frame == null` and `applet != null` then program runs as applet, and applet is used to access codebase etc. Otherwise, the program runs as application.

      Initialization must be done as soon as possible in an applet or application since system properties are parsed and evaluated. Usually, method is called automatically in the constructor of PvViewer.

      See Also:
        `reset()`
      Version:
        02.06.00, 2.10 revised, (kp)(sk) Language parsed from applet and application args.

    - #### getVersion

          public static int[] getVersion(int id)

      Get the version number of a JavaView resource.
      Returns:
        array with three integers with major, minor and built number.
      See Also:
        `getVersion()`
      Version:
        17.08.03, 1.00 created (kp)

    - #### getLocale

          public static java.util.Locale getLocale()

      Get the current language locale, for example, for number formatting. Default locale is English. Locale is determined by the current language setting.
      Returns:
        current locale
      See Also:
        `setLanguage(String)`
      Version:
        12.11.04, 1.00 created (kp)

    - #### getPanelVersion

          public static int getPanelVersion()

      Get unique id which characterizes version of current language and font setting. Id determines if panels need to be recreated. Previously, the language was used as sole criterium, but now changing global font settings will also increment the central panel version.
      Returns:
        Unique id describes version of panel fonts and languages.
      Version:
        12.11.12, 1.00 created (kp)

    - #### getLanguage

          public static java.lang.String getLanguage()

      Get the current language used in localizations.
      Returns:
        two letter id of language in {"de", "en", ...}
      Version:
        10.08.00, 1.10 revised (kp) Renamed to getLanguage() from getBundle().

    - #### setLanguage

          public static void setLanguage(java.lang.String language)

      Set the current language used in localizations. Any subsequent call of `getMessage(String)` will return a message in the selected language.

      This method does not change any existing labels or menu items which must be done by hand at other place.

      Parameters:
        `language` - Two letter id of language in {"de", "en", ...}
      Version:
        07.09.02, 1.50 revised (kp) Some more languages added.
        10.08.00, 1.10 revised (kp) Renamed to setLanguage() from setBundle().

    - #### hasArchive

          public static boolean hasArchive(int archiveID)

      Test whether this applet or application has access to a certain JavaView archive. This test tries to find a class by name within the given archive. The class-for-name test is performed only once during the first search for that archive.
      Since:
        JavaView 2.38
      Version:
        26.10.04, 1.10 revised (kp) No longer print warnings related to security exceptions.

    - #### getMessage

          public static java.lang.String getMessage(int key)

      Get localized translation of message. Never set an interface label or menu entry directly with a string but always call this method to obtain the localized version of the current locale.

      Usage of this method reduces the Java archives since the message string is no longer multiply stored.

      Parameters:
        `key` - message identifier whose localized text is requested
      Returns:
        message message in localized form for use as label etc
      See Also:
        `getMessage(String)`
      Version:
        10.12.01, 1.00 revised (kp)
        10.12.01, 1.00 created (kp)

    - #### getMessage

          public static java.lang.String getMessage(boolean bNew,
                                                    int groupId,
                                                    java.lang.String keyval)

      Temporary method to get localized translation of message. This method will soon be replaced by getMessage(int).
      Parameters:
        `bNew` - if true then return keyval, else return getMessage(keyval)
        `groupId` - five digit integer representing a message group
        `keyval` - either value or key of a message
      Returns:
        message message in localized form for use as label etc
      See Also:
        `getMessage(String)`
      Version:
        08.12.01, 1.00 revised (kp)
        08.12.01, 1.00 created (kp)

    - #### getMessage

          public static java.lang.String getMessage(java.lang.String key)

      Get localized translation of message. Never set an interface label or menu entry directly with a string but always call this method to obtain the localized version of the current locale.

      If using the default language or if the current resource bundle failed to deliver the requested message, then use message from the default language. The messages of the default language are store in `PsResource`.

      Parameters:
        `key` - message identifier whose localized text is requested
      Returns:
        message message in localized form for use as label etc
      See Also:
        `getMessage(int)`

    - #### getAuthors

          public static java.lang.String getAuthors()

      Get author names separated by comma as single string

    - #### getContributors

          public static java.lang.String[] getContributors()

      Get list of contributors as array of strings.

    - #### getEmail

          public static java.lang.String getEmail()

      Get email contact address of JavaView as string.

    - #### getHomepage

          public static java.lang.String getHomepage()

      Get homepage of JavaView as string.

    - #### getTopic

          public static java.lang.String getTopic()

      Get topic of current version as string.

    - #### getCopyright

          public static java.lang.String getCopyright()

      Get copyright notice as string.

    - #### getVersion

          public static java.lang.String getVersion()

      Get version number as string.
      See Also:
        `getVersion(int)`

    - #### getJavaViewLogo

          public static java.lang.String getJavaViewLogo()

      Get relative path and name of JavaView logo image as string.

    - #### getImageIcon

          public static java.lang.String getImageIcon()

      Get relative path and name of JavaView icon image as string.

    - #### getImageLaunch

          public static java.lang.String getImageLaunch()

      Get relative path and name of JavaView launch image as string.

    - #### getImageToolbar

          public static java.lang.String getImageToolbar()

      Get relative path and name of JavaView toolbar image as string.

    - #### getImageScenegraph

          public static java.lang.String getImageScenegraph()

      Get relative path and name of JavaView scenegraph icon image as string.
      Since:
        JavaView v4.08.003
      Version:
        12.02.14, 1.00 created (kp)

    - #### getProgram

          public static java.lang.String getProgram()

      Get name of program as string plus optional name of extension as suffix, e.g. "-lite".
      Version:
        15.10.16, 1.10 revised (kp) Program options appended as suffix, e.g. "HDPI".

    - #### getProgramAndVersion

          public static java.lang.String getProgramAndVersion()

      Get name of program and version number as single string, plus option IDs.
      Since:
        JavaView v3.97.015
      Version:
        15.10.16, 1.10 revised (kp) Program options appended as suffix, e.g. 4k.
        15.10.06, 1.00 created (kp)

    - #### getProject

          public static java.lang.String getProject()

      Get name of project as string.

    - #### getOSName

          public static java.lang.String getOSName()

      Get name of operating system as string. Might not be available because of security restrictions.
      Returns:
        name of operating system, or `null` if not identified.
      See Also:
        `getOSId()`

    - #### getOSId

          public static int getOSId()

      Get index of current operating system. Index determines the behaviour of JavaView such as font names and sizes. If operating system could not be identified, for example, because of security restrictions, then `OS_WIN` is used as default. Use method `getOSName()` to check whether system could be identified.
      Returns:
        name of operating system, or `OS_WIN` if not identified.
      See Also:
        `getOSName()`

    - #### getMonitorScale

          public static int getMonitorScale()

      Get subpixel resolution is scale factor of monitor display, e.g. 4k has factor 2.
      Since:
        JavaView 4.65.001
      Version:
        30.09.16, 1.00 created (kp)

    - #### getProperties

          public static java.util.Hashtable getProperties()

      Get JavaView and system properties. Calling 'System.getProperties()' leads to a security exception. Replace by single direct calls 'System.getProperty(String)'
      Version:
        10.10.01, 1.10 revised (kp) Check existence of property 'codebase' before adding.
        30.11.97, 1.00 created (kp)

    - #### parseArgs

          public static void parseArgs(java.lang.String[] args,
                                       java.util.Properties props)

      Store given command-line arguments as system properties by adding to each parameter to the system properties list. In general, an parameter must have the form

          property=value

      Note, parameters containing blanks should be enclosed in quotes.

      There are two exceptions:

      1. JavaView model files.
      JavaView model files may either be specified using the above property=value scheme or simply as a single or list of files. For example, filenames specified in a model parameter are

          model=myFile.jvx

      or

          model=myFile1.jvx;myFile2.obj

      and, alternatively, filenames may appear as blank separated list of filenames such as

          myFile.jvx

      or

          myFile1.jvx myFile2.obj

      In the later case the property "model" is automatically generated and multiple geometry files are concatenated with ";"-separators in a single "model" property.

      2. JavaView display files:
      A single display file may be passed to JavaView similar like model files either as a property

          displayFile=myFile.jvd

      or simply as a filename (which is detected by its filename extension JVD)

          myFile.jvd

      Author:
        Konrad Polthier
      Version:
        06.01.07, 2.00 revised (kp) Method moved to PsConfig from jv.object.PsMainframe.
        17.03.03, 1.05 revised (kp) Removal of enclosing "" corrected.
        23.09.99, 1.01 revised (kp) Bug removed which converted argument to lower case.

    - #### getParameter

          public static java.lang.String getParameter(java.lang.String name)

      Return a parameter from the system properties list. Each JavaView parameter has been added to the system property hashtable. Name of parameter is not case-sensitive.
      Parameters:
        `name` - Name of parameter whose value is requested, not case-sensitive.
      Returns:
        value Value of parameter
      Author:
        Konrad Polthier
      Version:
        06.01.07, 2.00 revised (kp) Method moved to PsConfig from jv.object.PsMainframe.

    - #### getUserBase

          public static java.lang.String getUserBase()

      Get user directory of current application from where JavaView was launched.
      Since:
        JavaView 3.09.003
      See Also:
        `getCodeBase()`
      Version:
        15.02.04, 1.00 created (kp)

    - #### setUserBase

          public static void setUserBase(java.lang.String userBase)

      Since:
        JavaView 3.09.003
      See Also:
        `getCodeBase()`
      Version:
        15.02.04, 1.00 created (kp)

    - #### getCodeBase

          public static java.lang.String getCodeBase()

      Get codebase of current applet or application.

      This method just returns the codebase as string. The codebase was most likely automatically determined in `init(Applet,Frame)`, or it was assigned using `setCodeBase(String)`.

      If JavaView runs as application then the codeBase ends with current file separator.

      See Also:
        `init(Applet,Frame)`, `getFileSeparator()`
      Version:
        15.02.04, 1.30 revised (kp) Use OS dependent file separator.
        29.10.99, 1.20 revised (kp) Leading "/" no longer removed since required in unix.
        17.10.99, 1.10 revised (kp) Use always "/".

    - #### setCodeBase

          public static void setCodeBase(java.lang.String aCodeBase)

      Set codebase of current applet or application. Usually the codebase is automatically determined by JavaView.

      If JavaView runs as application then the codeBase ends with current file separator.

      If JavaView is running locally within a web page then some browser use the the "file:" protocol to access local files. In this case, some browsers, notably IE, modify the codebase and replace blanks with %20. This leads to a FileNotFoundException when later reading a local file. I solved this problem by replacing any %20 in a codebase argument of this method if the codebase starts with "file:".

      Parameters:
        `aCodeBase` - new codebase
      See Also:
        `getFileSeparator()`
      Version:
        14.12.00, 1.10 revised (kp) If "file:" protocol then replace %20 with blanks.

    - #### getInstBase

          public static java.lang.String getInstBase()

      Get instbase of current applet or application.

      This method just returns the instbase as string. The instbase was most likely automatically determined in `init(Applet,Frame)`, or it was assigned using `setCodeBase(String)`.

      If JavaView runs as application then the codeBase ends with current file separator.

      See Also:
        `getCodeBase()`
      Version:
        23.02.14, 1.00 created (kp)

    - #### setInstBase

          public static void setInstBase(java.lang.String aInstBase)

      Set instbase of current application, for example, as command line parameter.

      If JavaView runs as application then the instbase ends with current file separator.

      See Also:
        `getCodeBase()`
      Version:
        23.02.14, 1.00 created (kp)

    - #### getFileSeparator

          public static char getFileSeparator()

      Always return "/", and do not use system file separator. Previously. the file separator of system properties was used, but since Java gives the separator of the client instead of the server this behaviour led to problems. Since on windows systems "/" seems to work we use it as default.
      Version:
        17.10.99, 1.10 revised (kp) Use always "/".

    - #### getFont

          public static java.awt.Font getFont(int type)

      Get font for specific textual application type, like FONT_TEXT, FONT_HEADER2 etc. Selected font size and name depends on current operating system.

    - #### setFont

          public static boolean setFont(int os,
                                        int type,
                                        java.lang.String name,
                                        int style,
                                        int size)

      Set font for specific textual application type, like FONT_TEXT, FONT_HEADER2 etc. Only those gui widgets are affected which are constructed AFTER this call, so this method should probably be called right after JavaView starts. Note, that in general only a rather small set of fonts and font characteristics are supported. Especially, fonts supported on one OS may not be supported on other systems.

      Use JavaView applet jvx.thirdParty.fonts.SystemFonts to show a list all available fonts.

      Parameters:
        `os` - identifier of operating system among OS_WIN etc. If os==-1 use current osId.
        `type` - identifier among FONT_TEXT, FONT_HEADER2 etc.
        `name` - name of font such as SansSerif, Monospaced etc. If name==null leave current name.
        `style` - use among Font.PLAIN, Font.BOLD etc. If style==-1 leave current style.
        `size` - any size which is supported by Java and operating system. If size==-1 leave current size.
      Version:
        13.08.04, 1.10 revised (kp) Now replaces existing font with new version.

    - #### isDev

          public static final boolean isDev()

      Temporary method, avoid usage.

"

The software JavaView? is copyright protected. All Rights Reserved.
"