Class AbstractOptions

java.lang.Object
ghidra.framework.options.AbstractOptions
All Implemented Interfaces:
Options
Direct Known Subclasses:
FileOptions, ToolOptions

public abstract class AbstractOptions extends Object implements Options
  • Field Details Link icon

  • Constructor Details Link icon

    • AbstractOptions Link icon

      protected AbstractOptions(String name)
  • Method Details Link icon

    • createRegisteredOption Link icon

      protected abstract Option createRegisteredOption(String optionName, OptionType type, String description, HelpLocation help, Object defaultValue, PropertyEditor editor)
    • createUnregisteredOption Link icon

      protected abstract Option createUnregisteredOption(String optionName, OptionType type, Object defaultValue)
    • notifyOptionChanged Link icon

      protected abstract boolean notifyOptionChanged(String optionName, Object oldValue, Object newValue)
    • registerOptionsEditor Link icon

      public void registerOptionsEditor(String categoryPath, Supplier<OptionsEditor> editorSupplier)
    • getOptionsEditor Link icon

      public OptionsEditor getOptionsEditor(String categoryPath)
    • dispose Link icon

      public void dispose()
    • getName Link icon

      public String getName()
      Description copied from interface: Options
      Get the name of this options object.
      Specified by:
      getName in interface Options
      Returns:
      String
    • setName Link icon

      public void setName(String newName)
      Sets the name for this Options object. Used when updating old options names to new names.
      Parameters:
      newName - the new name for this options object.
    • registerOption Link icon

      public void registerOption(String optionName, Object defaultValue, HelpLocation help, String description)
      Description copied from interface: Options
      Registers an option with a description, help location, and a default value without specifying the option type. This form requires that the default value not be null so that the option type can be inferred from the default value.

      Note, this method should not be used for colors and font as doing so will result in those colors and fonts becoming disconnected to the current theme. Instead use Options.registerThemeColorBinding(String, String, HelpLocation, String) or Options.registerThemeFontBinding(String, String, HelpLocation, String).

      Specified by:
      registerOption in interface Options
      Parameters:
      optionName - the name of the option being registered.
      defaultValue - the defaultValue for the option. The default value must not be null so that the OptionType can be determined. If the default value should be null, use Options.registerOption(String, OptionType, Object, HelpLocation, String)
      help - the HelpLocation for this option.
      description - a description of the option.
    • registerOption Link icon

      public void registerOption(String optionName, OptionType type, Object defaultValue, HelpLocation help, String description)
      Description copied from interface: Options
      Registers an option with a description, help location, and a optional default value. With an optional default value, an OptionType must be passed as it is otherwise derived from the default value.

      Note, this method should not be used for colors and font as doing so will result in those colors and fonts becoming disconnected to the current theme. Instead use Options.registerThemeColorBinding(String, String, HelpLocation, String) or Options.registerThemeFontBinding(String, String, HelpLocation, String).

      Specified by:
      registerOption in interface Options
      Parameters:
      optionName - the name of the option being registered.
      type - the OptionType for this options.
      defaultValue - the defaultValue for the option. In this version of the method, the default value may be null.
      help - the HelpLocation for this option.
      description - a description of the option.
    • registerOption Link icon

      public void registerOption(String optionName, OptionType type, Object defaultValue, HelpLocation help, String description, Supplier<PropertyEditor> editorSupplier)
      Description copied from interface: Options
      Registers an option with a description, help location, and a optional default value. With an optional default value, an OptionType must be passed as it is otherwise derived from the default value.

      Note, this method should not be used for colors and font as doing so will result in those colors and fonts becoming disconnected to the current theme. Instead use Options.registerThemeColorBinding(String, String, HelpLocation, String) or Options.registerThemeFontBinding(String, String, HelpLocation, String).

      Note: we use a supplier of a custom editor, instead of a custom editor, to avoid creating PropertyEditors until needed. This allows us to use the same API in both GUI mode and headless mode. If GUI property editors are created in headless mode, exceptions may be thrown. This API will not use the supplier when in headless mode, this avoiding the creation of GUI components. For this to work correctly, clients using custom property editors must defer construction of the editor until the supplier is called.

      Specified by:
      registerOption in interface Options
      Parameters:
      optionName - the name of the option being registered.
      type - the OptionType for this options.
      defaultValue - the defaultValue for the option. In this version of the method, the default value may be null.
      help - the HelpLocation for this option.
      description - a description of the option.
      editorSupplier - an optional supplier of a custom editor for this property. Note if the option is a custom option, then the property editor can't be null;
    • registerThemeColorBinding Link icon

      public void registerThemeColorBinding(String optionName, String colorId, HelpLocation help, String description)
      Description copied from interface: Options
      Register/binds the option to a theme color id. Changing the option's color via the options Gui will result in directly changing the theme color of the given color id.
      Specified by:
      registerThemeColorBinding in interface Options
      Parameters:
      optionName - the name of the color option
      colorId - the theme color id whose color value is changed when the option's color is changed
      help - the HelpLocation for this option
      description - a description of the option
    • registerThemeFontBinding Link icon

      public void registerThemeFontBinding(String optionName, String fontId, HelpLocation help, String description)
      Description copied from interface: Options
      Register/binds the option to a theme font id. Changing the option's font via the options Gui will result in directly changing the theme color of the given font id.
      Specified by:
      registerThemeFontBinding in interface Options
      Parameters:
      optionName - the name of the font option
      fontId - the theme color id whose color value is changed when the option's color is changed
      help - the HelpLocation for this option
      description - a description of the option
    • removeOption Link icon

      public void removeOption(String optionName)
      Description copied from interface: Options
      Remove the option name.
      Specified by:
      removeOption in interface Options
      Parameters:
      optionName - name of option to remove
    • getOptionNames Link icon

      public List<String> getOptionNames()
      Description copied from interface: Options
      Get the list of option names. This method will return the names (paths) of all options contained in this options object or below. For example, if the options has ("aaa", "bbb", "ccc.ddd"), all three will be returned. the Options.getLeafOptionNames() method will return only the "aaa" and "bbb" names.
      Specified by:
      getOptionNames in interface Options
      Returns:
      the list of all option names(paths) under this options.
    • getObject Link icon

      public Object getObject(String optionName, Object defaultValue)
      Description copied from interface: Options
      Get the object value; called when the options dialog is being populated.
      Specified by:
      getObject in interface Options
      Parameters:
      optionName - option name
      defaultValue - default value
      Returns:
      object with the given option name; if no option was found, return default value (this value is not stored in the option maps)
    • getOption Link icon

      public Option getOption(String optionName, OptionType type, Object defaultValue)
    • putObject Link icon

      public void putObject(String optionName, Object newValue)
      Description copied from interface: Options
      Put the object value. If the option exists, the type must match the type of the existing object.
      Specified by:
      putObject in interface Options
      Parameters:
      optionName - the option name
      newValue - the option value
    • putObject Link icon

      public void putObject(String optionName, Object newValue, OptionType type)
    • getType Link icon

      public OptionType getType(String optionName)
      Description copied from interface: Options
      Returns the OptionType of the given option.
      Specified by:
      getType in interface Options
      Parameters:
      optionName - the name of the option for which to get the type.
      Returns:
      the OptionType of option with the given name.
    • getBoolean Link icon

      public boolean getBoolean(String optionName, boolean defaultValue)
      Description copied from interface: Options
      Get the boolean value for the given option name.
      Specified by:
      getBoolean in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name.
      Returns:
      boolean option value
    • getByteArray Link icon

      public byte[] getByteArray(String optionName, byte[] defaultValue)
      Description copied from interface: Options
      Get the byte array for the given option name.
      Specified by:
      getByteArray in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      byte[] byte array value
    • getInt Link icon

      public int getInt(String optionName, int defaultValue)
      Description copied from interface: Options
      Get the int value for the given option name.
      Specified by:
      getInt in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      int option value
    • getDouble Link icon

      public double getDouble(String optionName, double defaultValue)
      Description copied from interface: Options
      Get the double value for the given option name.
      Specified by:
      getDouble in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      double value for the option
    • getFloat Link icon

      public float getFloat(String optionName, float defaultValue)
      Description copied from interface: Options
      Get the float value for the given option name.
      Specified by:
      getFloat in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      float value for the option
    • getLong Link icon

      public long getLong(String optionName, long defaultValue)
      Description copied from interface: Options
      Get the long value for the given option name.
      Specified by:
      getLong in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      long value for the option
    • getCustomOption Link icon

      public CustomOption getCustomOption(String optionName, CustomOption defaultValue)
      Description copied from interface: Options
      Get the custom option value for the given option name.
      Specified by:
      getCustomOption in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      WrappedOption value for the option
    • getColor Link icon

      public Color getColor(String optionName, Color defaultValue)
      Description copied from interface: Options
      Get the Color for the given option name.
      Specified by:
      getColor in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      Color option
    • getFile Link icon

      public File getFile(String optionName, File defaultValue)
      Description copied from interface: Options
      Get the File for the given option name.
      Specified by:
      getFile in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      File option
    • getFont Link icon

      public Font getFont(String optionName, Font defaultValue)
      Description copied from interface: Options
      Get the Font for the given option name.
      Specified by:
      getFont in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      Font option
    • getDate Link icon

      public Date getDate(String optionName, Date defaultValue)
      Description copied from interface: Options
      Get the Date for the given option name.
      Specified by:
      getDate in interface Options
      Parameters:
      optionName - the property name
      defaultValue - the default date that is stored and returned if there is no option with the given name
      Returns:
      the Date for the option
    • getKeyStroke Link icon

      public KeyStroke getKeyStroke(String optionName, KeyStroke defaultValue)
      Description copied from interface: Options
      Get the KeyStroke for the given action name.
      Specified by:
      getKeyStroke in interface Options
      Parameters:
      optionName - the option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      KeyStroke option
    • getActionTrigger Link icon

      public ActionTrigger getActionTrigger(String optionName, ActionTrigger defaultValue)
      Description copied from interface: Options
      Get the ActionTrigger for the given full action name.
      Specified by:
      getActionTrigger in interface Options
      Parameters:
      optionName - the action name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      the action trigger
    • getString Link icon

      public String getString(String optionName, String defaultValue)
      Description copied from interface: Options
      Get the string value for the given option name.
      Specified by:
      getString in interface Options
      Parameters:
      optionName - option name
      defaultValue - value that is stored and returned if there is no option with the given name
      Returns:
      String value for the option
    • getEnum Link icon

      public <T extends Enum<T>> T getEnum(String optionName, T defaultValue)
      Description copied from interface: Options
      Get the Enum value for the given option name.
      Specified by:
      getEnum in interface Options
      Parameters:
      optionName - option name
      defaultValue - default value that is stored and returned if there is no option with the given name
      Returns:
      Enum value for the option
    • setLong Link icon

      public void setLong(String optionName, long value)
      Description copied from interface: Options
      Sets the long value for the option.
      Specified by:
      setLong in interface Options
      Parameters:
      optionName - name of the option
      value - value of the option
    • setBoolean Link icon

      public void setBoolean(String optionName, boolean value)
      Description copied from interface: Options
      Sets the boolean value for the option.
      Specified by:
      setBoolean in interface Options
      Parameters:
      optionName - name of the option
      value - value of the option
    • setInt Link icon

      public void setInt(String optionName, int value)
      Description copied from interface: Options
      Sets the int value for the option.
      Specified by:
      setInt in interface Options
      Parameters:
      optionName - name of the option
      value - value of the option
    • setDouble Link icon

      public void setDouble(String optionName, double value)
      Description copied from interface: Options
      Sets the double value for the option.
      Specified by:
      setDouble in interface Options
      Parameters:
      optionName - name of the option
      value - value of the option
    • setFloat Link icon

      public void setFloat(String optionName, float value)
      Description copied from interface: Options
      Sets the float value for the option.
      Specified by:
      setFloat in interface Options
      Parameters:
      optionName - name of the option
      value - value of the option
    • setCustomOption Link icon

      public void setCustomOption(String optionName, CustomOption value)
      Description copied from interface: Options
      Sets the Custom option value for the option.
      Specified by:
      setCustomOption in interface Options
      Parameters:
      optionName - name of the option
      value - the value
    • setByteArray Link icon

      public void setByteArray(String optionName, byte[] value)
      Description copied from interface: Options
      Sets the byte[] value for the given option name.
      Specified by:
      setByteArray in interface Options
      Parameters:
      optionName - the name of the option on which to save bytes.
      value - the value
    • setFile Link icon

      public void setFile(String optionName, File value)
      Description copied from interface: Options
      Sets the File value for the option.
      Specified by:
      setFile in interface Options
      Parameters:
      optionName - name of the option
      value - the value
    • setColor Link icon

      public void setColor(String optionName, Color value)
      Description copied from interface: Options
      Sets the Color value for the option
      Specified by:
      setColor in interface Options
      Parameters:
      optionName - name of the option
      value - Color to set
    • setFont Link icon

      public void setFont(String optionName, Font value)
      Description copied from interface: Options
      Sets the Font value for the option
      Specified by:
      setFont in interface Options
      Parameters:
      optionName - name of the option
      value - Font to set
    • setDate Link icon

      public void setDate(String optionName, Date value)
      Description copied from interface: Options
      Sets the Date value for the option.
      Specified by:
      setDate in interface Options
      Parameters:
      optionName - name of the option
      value - the Date to set
    • setKeyStroke Link icon

      public void setKeyStroke(String optionName, KeyStroke value)
      Description copied from interface: Options
      Sets the KeyStroke value for the option
      Specified by:
      setKeyStroke in interface Options
      Parameters:
      optionName - name of the option
      value - KeyStroke to set
    • setActionTrigger Link icon

      public void setActionTrigger(String optionName, ActionTrigger value)
      Description copied from interface: Options
      Sets the action trigger value for the option
      Specified by:
      setActionTrigger in interface Options
      Parameters:
      optionName - name of the option
      value - action trigger to set
    • setString Link icon

      public void setString(String optionName, String value)
      Description copied from interface: Options
      Set the String value for the option.
      Specified by:
      setString in interface Options
      Parameters:
      optionName - name of the option
      value - value of the option
    • setEnum Link icon

      public <T extends Enum<T>> void setEnum(String optionName, T value)
      Description copied from interface: Options
      Set the Enum value for the option.
      Specified by:
      setEnum in interface Options
      Parameters:
      optionName - name of the option
      value - Enum value of the option
    • getDefaultValue Link icon

      public Object getDefaultValue(String optionName)
      Description copied from interface: Options
      Returns the default value for the given option.
      Specified by:
      getDefaultValue in interface Options
      Parameters:
      optionName - the name of the option for which to retrieve the default value.
      Returns:
      the default value for the given option.
    • getPropertyEditor Link icon

      public PropertyEditor getPropertyEditor(String optionName)
      Description copied from interface: Options
      Get the property editor for the option with the given name. Note: This method must be called from the swing thread.
      Specified by:
      getPropertyEditor in interface Options
      Parameters:
      optionName - the option name
      Returns:
      either the PropertyEditor that was registered for this option or a default editor for the property type if one can be found; otherwise null.
    • getRegisteredPropertyEditor Link icon

      public PropertyEditor getRegisteredPropertyEditor(String optionName)
      Description copied from interface: Options
      Get the property editor that was registered for the specific option with the given name. Unlike the getPropertyEditor() method, this method does not have to be called from the swing thread
      Specified by:
      getRegisteredPropertyEditor in interface Options
      Parameters:
      optionName - the option name
      Returns:
      the PropertyEditor that was registered for this option.
    • contains Link icon

      public boolean contains(String optionName)
      Description copied from interface: Options
      Return true if a option exists with the given name.
      Specified by:
      contains in interface Options
      Parameters:
      optionName - option name
      Returns:
      true if there exists an option with the given name
    • getDescription Link icon

      public String getDescription(String optionName)
      Description copied from interface: Options
      Get the description for the given option name.
      Specified by:
      getDescription in interface Options
      Parameters:
      optionName - name of the option
      Returns:
      null if the description or option name does not exist
    • getHelpLocation Link icon

      public HelpLocation getHelpLocation(String optionName)
      Description copied from interface: Options
      Get the location for where help can be found for the option with the given name.
      Specified by:
      getHelpLocation in interface Options
      Parameters:
      optionName - name of the option
      Returns:
      null if the help location was not set on the option
    • isRegistered Link icon

      public boolean isRegistered(String optionName)
      Description copied from interface: Options
      Returns true if the specified option has been registered. Only registered names are saved.
      Specified by:
      isRegistered in interface Options
      Parameters:
      optionName - the option name
      Returns:
      true if registered
    • isDefaultValue Link icon

      public boolean isDefaultValue(String optionName)
      Description copied from interface: Options
      Returns true if the option with the given name's current value is the default value.
      Specified by:
      isDefaultValue in interface Options
      Parameters:
      optionName - the name of the option.
      Returns:
      true if the options has its current value equal to its default value.
    • restoreDefaultValues Link icon

      public void restoreDefaultValues()
      Description copied from interface: Options
      Restores all options contained herein to their default values.
      Specified by:
      restoreDefaultValues in interface Options
      See Also:
    • restoreDefaultValue Link icon

      public void restoreDefaultValue(String optionName)
      Description copied from interface: Options
      Restores the option denoted by the given name to its default value.
      Specified by:
      restoreDefaultValue in interface Options
      Parameters:
      optionName - The name of the option to restore
      See Also:
    • getChildOptions Link icon

      public List<Options> getChildOptions()
      Description copied from interface: Options
      Returns a list of Options objects that are nested one level down from this Options object.
      Specified by:
      getChildOptions in interface Options
      Returns:
      a list of Options objects that are nested one level down from this Options object.
    • getOptions Link icon

      public Options getOptions(String path)
      Description copied from interface: Options
      Returns a Options object that is a sub-options of this options.

      Note: the option path can have Options.DELIMITER characters which will be used to create a hierarchy with each element in the path resulting in sub-option of the previous path element.

      Specified by:
      getOptions in interface Options
      Parameters:
      path - the path for the sub-options object
      Returns:
      an Options object that is a sub-options of this options
    • setOptionsHelpLocation Link icon

      public void setOptionsHelpLocation(HelpLocation helpLocation)
      Description copied from interface: Options
      Set the location for where help can be found for this entire options object.
      Specified by:
      setOptionsHelpLocation in interface Options
      Parameters:
      helpLocation - location for help on the option
    • getOptionsHelpLocation Link icon

      public HelpLocation getOptionsHelpLocation()
      Description copied from interface: Options
      Returns the HelpLocation for this entire Options object.
      Specified by:
      getOptionsHelpLocation in interface Options
      Returns:
      the HelpLocation for this entire Options object.
    • registerOptionsEditor Link icon

      public void registerOptionsEditor(Supplier<OptionsEditor> editor)
      Description copied from interface: Options
      Register the options editor that will handle the editing for all the options or a sub-group of options.

      Note: we use a supplier of a custom editor, instead of a custom editor, to avoid creating PropertyEditors until needed. This allows us to use the same API in both GUI mode and headless mode. If GUI property editors are created in headless mode, exceptions may be thrown. This API will not use the supplier when in headless mode, this avoiding the creation of GUI components. For this to work correctly, clients using custom property editors must defer construction of the editor until the supplier is called.

      Specified by:
      registerOptionsEditor in interface Options
      Parameters:
      editor - a supplier for the custom editor panel to be used to edit the options or sub-group of options.
    • getOptionsEditor Link icon

      public OptionsEditor getOptionsEditor()
      Description copied from interface: Options
      Get the editor that will handle editing all the values in this options or sub group of options.
      Specified by:
      getOptionsEditor in interface Options
      Returns:
      null if no options editor was registered
    • createAlias Link icon

      public void createAlias(String aliasName, Options options, String optionsName)
      Description copied from interface: Options
      Create an alias in this options for an existing option in some other options object.
      Specified by:
      createAlias in interface Options
      Parameters:
      aliasName - the name within this options object that will actually refer to some other options object.
      options - the options object that has the actual option.
      optionsName - the name within the given options object of the actual option.
    • isAlias Link icon

      public boolean isAlias(String aliasName)
      Description copied from interface: Options
      Returns
      Specified by:
      isAlias in interface Options
      Parameters:
      aliasName - the name of the alias.
      Returns:
      a Options object that is a sub-options of this options.
    • setCategoryHelpLocation Link icon

      public void setCategoryHelpLocation(String categoryPath, HelpLocation helpLocation)
    • getCategoryHelpLocation Link icon

      public HelpLocation getCategoryHelpLocation(String categoryPath)
    • getID Link icon

      public String getID(String optionName)
      Description copied from interface: Options
      Returns a unique id for option in this options with the given name. This will be the full path name to the root options object.
      Specified by:
      getID in interface Options
      Parameters:
      optionName - the name of the option for which to get an ID;
      Returns:
      the unique ID for the given option.
    • getValueAsString Link icon

      public String getValueAsString(String optionName)
      Description copied from interface: Options
      Returns the value as a string for the given option.
      Specified by:
      getValueAsString in interface Options
      Parameters:
      optionName - the name of the option for which to retrieve the value as a string
      Returns:
      the value as a string for the given option.
    • getDefaultValueAsString Link icon

      public String getDefaultValueAsString(String optionName)
      Description copied from interface: Options
      Returns the default value as a string for the given option.
      Specified by:
      getDefaultValueAsString in interface Options
      Parameters:
      optionName - the name of the option for which to retrieve the default value as a string
      Returns:
      the default value as a string for the given option.
    • toString Link icon

      public String toString()
      Overrides:
      toString in class Object
    • getLeafOptionNames Link icon

      public List<String> getLeafOptionNames()
      Description copied from interface: Options
      Returns a list of option names that immediately fall under this options. For example, if this options object had the following options named ("a", "b", "c.d"), only "a" and "b" would be returned. The "c.d" leaf option name could be returned by getOptions("c").getLeafOptionNames()
      Specified by:
      getLeafOptionNames in interface Options
      Returns:
      the list of the names of the options that are immediate children of this options object.
    • findPropertyEditor Link icon

      public static PropertyEditor findPropertyEditor(Class<?> originalValueClass)