org.gjt.sp.jedit.browser

## Class VFSBrowser

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - org.gjt.sp.jedit.browser.VFSBrowser

- All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, DefaultFocusComponent, DockableWindow

      public class VFSBrowser
      extends javax.swing.JPanel
      implements DefaultFocusComponent, DockableWindow

  The main class of the VFS browser. Used as dockable, and also embedded inside the VFSFileChooserDialog.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `VFSBrowser.DirectoriesOnlyFilter`

    - ### Nested classes/interfaces inherited from class javax.swing.JPanel

      `javax.swing.JPanel.AccessibleJPanel`

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `javax.swing.JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `java.awt.Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `BROWSER` Stand-alone dockable browser mode.
    `static int` | `BROWSER_DIALOG` File Open Dialog with extra context menu actions like the BROWSER mode.
    `static int` | `CHOOSE_DIRECTORY_DIALOG` Choose directory dialog mode.
    `static int` | `M_INSERT`
    `static int` | `M_OPEN`
    `static int` | `M_OPEN_NEW_PLAIN_VIEW`
    `static int` | `M_OPEN_NEW_SPLIT`
    `static int` | `M_OPEN_NEW_VIEW`
    `static java.lang.String` | `NAME`
    `static int` | `OPEN_DIALOG` Open file dialog mode.
    `static int` | `SAVE_DIALOG` Save file dialog mode.

    - ### Fields inherited from class javax.swing.JComponent

      `accessibleContext, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VFSBrowser(View view, java.lang.String position)` Creates a new VFS browser.
    `VFSBrowser(View view, java.lang.String path, int mode, boolean multipleSelection, java.lang.String position)` Creates a new VFS browser.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBrowserListener(BrowserListener l)`
    `void` | `addNotify()`
    `void` | `addVFSFileFilter(VFSFileFilter filter)` Adds a file filter to the browser.
    `static void` | `browseDirectory(View view, java.lang.String path)` Opens the specified directory in a file system browser.
    `static void` | `browseDirectoryInNewWindow(View view, java.lang.String path)` Opens the specified directory in a new, floating, file system browser.
    `javax.swing.JComponent` | `createPluginsMenu(javax.swing.JComponent pluginMenu, boolean showManagerOptions)`
    `void` | `delete(VFSFile[] files)` Note that all files must be on the same VFS.
    `void` | `dispose()` Disposes the browser, regardless of whether it is a dialog or a dockable
    `void` | `fileProperties(VFSFile[] files)` Show selected file's properties.
    `void` | `filesActivated(int mode, boolean canDoubleClickClose)` This method does the "double-click" handling.
    `void` | `focusOnDefaultComponent()` Sets focus on the default component.
    `static ActionContext` | `getActionContext()` Returns the browser action context.
    `java.lang.String` | `getDirectory()`
    `HistoryTextField` | `getDirectoryField()`
    `static java.lang.String` | `getLastVisitedPath()` Returns the last path visited by VFSBrowser.
    `int` | `getMode()`
    `static java.lang.String` | `getRootDirectory()`
    `VFSFile[]` | `getSelectedFiles()` Return the selected files in the lower browser tree.
    `VFSFile[]` | `getSelectedFiles(java.awt.Component source)` Return the selected files from the point of view of the given component.
    `boolean` | `getShowHiddenFiles()`
    `VFSFileFilter` | `getVFSFileFilter()` Returns the currently active VFSFileFilter.
    `View` | `getView()`
    `void` | `handleBufferUpdate(BufferUpdate bmsg)`
    `void` | `handlePluginUpdate(PluginUpdate pmsg)`
    `void` | `handlePropertiesChanged(PropertiesChanged msg)`
    `void` | `handleVFSUpdate(VFSUpdate msg)`
    `boolean` | `isHorizontalLayout()`
    `boolean` | `isMultipleSelectionEnabled()`
    `void` | `locateFile(java.lang.String path)` Goes to the given file's directory and selects the file in the list.
    `void` | `mkdir()`
    `void` | `move(java.lang.String newPosition)` Notifies a dockable window before its docking position is changed.
    `void` | `newFile()` Creates a new file in the current directory.
    `void` | `nextDirectory()`
    `void` | `paste(VFSFile file)` Paste the file contained in the clipboard.
    `void` | `previousDirectory()`
    `void` | `reloadDirectory()`
    `void` | `removeBrowserListener(BrowserListener l)`
    `void` | `removeNotify()`
    `void` | `rename(java.lang.String from)`
    `void` | `rename(java.lang.String from, java.lang.String newname)` Rename a file
    `void` | `rename(VFSFile from)` Rename a file.
    `void` | `rename(VFSFile from, java.lang.String to)` Rename a file.
    `void` | `rootDirectory()` Goes to the local drives directory.
    `void` | `searchInDirectory()` Opens a directory search in the current directory.
    `void` | `searchInDirectory(java.lang.String path, boolean directory)` Opens a directory search in the specified directory.
    `void` | `setDirectory(java.lang.String path)`
    `void` | `setFilenameFilter(java.lang.String filter)`
    `void` | `setShowHiddenFiles(boolean showHiddenFiles)`

    - ### Methods inherited from class javax.swing.JPanel

      `getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

