GUIUtilities (jEdit API Documentation)
Date: 2015-10-20

org.gjt.sp.jedit

## Class GUIUtilities

- java.lang.Object
- - org.gjt.sp.jedit.GUIUtilities

-     public class GUIUtilities
      extends java.lang.Object

  Various GUI utility functions related to icons, menus, toolbars, keyboard shortcuts, etc. The most frequently used members of this class are:
  - `loadIcon(String)`
  - `confirm(Component,String,Object[],int,int)`
  - `error(Component,String,Object[])`
  - `message(Component,String,Object[])`
  - `showVFSFileDialog(View,String,int,boolean)`
  - `loadGeometry(Window,String)`
  - `saveGeometry(Window,String)`
  - `showPopupMenu(JPopupMenu,Component,int,int)`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `GUIUtilities.UnixWorkaround`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `addSizeSaver(java.awt.Frame frame, java.awt.Container parent, java.lang.String name)` Adds a SizeSaver to the specified Frame.
    `static void` | `addSizeSaver(java.awt.Frame frame, java.lang.String name)` Adds a SizeSaver to the specified Frame.
    `static void` | `adjustForScreenBounds(java.awt.Rectangle desired)` Gives a rectangle the specified bounds, ensuring it is within the screen bounds.
    `static void` | `applyTextAreaColors(java.awt.Container win)` experimental - applies the text area colors on a Component (such as a dockable window) and its children.
    `static int` | `confirm(java.awt.Component comp, java.lang.String name, java.lang.Object[] args, int buttons, int type)` Displays a confirm dialog box and returns the button pushed by the user.
    `static javax.swing.JComponent` | `createMultilineLabel(java.lang.String str)` Creates a component that displays a multiple line message.
    `static int` | `defaultColumnWidth()` Column width for JTable, based on global defaults.
    `static int` | `defaultRowHeight()` Row height for JTable, based on global defaults.
    `static java.awt.Dimension` | `defaultTableCellSize()` JTable cell size, based on global defaults.
    `static void` | `error(java.awt.Component comp, java.lang.String name, java.lang.Object[] args)` Displays an error dialog box.
    `static java.awt.Component` | `getComponentParent(java.awt.Component comp, java.lang.Class clazz)` Finds a parent of the specified component.
    `static java.awt.Image` | `getEditorIcon()`
    `static javax.swing.JDialog` | `getParentDialog(java.awt.Component c)` Traverses the given component's parent tree looking for an instance of JDialog, and return it.
    `static java.lang.String` | `getPlatformShortcutLabel(java.lang.String label)` Translates a shortcut description string (e.g.
    `static java.awt.Image` | `getPluginIcon()`
    `static java.awt.Rectangle` | `getScreenBounds()` Returns the screen bounds, taking into account multi-screen environments.
    `static java.util.List<javax.swing.JMenuItem>` | `getServiceContextMenuItems(JEditTextArea textArea, java.awt.event.MouseEvent evt)`
    `static java.lang.String` | `getShortcutLabel(java.lang.String action, java.lang.Boolean platform)` Returns a label string to show users what shortcut are assigned to the action.
    `static java.lang.String` | `getStyleString(SyntaxStyle style)` Converts a style into it's string representation.
    `static View` | `getView(java.awt.Component comp)` Finds the view parent of the specified component.
    `static void` | `hideSplashScreen()` Ensures that the splash screen is not visible.
    `static java.lang.String` | `input(java.awt.Component comp, java.lang.String name, java.lang.Object def)` Displays an input dialog box and returns any text the user entered.
    `static java.lang.String` | `input(java.awt.Component comp, java.lang.String name, java.lang.Object[] args, java.lang.Object def)` Displays an input dialog box and returns any text the user entered.
    `static java.lang.String` | `inputProperty(java.awt.Component comp, java.lang.String name, java.lang.Object[] args, java.lang.String def)` Displays an input dialog box and returns any text the user entered.
    `static java.lang.String` | `inputProperty(java.awt.Component comp, java.lang.String name, java.lang.String def)` Displays an input dialog box and returns any text the user entered.
    `static boolean` | `isAncestorOf(java.awt.Component comp1, java.awt.Component comp2)` Returns if the first component is an ancestor of the second by traversing up the component hierarchy.
    `static boolean` | `isMiddleButton(int modifiers)`
    `static boolean` | `isPopupTrigger(java.awt.event.MouseEvent evt)` Returns if the specified event is the popup trigger event.
    `static boolean` | `isRightButton(int modifiers)`
    `static int` | `listConfirm(java.awt.Component comp, java.lang.String name, java.lang.String[] args, java.lang.Object[] listModel)` Displays a confirm dialog box and returns the button pushed by the user.
    `static int` | `listConfirm(java.awt.Component comp, java.lang.String name, java.lang.String[] args, java.lang.Object[] listModel, java.util.List selectedItems)` Displays a confirm dialog box and returns the button pushed by the user.
    `static void` | `loadGeometry(java.awt.Window win, java.awt.Container parent, java.lang.String name)` Loads a windows's geometry from the properties.
    `static void` | `loadGeometry(java.awt.Window win, java.lang.String name)` Loads a windows's geometry from the properties.
    `static javax.swing.Icon` | `loadIcon(java.lang.String iconName)` Loads an icon.
    `static javax.swing.JMenu` | `loadMenu(ActionContext context, java.lang.String name)` Creates a menu.
    `static javax.swing.JMenu` | `loadMenu(java.lang.String name)` Creates a menu.
    `static javax.swing.JMenuBar` | `loadMenuBar(ActionContext context, java.lang.String name)` Creates a menubar.
    `static javax.swing.JMenuBar` | `loadMenuBar(java.lang.String name)` Creates a menubar.
    `static javax.swing.JMenuItem` | `loadMenuItem(ActionContext context, java.lang.String name, boolean setMnemonic)` Creates a menu item.
    `static javax.swing.JMenuItem` | `loadMenuItem(EditAction editAction, boolean setMnemonic)`
    `static javax.swing.JMenuItem` | `loadMenuItem(java.lang.String name)` Creates a menu item.
    `static javax.swing.JMenuItem` | `loadMenuItem(java.lang.String name, boolean setMnemonic)` Creates a menu item.
    `static javax.swing.JPopupMenu` | `loadPopupMenu(ActionContext context, java.lang.String name)` Creates a popup menu.
    `static javax.swing.JPopupMenu` | `loadPopupMenu(ActionContext context, java.lang.String name, JEditTextArea textArea, java.awt.event.MouseEvent evt)` Creates a popup menu.
    `static javax.swing.JPopupMenu` | `loadPopupMenu(java.lang.String name)`
    `static javax.swing.JPopupMenu` | `loadPopupMenu(java.lang.String name, JEditTextArea textArea, java.awt.event.MouseEvent evt)` Creates a popup menu.
    `static java.awt.Container` | `loadToolBar(ActionContext context, java.lang.String name)` Creates a toolbar.
    `static java.awt.Container` | `loadToolBar(java.lang.String name)`
    `static EnhancedButton` | `loadToolButton(ActionContext context, java.lang.String name)` Loads a tool bar button.
    `static EnhancedButton` | `loadToolButton(java.lang.String name)` Loads a tool bar button.
    `static java.awt.Font` | `menuAcceleratorFont()` Menu accelerator font according to L&F defaults, with workarounds.
    `static void` | `message(java.awt.Component comp, java.lang.String name, java.lang.Object[] args)` Displays a dialog box.
    `static int` | `option(java.awt.Component comp, java.lang.String name, java.lang.Object[] args, int type, java.lang.Object[] options, java.lang.Object initialValue)` Displays an option dialog dialog box and returns the button pushed by the user.
    `static java.awt.Color` | `parseColor(java.lang.String name)` Converts a color name to a color object.
    `static SyntaxStyle` | `parseStyle(java.lang.String str, java.lang.String family, int size)` Converts a style string to a style object.
    `static java.lang.String` | `prettifyMenuLabel(java.lang.String label)` `Prettifies' a menu item label by removing the `$' sign.
    `static void` | `requestFocus(java.awt.Window win, java.awt.Component comp)` Focuses on the specified component as soon as the window becomes active.
    `static void` | `saveGeometry(java.awt.Window win, java.awt.Container parent, java.lang.String name)` Saves a window's geometry to the properties.
    `static void` | `saveGeometry(java.awt.Window win, java.lang.String name)` Saves a window's geometry to the properties.
    `static void` | `setAutoMnemonic(javax.swing.AbstractButton button)` Sets the mnemonic for the given button using jEdit convention, taking the letter after the dollar.
    `static void` | `setButtonContentMargin(javax.swing.AbstractButton button, java.awt.Insets margin)` Sets the content margin of a button (for Nimbus L&F).
    `static void` | `setEnabledRecursively(java.awt.Container c, boolean enabled)` Call setEnabled() recursively on the container and its descendants.
    `static void` | `setIconPath(java.lang.String iconPath)` Sets the path where jEdit looks for icons.
    `static void` | `showPopupMenu(javax.swing.JPopupMenu popup, java.awt.Component comp, int x, int y)` Shows the specified popup menu, ensuring it is displayed within the bounds of the screen.
    `static void` | `showPopupMenu(javax.swing.JPopupMenu popup, java.awt.Component comp, int x, int y, boolean point)` Shows the specified popup menu, ensuring it is displayed within the bounds of the screen.
    `static java.lang.String[]` | `showVFSFileDialog(java.awt.Dialog parent, View view, java.lang.String path, int type, boolean multipleSelection)` Displays a VFS file selection dialog box.
    `static java.lang.String[]` | `showVFSFileDialog(java.awt.Frame parent, View view, java.lang.String path, int type, boolean multipleSelection)` Displays a VFS file selection dialog box.
    `static java.lang.String[]` | `showVFSFileDialog(View view, java.lang.String path, int type, boolean multipleSelection)` Displays a VFS file selection dialog box.

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

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

- - ### Method Detail

    - #### setIconPath

          public static void setIconPath(java.lang.String iconPath)

      Sets the path where jEdit looks for icons.
      Parameters:
        `iconPath` - the icon path
      Since:
        jEdit 4.2pre5

    - #### loadIcon

          public static javax.swing.Icon loadIcon(java.lang.String iconName)

      Loads an icon.
      Parameters:
        `iconName` - The icon name
      Returns:
        the icon
      Since:
        jEdit 2.6pre7

    - #### getEditorIcon

          public static java.awt.Image getEditorIcon()

      Returns:
        the default editor window image.

    - #### getPluginIcon

          public static java.awt.Image getPluginIcon()

      Returns:
        the default plugin window image.

    - #### loadMenuBar

          public static javax.swing.JMenuBar loadMenuBar(java.lang.String name)

      Creates a menubar. Plugins should not need to call this method.
      Parameters:
        `name` - The menu bar name
      Returns:
        the menu bar
      Since:
        jEdit 3.2pre5

    - #### loadMenuBar

          public static javax.swing.JMenuBar loadMenuBar(ActionContext context,
                                                         java.lang.String name)

      Creates a menubar. Plugins should not need to call this method.
      Parameters:
        `context` - An action context
        `name` - The menu bar name
      Returns:
        the menu bar
      Since:
        jEdit 4.2pre1

    - #### loadMenu

          public static javax.swing.JMenu loadMenu(java.lang.String name)

      Creates a menu. The menu label is set from the `name.label` property. The menu contents is taken from the `name` property, which is a whitespace separated list of action names. An action name of `-` inserts a separator in the menu.
      Parameters:
        `name` - The menu name
      Returns:
        a menu
      Since:
        jEdit 2.6pre2
      See Also:
        `loadMenuItem(String)`

    - #### loadMenu

          public static javax.swing.JMenu loadMenu(ActionContext context,
                                                   java.lang.String name)

      Creates a menu. The menu label is set from the `name.label` property. The menu contents is taken from the `name` property, which is a whitespace separated list of action names. An action name of `-` inserts a separator in the menu.
      Parameters:
        `context` - An action context; either `jEdit.getActionContext()` or `VFSBrowser.getActionContext()`.
        `name` - The menu name
      Returns:
        a menu
      Since:
        jEdit 4.2pre1
      See Also:
        `loadMenuItem(String)`

    - #### loadPopupMenu

          public static javax.swing.JPopupMenu loadPopupMenu(java.lang.String name,
                                                             JEditTextArea textArea,
                                                             java.awt.event.MouseEvent evt)

      Creates a popup menu.
      Parameters:
        `name` - The menu name
        `evt` - mouse event
        `textArea` - the text area
      Returns:
        a popup menu
      Since:
        jEdit 2.6pre2

    - #### loadPopupMenu

          public static javax.swing.JPopupMenu loadPopupMenu(java.lang.String name)

      Parameters:
        `name` - The menu name
      Returns:
        a popup menu.
      Since:
        jEdit 2.6pre2

    - #### loadPopupMenu

          public static javax.swing.JPopupMenu loadPopupMenu(ActionContext context,
                                                             java.lang.String name)

      Creates a popup menu.
      Parameters:
        `context` - An action context; either `jEdit.getActionContext()` or `VFSBrowser.getActionContext()`.
        `name` - The menu name
      Returns:
        a popup menu
      Since:
        jEdit 4.2pre1

    - #### loadPopupMenu

          public static javax.swing.JPopupMenu loadPopupMenu(ActionContext context,
                                                             java.lang.String name,
                                                             JEditTextArea textArea,
                                                             java.awt.event.MouseEvent evt)

      Creates a popup menu.
      Parameters:
        `context` - An action context; either `jEdit.getActionContext()` or `VFSBrowser.getActionContext()`.
        `name` - The menu name
        `textArea` - the textArea wanting to show the popup. If not null, include context menu items defined by services.
        `evt` - additional context info about where the mouse was when menu was requested
      Returns:
        the popup menu
      Since:
        jEdit 4.3pre15

    - #### getServiceContextMenuItems

          public static java.util.List<javax.swing.JMenuItem> getServiceContextMenuItems(JEditTextArea textArea,
                                                                                         java.awt.event.MouseEvent evt)

      Parameters:
        `textArea` - the TextArea desiring to display these menu items
        `evt` - a mouse event
      Returns:
        a list of menu items defined by services.
      Since:
        jEdit 4.3pre15

    - #### loadMenuItem

          public static javax.swing.JMenuItem loadMenuItem(java.lang.String name)

      Creates a menu item. The menu item is bound to the action named by `name` with label taken from the return value of the `EditAction.getLabel()` method.
      Parameters:
        `name` - The menu item name
      Returns:
        the menu item
      Since:
        jEdit 2.6pre1
      See Also:
        `loadMenu(String)`

    - #### loadMenuItem

          public static javax.swing.JMenuItem loadMenuItem(java.lang.String name,
                                                           boolean setMnemonic)

      Creates a menu item.
      Parameters:
        `name` - The menu item name
        `setMnemonic` - True if the menu item should have a mnemonic
      Returns:
        a menu item
      Since:
        jEdit 3.1pre1

    - #### loadMenuItem

          public static javax.swing.JMenuItem loadMenuItem(ActionContext context,
                                                           java.lang.String name,
                                                           boolean setMnemonic)

      Creates a menu item.
      Parameters:
        `context` - An action context; either `jEdit.getActionContext()` or `VFSBrowser.getActionContext()`.
        `name` - The menu item name
        `setMnemonic` - True if the menu item should have a mnemonic
      Returns:
        the menu item
      Since:
        jEdit 4.2pre1

    - #### loadMenuItem

          public static javax.swing.JMenuItem loadMenuItem(EditAction editAction,
                                                           boolean setMnemonic)

    - #### loadToolBar

          public static java.awt.Container loadToolBar(java.lang.String name)

      Parameters:
        `name` - The toolbar name
      Returns:
        a toolbar.
      Since:
        jEdit 4.2pre2

    - #### loadToolBar

          public static java.awt.Container loadToolBar(ActionContext context,
                                                       java.lang.String name)

      Creates a toolbar.
      Parameters:
        `context` - An action context; either `jEdit.getActionContext()` or `VFSBrowser.getActionContext()`.
        `name` - The toolbar name
      Returns:
        the toolbar
      Since:
        jEdit 4.2pre2

    - #### loadToolButton

          public static EnhancedButton loadToolButton(java.lang.String name)

      Loads a tool bar button. The tooltip is constructed from the `name.label` and `name.shortcut` properties and the icon is loaded from the resource named '/org/gjt/sp/jedit/icons/' suffixed with the value of the `name.icon` property.
      Parameters:
        `name` - The name of the button
      Returns:
        a button

    - #### loadToolButton

          public static EnhancedButton loadToolButton(ActionContext context,
                                                      java.lang.String name)

      Loads a tool bar button. The tooltip is constructed from the `name.label` and `name.shortcut` properties and the icon is loaded from the resource named '/org/gjt/sp/jedit/icons/' suffixed with the value of the `name.icon` property.
      Parameters:
        `context` - An action context; either `jEdit.getActionContext()` or `VFSBrowser.getActionContext()`.
        `name` - The name of the button
      Returns:
        the button
      Since:
        jEdit 4.2pre1

    - #### prettifyMenuLabel

          public static java.lang.String prettifyMenuLabel(java.lang.String label)

      `Prettifies' a menu item label by removing the `$' sign. This can be used to process the contents of an action.label property.
      Parameters:
        `label` - the label
      Returns:
        a pretty label

    - #### getPlatformShortcutLabel

          public static java.lang.String getPlatformShortcutLabel(java.lang.String label)

      Translates a shortcut description string (e.g. "CS+SEMICOLON") to a platform-localized description. On OS X this puts in the pretty unicode characters for Shift, Cmd, etc.

    - #### getShortcutLabel

          public static java.lang.String getShortcutLabel(java.lang.String action,
                                                          java.lang.Boolean platform)

      Returns a label string to show users what shortcut are assigned to the action.
      Parameters:
        `platform` - if true, show fancy platform-specific label for the modifiers.

    - #### setAutoMnemonic

          public static void setAutoMnemonic(javax.swing.AbstractButton button)

      Sets the mnemonic for the given button using jEdit convention, taking the letter after the dollar.
      Parameters:
        `button` - The button to set the mnemonic for.
      Since:
        jEdit 5.1

    - #### message

          public static void message(java.awt.Component comp,
                                     java.lang.String name,
                                     java.lang.Object[] args)

      Displays a dialog box. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property. The message is formatted by the property manager with `args` as positional parameters.
      Parameters:
        `comp` - The component to display the dialog for
        `name` - The name of the dialog
        `args` - Positional parameters to be substituted into the message text

    - #### error

          public static void error(java.awt.Component comp,
                                   java.lang.String name,
                                   java.lang.Object[] args)

      Displays an error dialog box. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property. The message is formatted by the property manager with `args` as positional parameters.
      Parameters:
        `comp` - The component to display the dialog for
        `name` - The name of the dialog
        `args` - Positional parameters to be substituted into the message text

    - #### input

          public static java.lang.String input(java.awt.Component comp,
                                               java.lang.String name,
                                               java.lang.Object def)

      Displays an input dialog box and returns any text the user entered. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property.
      Parameters:
        `comp` - The component to display the dialog for
        `name` - The name of the dialog
        `def` - The text to display by default in the input field

    - #### inputProperty

          public static java.lang.String inputProperty(java.awt.Component comp,
                                                       java.lang.String name,
                                                       java.lang.String def)

      Displays an input dialog box and returns any text the user entered. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property.
      Parameters:
        `comp` - The component to display the dialog for
        `name` - The name of the dialog
        `def` - The property whose text to display in the input field

    - #### input

          public static java.lang.String input(java.awt.Component comp,
                                               java.lang.String name,
                                               java.lang.Object[] args,
                                               java.lang.Object def)

      Displays an input dialog box and returns any text the user entered. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property.
      Parameters:
        `comp` - The component to display the dialog for
        `name` - The name of the dialog
        `def` - The text to display by default in the input field
        `args` - Positional parameters to be substituted into the message text
      Since:
        jEdit 3.1pre3

    - #### inputProperty

          public static java.lang.String inputProperty(java.awt.Component comp,
                                                       java.lang.String name,
                                                       java.lang.Object[] args,
                                                       java.lang.String def)

      Displays an input dialog box and returns any text the user entered. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property.
      Parameters:
        `comp` - The component to display the dialog for
        `name` - The name of the dialog
        `args` - Positional parameters to be substituted into the message text
        `def` - The property whose text to display in the input field
      Since:
        jEdit 3.1pre3

    - #### confirm

          public static int confirm(java.awt.Component comp,
                                    java.lang.String name,
                                    java.lang.Object[] args,
                                    int buttons,
                                    int type)

      Displays a confirm dialog box and returns the button pushed by the user. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property.
      Parameters:
        `comp` - The component to display the dialog for
        `name` - The name of the dialog
        `args` - Positional parameters to be substituted into the message text
        `buttons` - The buttons to display - for example, JOptionPane.YES_NO_CANCEL_OPTION
        `type` - The dialog type - for example, JOptionPane.WARNING_MESSAGE
      Since:
        jEdit 3.1pre3

    - #### option

          public static int option(java.awt.Component comp,
                                   java.lang.String name,
                                   java.lang.Object[] args,
                                   int type,
                                   java.lang.Object[] options,
                                   java.lang.Object initialValue)

      Displays an option dialog dialog box and returns the button pushed by the user. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property.
      Parameters:
        `comp` - The component to display the dialog for
        `name` - The name of the dialog
        `args` - Positional parameters to be substituted into the message text
        `type` - The dialog type - for example, JOptionPane.WARNING_MESSAGE
        `options` - the buttons
        `initialValue` - the initial value
      Since:
        jEdit 4.5pre1

    - #### listConfirm

          public static int listConfirm(java.awt.Component comp,
                                        java.lang.String name,
                                        java.lang.String[] args,
                                        java.lang.Object[] listModel)

      Displays a confirm dialog box and returns the button pushed by the user. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property. The dialog also shows a list of entries given by the `listModel` parameter.
      Parameters:
        `comp` - the parent component
        `name` - the name of the confirm dialog
        `args` - the for the message
        `listModel` - the items in the list
      Returns:
        an integer indicating the option selected by the user
      Since:
        jEdit 4.3pre1

    - #### listConfirm

          public static int listConfirm(java.awt.Component comp,
                                        java.lang.String name,
                                        java.lang.String[] args,
                                        java.lang.Object[] listModel,
                                        java.util.List selectedItems)

      Displays a confirm dialog box and returns the button pushed by the user. The title of the dialog is fetched from the `name.title` property. The message is fetched from the `name.message` property. The dialog also shows a list of entries given by the `listModel` parameter.
      Parameters:
        `comp` - the parent component
        `name` - the name of the confirm dialog
        `args` - the for the message
        `listModel` - the items in the list
        `selectedItems` - give an empty list, it will contains in return the selected items
      Returns:
        an integer indicating the option selected by the user
      Since:
        jEdit 4.3pre12

    - #### showVFSFileDialog

          public static java.lang.String[] showVFSFileDialog(View view,
                                                             java.lang.String path,
                                                             int type,
                                                             boolean multipleSelection)

      Displays a VFS file selection dialog box.
      Parameters:
        `view` - The view, should be non-null
        `path` - The initial directory to display. May be null
        `type` - The dialog type. One of `VFSBrowser.OPEN_DIALOG`, `VFSBrowser.SAVE_DIALOG`, or `VFSBrowser.CHOOSE_DIRECTORY_DIALOG`.
        `multipleSelection` - True if multiple selection should be allowed
      Returns:
        The selected file(s)
      Since:
        jEdit 2.6pre2

    - #### showVFSFileDialog

          public static java.lang.String[] showVFSFileDialog(java.awt.Dialog parent,
                                                             View view,
                                                             java.lang.String path,
                                                             int type,
                                                             boolean multipleSelection)

      Displays a VFS file selection dialog box. This version can specify a dialog as the parent instead of the view.
      Parameters:
        `view` - The view, should be non-null
        `path` - The initial directory to display. May be null
        `type` - The dialog type. One of `VFSBrowser.OPEN_DIALOG`, `VFSBrowser.SAVE_DIALOG`, or `VFSBrowser.CHOOSE_DIRECTORY_DIALOG`.
        `multipleSelection` - True if multiple selection should be allowed
      Returns:
        The selected file(s)
      Since:
        jEdit 4.3pre10

    - #### showVFSFileDialog

          public static java.lang.String[] showVFSFileDialog(java.awt.Frame parent,
                                                             View view,
                                                             java.lang.String path,
                                                             int type,
                                                             boolean multipleSelection)

      Displays a VFS file selection dialog box. This version can specify a frame as the parent instead of the view.
      Parameters:
        `parent` - The parent frame
        `view` - The view, should be non-null
        `path` - The initial directory to display. May be null
        `type` - The dialog type. One of `VFSBrowser.OPEN_DIALOG`, `VFSBrowser.SAVE_DIALOG`, or `VFSBrowser.CHOOSE_DIRECTORY_DIALOG`.
        `multipleSelection` - True if multiple selection should be allowed
      Returns:
        The selected file(s)
      Since:
        jEdit 4.3pre10

    - #### menuAcceleratorFont

          public static java.awt.Font menuAcceleratorFont()

      Menu accelerator font according to L&F defaults, with workarounds.

    - #### parseColor

          public static java.awt.Color parseColor(java.lang.String name)

      Converts a color name to a color object. The name must either be a known string, such as `red', `green', etc (complete list is in the `java.awt.Color` class) or a hex color value prefixed with `#', for example `#ff0088'.
      Parameters:
        `name` - The color name

    - #### parseStyle

          public static SyntaxStyle parseStyle(java.lang.String str,
                                               java.lang.String family,
                                               int size)
                                        throws java.lang.IllegalArgumentException

      Converts a style string to a style object.
      Parameters:
        `str` - The style string
        `family` - Style strings only specify font style, not font family
        `size` - Style strings only specify font style, not font family
      Throws:
        `java.lang.IllegalArgumentException` - if the style is invalid
      Since:
        jEdit 3.2pre6

    - #### getStyleString

          public static java.lang.String getStyleString(SyntaxStyle style)

      Converts a style into it's string representation.
      Parameters:
        `style` - The style

    - #### loadGeometry

          public static void loadGeometry(java.awt.Window win,
                                          java.awt.Container parent,
                                          java.lang.String name)

      Loads a windows's geometry from the properties. The geometry is loaded from the `name.x`, `name.y`, `name.width` and `name.height` properties.
      Parameters:
        `win` - The window to load geometry from
        `parent` - The parent frame to be relative to.
        `name` - The name of the window

    - #### loadGeometry

          public static void loadGeometry(java.awt.Window win,
                                          java.lang.String name)

      Loads a windows's geometry from the properties. The geometry is loaded from the `name.x`, `name.y`, `name.width` and `name.height` properties.
      Parameters:
        `win` - The window to load geometry from
        `name` - The name of the window

    - #### adjustForScreenBounds

          public static void adjustForScreenBounds(java.awt.Rectangle desired)

      Gives a rectangle the specified bounds, ensuring it is within the screen bounds.
      Since:
        jEdit 4.2pre3

    - #### saveGeometry

          public static void saveGeometry(java.awt.Window win,
                                          java.lang.String name)

      Saves a window's geometry to the properties. The geometry is saved to the `name.x`, `name.y`, `name.width` and `name.height` properties.
      For Frame's and descendents use `addSizeSaver(Frame,String)` to save the sizes correct even if the Frame is in maximized or iconified state.
      Parameters:
        `win` - The window to load geometry from
        `name` - The name of the window
      See Also:
        `addSizeSaver(Frame,String)`

    - #### saveGeometry

          public static void saveGeometry(java.awt.Window win,
                                          java.awt.Container parent,
                                          java.lang.String name)

      Saves a window's geometry to the properties. The geometry is saved to the `name.x`, `name.y`, `name.width` and `name.height` properties.
      For Frame's and descendents use `addSizeSaver(Frame,Container,String)` to save the sizes correct even if the Frame is in maximized or iconified state.
      Parameters:
        `win` - The window to load geometry from
        `parent` - The parent frame to be relative to.
        `name` - The name of the window
      See Also:
        `addSizeSaver(Frame,Container,String)`

    - #### hideSplashScreen

          public static void hideSplashScreen()

      Ensures that the splash screen is not visible. This should be called before displaying any dialog boxes or windows at startup.

    - #### applyTextAreaColors

          public static void applyTextAreaColors(java.awt.Container win)

      experimental - applies the text area colors on a Component (such as a dockable window) and its children.
      Since:
        jEdit 5.0pre1

    - #### createMultilineLabel

          public static javax.swing.JComponent createMultilineLabel(java.lang.String str)

      Creates a component that displays a multiple line message. This is implemented by assembling a number of `JLabels` in a `JPanel`.
      Parameters:
        `str` - The string, with lines delimited by newline (`\n`) characters.
      Since:
        jEdit 4.1pre3

    - #### requestFocus

          public static void requestFocus(java.awt.Window win,
                                          java.awt.Component comp)

      Focuses on the specified component as soon as the window becomes active.
      Parameters:
        `win` - The window
        `comp` - The component

    - #### isPopupTrigger

          public static boolean isPopupTrigger(java.awt.event.MouseEvent evt)

      Returns if the specified event is the popup trigger event. This implements precisely defined behavior, as opposed to MouseEvent.isPopupTrigger().
      Parameters:
        `evt` - The event
      Since:
        jEdit 3.2pre8

    - #### isMiddleButton

          public static boolean isMiddleButton(int modifiers)

      Parameters:
        `modifiers` - The modifiers flag from a mouse event
      Since:
        jEdit 4.1pre9

    - #### isRightButton

          public static boolean isRightButton(int modifiers)

      Parameters:
        `modifiers` - The modifiers flag from a mouse event
      Since:
        jEdit 4.1pre9

    - #### getScreenBounds

          public static java.awt.Rectangle getScreenBounds()

      Returns the screen bounds, taking into account multi-screen environments.
      Since:
        jEdit 4.3pre18

    - #### showPopupMenu

          public static void showPopupMenu(javax.swing.JPopupMenu popup,
                                           java.awt.Component comp,
                                           int x,
                                           int y)

      Shows the specified popup menu, ensuring it is displayed within the bounds of the screen.
      Parameters:
        `popup` - The popup menu
        `comp` - The component to show it for
        `x` - The x co-ordinate
        `y` - The y co-ordinate
      Since:
        jEdit 4.0pre1
      See Also:
        `setComponentPopupMenu which works better and is simpler to use: you don't have to write the code to show/hide popups in response to mouse events anymore.`

    - #### showPopupMenu

          public static void showPopupMenu(javax.swing.JPopupMenu popup,
                                           java.awt.Component comp,
                                           int x,
                                           int y,
                                           boolean point)

      Shows the specified popup menu, ensuring it is displayed within the bounds of the screen.
      Parameters:
        `popup` - The popup menu
        `comp` - The component to show it for
        `x` - The x co-ordinate
        `y` - The y co-ordinate
        `point` - If true, then the popup originates from a single point; otherwise it will originate from the component itself. This affects positioning in the case where the popup does not fit onscreen.
      Since:
        jEdit 4.1pre1

    - #### isAncestorOf

          public static boolean isAncestorOf(java.awt.Component comp1,
                                             java.awt.Component comp2)

      Returns if the first component is an ancestor of the second by traversing up the component hierarchy.
      Parameters:
        `comp1` - The ancestor
        `comp2` - The component to check
      Since:
        jEdit 4.1pre5

    - #### getParentDialog

          public static javax.swing.JDialog getParentDialog(java.awt.Component c)

      Traverses the given component's parent tree looking for an instance of JDialog, and return it. If not found, return null.
      Parameters:
        `c` - The component

    - #### getComponentParent

          public static java.awt.Component getComponentParent(java.awt.Component comp,
                                                              java.lang.Class clazz)

      Finds a parent of the specified component.
      Parameters:
        `comp` - The component
        `clazz` - Looks for a parent with this class (exact match, not derived).
      Since:
        jEdit 4.2pre1

    - #### setEnabledRecursively

          public static void setEnabledRecursively(java.awt.Container c,
                                                   boolean enabled)

      Call setEnabled() recursively on the container and its descendants.
      Parameters:
        `c` - The container
        `enabled` - The enabled state to set
      Since:
        jEdit 4.3pre17

    - #### getView

          public static View getView(java.awt.Component comp)

      Finds the view parent of the specified component.
      Parameters:
        `comp` - the component from which you want to get the parent view
      Returns:
        the parent view, or null if the component was not in a View.
      Since:
        jEdit 4.0pre2

    - #### setButtonContentMargin

          public static void setButtonContentMargin(javax.swing.AbstractButton button,
                                                    java.awt.Insets margin)

      Sets the content margin of a button (for Nimbus L&F).
      Parameters:
        `button` - the button to modify
        `margin` - the new margin
      Since:
        jEdit 5.3

    - #### defaultTableCellSize

          public static java.awt.Dimension defaultTableCellSize()

      JTable cell size, based on global defaults.

    - #### defaultColumnWidth

          public static int defaultColumnWidth()

      Column width for JTable, based on global defaults.

    - #### defaultRowHeight

          public static int defaultRowHeight()

      Row height for JTable, based on global defaults.

    - #### addSizeSaver

          public static void addSizeSaver(java.awt.Frame frame,
                                          java.lang.String name)

      Adds a SizeSaver to the specified Frame. For non-Frame's use `saveGeometry(Window,String)`
      Parameters:
        `frame` - The Frame for which to save the size
        `name` - The prefix for the settings
      Since:
        jEdit 4.3pre6
      See Also:
        `saveGeometry(Window,String)`

    - #### addSizeSaver

          public static void addSizeSaver(java.awt.Frame frame,
                                          java.awt.Container parent,
                                          java.lang.String name)

      Adds a SizeSaver to the specified Frame. For non-Frame's use `saveGeometry(Window,Container,String)`
      Parameters:
        `frame` - The Frame for which to save the size
        `parent` - The parent to be relative to
        `name` - The prefix for the settings
      Since:
        jEdit 4.3pre7
      See Also:
        `saveGeometry(Window,Container,String)`