Class FrontEndTool

All Implemented Interfaces:
Tool, OptionsChangeListener, ServiceProvider
Direct Known Subclasses:
TestFrontEndTool

public class FrontEndTool extends PluginTool implements OptionsChangeListener
Tool that serves as the the Ghidra Project Window. Only those plugins that implement the FrontEndable interface may be directly added to this tool by the user. Other plugins that are not marked as FrontEndable may get pulled in because the FrontEndable plugins depend on them. These plugins are aware of what tool they live in so that they can behave in the appropriate manner.
  • Field Details

  • Constructor Details

    • FrontEndTool

      public FrontEndTool(ProjectManager pm)
      Construct a new Ghidra Project Window.
      Parameters:
      pm - project manager
  • Method Details

    • getPluginClassManager

      public PluginClassManager getPluginClassManager()
      Specified by:
      getPluginClassManager in class PluginTool
    • selectFiles

      public void selectFiles(Set<DomainFile> files)
    • optionsChanged

      public void optionsChanged(ToolOptions options, String optionName, Object oldValue, Object newValue)
      Description copied from interface: OptionsChangeListener
      Notification that an option changed.

      Note: to reject an options change, you can throw a OptionsVetoException.

      Specified by:
      optionsChanged in interface OptionsChangeListener
      Parameters:
      options - options object containing the property that changed
      optionName - name of option that changed
      oldValue - old value of the option
      newValue - new value of the option
    • exit

      public void exit()
      Overrides:
      exit in class PluginTool
    • close

      public void close()
      Description copied from class: PluginTool
      Close this tool:
      1. if there are no tasks running.
      2. resolve the state of any plugins so they can be closed.
      3. Prompt the user to save any changes.
      4. close all associated plugins (this closes the domain object if one is open).
      5. pop up dialog to save the configuration if it has changed.
      6. notify the project tool services that this tool is going away.
      Specified by:
      close in interface Tool
      Overrides:
      close in class PluginTool
    • setActiveProject

      public void setActiveProject(Project project)
      Set the active project.
      Parameters:
      project - may be null if there is no active project
    • addProjectListener

      public void addProjectListener(ProjectListener l)
      Add the given project listener.
      Parameters:
      l - listener to add
    • removeProjectListener

      public void removeProjectListener(ProjectListener l)
      Remove the given project listener.
      Parameters:
      l - listener to remove
    • checkIn

      public void checkIn(PluginTool tool, DomainFile domainFile)
      Check in the given domain file.
      Parameters:
      tool - tool that has the domain file opened
      domainFile - domain file to check in
    • checkIn

      public void checkIn(PluginTool tool, List<DomainFile> fileList, Component parent)
      Check in the list of domain files.
      Parameters:
      tool - tool that has the domain files opened
      fileList - list of DomainFile objects
      parent - parent of dialog if an error occurs during checkin
    • merge

      public void merge(PluginTool tool, DomainFile domainFile, TaskListener taskListener)
      Merge the latest version in the repository with the given checked out domain file. Upon completion of the merge, the domain file appears as though the latest version was checked out.
      Parameters:
      tool - tool that has the domain file opened
      domainFile - domain file where latest version will be merged into
      taskListener - listener that is notified when the merge task completes
    • merge

      public void merge(PluginTool tool, List<DomainFile> fileList, TaskListener taskListener)
      Merge the latest version (in the repository) of each checked out file in fileList. Upon completion of the merge, the domain file appears as though the latest version was checked out.
      Parameters:
      tool - tool that has the domain files opened
      fileList - list of files that are checked out and are to be merged
      taskListener - listener that is notified when the merge task completes
    • setVisible

      public void setVisible(boolean visibility)
      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:
      visibility - true specifies that the tool should be visible
    • setBusy

      public void setBusy(boolean busy)
    • getToolTemplate

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

      public boolean canCloseDomainFile(DomainFile df)
      Overrides:
      canCloseDomainFile in class PluginTool