- - ### Field Detail

    - #### NAME

          public static final java.lang.String NAME

      See Also:
        Constant Field Values

    - #### OPEN_DIALOG

          public static final int OPEN_DIALOG

      Open file dialog mode. Equals JFileChooser.OPEN_DIALOG for backwards compatibility.
      See Also:
        Constant Field Values

    - #### SAVE_DIALOG

          public static final int SAVE_DIALOG

      Save file dialog mode. Equals JFileChooser.SAVE_DIALOG for backwards compatibility.
      See Also:
        Constant Field Values

    - #### BROWSER_DIALOG

          public static final int BROWSER_DIALOG

      File Open Dialog with extra context menu actions like the BROWSER mode.
      See Also:
        Constant Field Values

    - #### CHOOSE_DIRECTORY_DIALOG

          public static final int CHOOSE_DIRECTORY_DIALOG

      Choose directory dialog mode.
      See Also:
        Constant Field Values

    - #### BROWSER

          public static final int BROWSER

      Stand-alone dockable browser mode.
      See Also:
        Constant Field Values

    - #### M_OPEN

          public static final int M_OPEN

      See Also:
        Constant Field Values

    - #### M_OPEN_NEW_VIEW

          public static final int M_OPEN_NEW_VIEW

      See Also:
        Constant Field Values

    - #### M_OPEN_NEW_PLAIN_VIEW

          public static final int M_OPEN_NEW_PLAIN_VIEW

      See Also:
        Constant Field Values

    - #### M_OPEN_NEW_SPLIT

          public static final int M_OPEN_NEW_SPLIT

      See Also:
        Constant Field Values

    - #### M_INSERT

          public static final int M_INSERT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### VFSBrowser

          public VFSBrowser(View view,
                    java.lang.String position)

      Creates a new VFS browser.
      Parameters:
        `view` - The view to open buffers in by default

    - #### VFSBrowser

          public VFSBrowser(View view,
                    java.lang.String path,
                    int mode,
                    boolean multipleSelection,
                    java.lang.String position)

      Creates a new VFS browser.
      Parameters:
        `view` - The view to open buffers in by default
        `path` - The path to display
        `mode` - The browser mode
        `multipleSelection` - True if multiple selection should be allowed
        `position` - Where the browser is located
      Since:
        jEdit 4.2pre1

  - ### Method Detail

    - #### browseDirectoryInNewWindow

          public static void browseDirectoryInNewWindow(View view,
                                        java.lang.String path)

      Opens the specified directory in a new, floating, file system browser.
      Parameters:
        `view` - The view
        `path` - The directory's path
      Since:
        jEdit 4.1pre2

    - #### browseDirectory

          public static void browseDirectory(View view,
                             java.lang.String path)

      Opens the specified directory in a file system browser.
      Parameters:
        `view` - The view
        `path` - The directory's path
      Since:
        jEdit 4.0pre3

    - #### getActionContext

          public static ActionContext getActionContext()

      Returns the browser action context.
      Since:
        jEdit 4.2pre1

    - #### focusOnDefaultComponent

          public void focusOnDefaultComponent()

      Description copied from interface: `DefaultFocusComponent`
      Sets focus on the default component.
      Specified by:
        `focusOnDefaultComponent` in interface `DefaultFocusComponent`

    - #### addNotify

          public void addNotify()

      Overrides:
        `addNotify` in class `javax.swing.JComponent`

    - #### removeNotify

          public void removeNotify()

      Overrides:
        `removeNotify` in class `javax.swing.JComponent`

    - #### handlePropertiesChanged

          public void handlePropertiesChanged(PropertiesChanged msg)

    - #### handleBufferUpdate

          public void handleBufferUpdate(BufferUpdate bmsg)

    - #### handlePluginUpdate

          public void handlePluginUpdate(PluginUpdate pmsg)

    - #### handleVFSUpdate

          public void handleVFSUpdate(VFSUpdate msg)

    - #### getView

          public View getView()

    - #### getMode

          public int getMode()

    - #### isMultipleSelectionEnabled

          public boolean isMultipleSelectionEnabled()

    - #### isHorizontalLayout

          public boolean isHorizontalLayout()

    - #### getShowHiddenFiles

          public boolean getShowHiddenFiles()

    - #### setShowHiddenFiles

          public void setShowHiddenFiles(boolean showHiddenFiles)

    - #### getVFSFileFilter

          public VFSFileFilter getVFSFileFilter()

      Returns the currently active VFSFileFilter.
      Since:
        jEdit 4.3pre7

    - #### addVFSFileFilter

          public void addVFSFileFilter(VFSFileFilter filter)

      Adds a file filter to the browser.
      Since:
        jEdit 4.3pre7

    - #### setFilenameFilter

          public void setFilenameFilter(java.lang.String filter)

    - #### getDirectoryField

          public HistoryTextField getDirectoryField()

    - #### getDirectory

          public java.lang.String getDirectory()

    - #### previousDirectory

          public void previousDirectory()

      Since:
        jedit 4.3pre15

    - #### nextDirectory

          public void nextDirectory()

      Since:
        jEdit 4.3pre15

    - #### getLastVisitedPath

          public static java.lang.String getLastVisitedPath()

      Returns the last path visited by VFSBrowser. If no path was ever visited, returns `null`,
      Since:
        5.1

    - #### setDirectory

          public void setDirectory(java.lang.String path)

    - #### getRootDirectory

          public static java.lang.String getRootDirectory()

    - #### rootDirectory

          public void rootDirectory()

      Goes to the local drives directory.
      Since:
        jEdit 4.0pre4

    - #### reloadDirectory

          public void reloadDirectory()

    - #### delete

          public void delete(VFSFile[] files)

      Note that all files must be on the same VFS.
      Since:
        jEdit 4.3pre2

    - #### rename

          public void rename(VFSFile from)

      Rename a file. It will prompt for the new name.
      Parameters:
        `from` - the file to rename
      Since:
        jEdit 4.5pre1

    - #### rename

          public void rename(VFSFile from,
                    java.lang.String to)

      Rename a file. It will prompt for the new name.
      Parameters:
        `from` - the file to rename
        `to` - the target name
      Since:
        jEdit 4.5pre1

    - #### rename

          public void rename(java.lang.String from)

    - #### rename

          public void rename(java.lang.String from,
                    java.lang.String newname)

      Rename a file
      Parameters:
        `from` - the full path name of the file to be renamed
        `newname` - the new name (only filename, not full path)

    - #### mkdir

          public void mkdir()

    - #### newFile

          public void newFile()

      Creates a new file in the current directory.
      Since:
        jEdit 4.0pre2

    - #### fileProperties

          public void fileProperties(VFSFile[] files)

      Show selected file's properties.

    - #### searchInDirectory

          public void searchInDirectory()

      Opens a directory search in the current directory.
      Since:
        jEdit 4.0pre2

    - #### searchInDirectory

          public void searchInDirectory(java.lang.String path,
                               boolean directory)

      Opens a directory search in the specified directory.
      Parameters:
        `path` - The path name
        `directory` - True if the path is a directory, false if it is a file
      Since:
        jEdit 4.2pre1

    - #### getSelectedFiles

          public VFSFile[] getSelectedFiles()

      Return the selected files in the lower browser tree.
      Since:
        jEdit 4.3pre2

    - #### getSelectedFiles

          public VFSFile[] getSelectedFiles(java.awt.Component source)

      Return the selected files from the point of view of the given component. This may be the selected directory from the upper tree component of the browser (directory tree) or the selected files in the bottom tree component. This method is to be used by code running inside VFSBrowser such as a DynamicMenuProvider. Use the other method otherwise. The main difference is this function searches the component hierarchy for a `BrowserView.ParentDirectoryList` to get the list of currently selected files from there. Otherwise, it returns what `getSelectedFiles()` would return.
      Parameters:
        `source` - the source component to start from when navigating the component hierarchy
      Since:
        jEdit 4.4pre1

    - #### paste

          public void paste(VFSFile file)
                     throws java.io.IOException,
                            java.awt.datatransfer.UnsupportedFlavorException

      Paste the file contained in the clipboard. If the clipboard do not contains files, nothing happens.
      Parameters:
        `file` - the target, it can be a file, in that case it will be pasted to the parent directory, or a directory.
      Throws:
        `java.io.IOException`
        `java.awt.datatransfer.UnsupportedFlavorException`

    - #### locateFile

          public void locateFile(java.lang.String path)

      Goes to the given file's directory and selects the file in the list.
      Parameters:
        `path` - The file
      Since:
        jEdit 4.2pre2

    - #### createPluginsMenu

          public javax.swing.JComponent createPluginsMenu(javax.swing.JComponent pluginMenu,
                                                 boolean showManagerOptions)

    - #### addBrowserListener

          public void addBrowserListener(BrowserListener l)

    - #### removeBrowserListener

          public void removeBrowserListener(BrowserListener l)

    - #### filesActivated

          public void filesActivated(int mode,
                            boolean canDoubleClickClose)

      This method does the "double-click" handling. It is public so that `browser.actions.xml` can bind to it.
      Since:
        jEdit 4.2pre2

    - #### dispose

          public void dispose()

      Disposes the browser, regardless of whether it is a dialog or a dockable

    - #### move

          public void move(java.lang.String newPosition)

      Description copied from interface: `DockableWindow`
      Notifies a dockable window before its docking position is changed.
      Specified by:
        `move` in interface `DockableWindow`
      Parameters:
        `newPosition` - The docking position to which the window is moving.