Package docking.widgets.values

# Class FileValue

java.lang.Object
docking.widgets.values.AbstractValue<File>
docking.widgets.values.FileValue

public class FileValue extends AbstractValue<File>
Value class for `File` types. FileValues can be used for either file or directory values, depending on the constructor options. The editor component uses a `JTextField` with a browse button for bringing up a `GhidraFileChooser` for picking files or directories.

This class and other subclasses of `AbstractValue` are part of a subsystem for easily defining a set of values that can be displayed in an input dialog (`ValuesMapDialog`). Typically, these values are created indirectly using a `GValuesMap` which is then given to the constructor of the dialog. However, an alternate approach is to create the dialog without a ValuesMap and then use its `ValuesMapDialog.addValue(AbstractValue)` method directly.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FileValue(String name)`
  Constructs a FileValue that expects its value to represent a file and not a directory.
  `FileValue(String name, File defaultValue)`
  Constructs a FileValue that expects its value to represent a file and not a directory.
  `FileValue(String name, File defaultValue, File startingDir, GhidraFileChooserMode mode)`
  Constructs a FileValue that could represent either a File or Directory, depending on the mode value.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `File`
  `fromString(String valueString)`
  Parses the given string into a value of type T
  `JComponent`
  `getComponent()`
  Returns a JComponent for entering or editing a value of this type.
  `void`
  `updateComponentFromValue()`
  Updates the JComponent returned from `AbstractValue.getComponent()` to represent the current value of this object.
  `void`
  `updateValueFromComponent()`
  Causes the stored value for this object to be updated based on the state of the JComponent returned from `AbstractValue.getComponent()`

  ### Methods inherited from class docking.widgets.values.AbstractValue

  `copyValue, getAsText, getName, getValue, hasValue, reset, setAsText, setValue, toString`

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

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

- ## Constructor Details

  - ### FileValue

    public FileValue(String name)
    Constructs a FileValue that expects its value to represent a file and not a directory.
    Parameters:
      `name` - the name of the value

  - ### FileValue

    public FileValue(String name, File defaultValue)
    Constructs a FileValue that expects its value to represent a file and not a directory.
    Parameters:
      `name` - the name of the value
      `defaultValue` - the optional default File value.

  - ### FileValue

    public FileValue(String name, File defaultValue, File startingDir, GhidraFileChooserMode mode)
    Constructs a FileValue that could represent either a File or Directory, depending on the mode value.
    Parameters:
      `name` - the name of the value
      `defaultValue` - the optional default File value. If non-null this can be either a file or directory, but it should match the given `GhidraFileChooserMode`
      `startingDir` - an optional directory specifying where the FileChooser should intialize its starting selected directory.
      `mode` - the `GhidraFileChooserMode` used to indicate if this File represents a file or directory. It will put the GhidraFileChooser in a mode for choosing files or directories.

- ## Method Details

  - ### getComponent

    public JComponent getComponent()
    Description copied from class: `AbstractValue`
    Returns a JComponent for entering or editing a value of this type.
    Specified by:
      `getComponent` in class `AbstractValue<File>`
    Returns:
      a JComponent for entering or editing a value of this type.

  - ### updateValueFromComponent

    public void updateValueFromComponent()
    Description copied from class: `AbstractValue`
    Causes the stored value for this object to be updated based on the state of the JComponent returned from `AbstractValue.getComponent()`
    Specified by:
      `updateValueFromComponent` in class `AbstractValue<File>`

  - ### updateComponentFromValue

    public void updateComponentFromValue()
    Description copied from class: `AbstractValue`
    Updates the JComponent returned from `AbstractValue.getComponent()` to represent the current value of this object.
    Specified by:
      `updateComponentFromValue` in class `AbstractValue<File>`

  - ### fromString

    public File fromString(String valueString)
    Description copied from class: `AbstractValue`
    Parses the given string into a value of type T
    Specified by:
      `fromString` in class `AbstractValue<File>`
    Parameters:
      `valueString` - the string to parse
    Returns:
      a value of type T