Class GhidraTool

All Implemented Interfaces:
Tool, ServiceProvider
Direct Known Subclasses:
TestTool

public class GhidraTool extends PluginTool
Tool created by the workspace when the user chooses to create a new tool. Its ToolConfigProvider shows all Plugins with the exception of those plugins that can be added to the Front End tool only.
  • Field Details

    • autoSave

      public static boolean autoSave
  • Constructor Details

    • GhidraTool

      public GhidraTool(Project project, String name)
      Construct a new Ghidra Tool.
      Parameters:
      project - the project associated with the tool
      name - the name of the tool
    • GhidraTool

      public GhidraTool(Project project, GhidraToolTemplate template)
      Construct a new GhidraTool using an existing template.
      Parameters:
      project - project that is the associated with the tool.
      template - the template to use when creating the tool
  • Method Details

    • createDockingWindowManager

      protected DockingWindowManager createDockingWindowManager(boolean isDockable, boolean hasStatus, boolean isModal)
      Description copied from class: PluginTool
      This method exists here, as opposed to inline in the constructor, so that subclasses can alter the behavior of the DockingWindowManager construction.
      Overrides:
      createDockingWindowManager in class PluginTool
      Parameters:
      isDockable - true if the tool contains components that can be docked
      hasStatus - true if the tool should display a status component
      isModal - true if the tool is modal, meaning that while this tool is visible, no other tool or dialog in Ghidra can have focus
      Returns:
      a new DockingWindowManager
    • initActions

      protected void initActions()
      Description copied from class: PluginTool
      Placeholder for subclasses to get a chance to install actions before plugins.
      Overrides:
      initActions in class PluginTool
    • createPluginsConfigurations

      protected PluginsConfiguration createPluginsConfigurations()
      Overrides:
      createPluginsConfigurations in class PluginTool
    • setToolName

      public void setToolName(String name)
      Overrides:
      setToolName in class PluginTool
    • getToolTemplate

      public ToolTemplate getToolTemplate(boolean includeConfigState)
      Overrides:
      getToolTemplate in class PluginTool
    • saveWindowingDataToXml

      public org.jdom.Element saveWindowingDataToXml()
      Overrides:
      saveWindowingDataToXml in class PluginTool
    • restoreWindowingDataFromXml

      public void restoreWindowingDataFromXml(org.jdom.Element rootElement)
      Overrides:
      restoreWindowingDataFromXml in class PluginTool
    • saveToXml

      public org.jdom.Element saveToXml(boolean includeConfigState)
      Overrides:
      saveToXml in class PluginTool
    • restoreFromXml

      protected boolean restoreFromXml(org.jdom.Element root)
      Overrides:
      restoreFromXml in class PluginTool
    • setVisible

      public void setVisible(boolean visible)
      Description copied from interface: Tool
      Sets the tool visible or invisible. This method is used by the Project to make it's tools visible or invisible depending on whether this tool is in is the active workspace.
      Specified by:
      setVisible in interface Tool
      Overrides:
      setVisible in class AbstractDockingTool
      Parameters:
      visible - true specifies that the tool should be visible
    • shouldSave

      public boolean shouldSave()
      Description copied from class: PluginTool
      Returns true if this tool needs saving
      Overrides:
      shouldSave in class PluginTool
      Returns:
      true if this tool needs saving
    • doSaveTool

      protected boolean doSaveTool()
      Description copied from class: PluginTool
      Called when it is time to save the tool. Handles auto-saving logic.
      Overrides:
      doSaveTool in class PluginTool
      Returns:
      true if a save happened
    • dispose

      public void dispose()
      Overrides:
      dispose in class PluginTool
    • addManagePluginsAction

      protected void addManagePluginsAction()
    • showConfig

      protected void showConfig()