Package ghidra.framework.main

# Class FrontEndPlugin

java.lang.Object
ghidra.framework.plugintool.Plugin
ghidra.framework.main.FrontEndPlugin

All Implemented Interfaces:
  `RemoteAdapterListener`, `FrontEndService`, `ProgramaticUseOnly`, `ProjectViewListener`, `PluginEventListener`, `ServiceListener`, `ExtensionPoint`

public class FrontEndPlugin extends Plugin implements FrontEndService, RemoteAdapterListener, ProjectViewListener, ProgramaticUseOnly
Main plugin component for the Ghidra Project Window, which is a PluginTool. This plugin manages all of the GUI elements, e.g., the Data tree panel, view panels for other projects, etc.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected List<DockingAction>`
  `openActions`

  ### Fields inherited from class ghidra.framework.plugintool.Plugin

  `name, pluginDescription, tool`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FrontEndPlugin(PluginTool tool)`
  Construct a new FrontEndPlugin.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addProjectListener(ProjectListener l)`
  Adds the specified listener to the front-end tool.
  `void`
  `connectionStateChanged(Object adapter)`
  Callback notification indicating the remote object connection state has changed.
  `protected void`
  `createToolSpecificOpenActions()`
  `protected void`
  `dispose()`
  Tells a plugin that it is no longer needed.
  `final Workspace`
  `getActiveWorkspace()`
  `JComponent`
  `getComponent()`
  `void`
  `openDomainFile(DomainFile domainFile)`
  `void`
  `readDataState(SaveState saveState)`
  Tells the Plugin to read its data-dependent state from the given SaveState object.
  `void`
  `removeProjectListener(ProjectListener l)`
  Removes the specified listener from the front-end tool.
  `void`
  `showInProjectTree(ProjectData projectData, String path, boolean isFolder)`
  `void`
  `viewedProjectAdded(URL projectView)`
  Provides notification that a read-only viewed project has been added which is intended to be visible.
  `void`
  `viewedProjectRemoved(URL projectView)`
  Provides notification that a viewed project is being removed from the project.
  `void`
  `writeDataState(SaveState saveState)`
  Tells the Plugin to write any data-dependent state to the output stream.

  ### Methods inherited from class ghidra.framework.plugintool.Plugin

  `accept, acceptData, canClose, canCloseDomainObject, cleanup, close, dataStateRestoreCompleted, dependsUpon, deregisterService, equals, eventSent, firePluginEvent, getData, getMissingRequiredServices, getName, getPluginDescription, getServicesRequired, getSupportedDataTypes, getTool, getTransientState, getUndoRedoState, hashCode, hasMissingRequiredService, hasUnsaveData, init, internalRegisterEventConsumed, isDisposed, prepareToSave, processEvent, readConfigState, registerDynamicServiceProvided, registerServiceProvided, restoreTransientState, restoreUndoRedoState, saveData, serviceAdded, serviceRemoved, writeConfigState`

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

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

- ## Field Details

  - ### openActions

    protected List<DockingAction> openActions

- ## Constructor Details

  - ### FrontEndPlugin

    public FrontEndPlugin(PluginTool tool)
    Construct a new FrontEndPlugin. This plugin is constructed once when the Front end tool (Ghidra Project Window) is created. When a previously opened project is created, the Ghidra Project Window is restored to the state associated with that project.
    Parameters:
      `tool` - the front end tool

- ## Method Details

  - ### createToolSpecificOpenActions

    protected void createToolSpecificOpenActions()

  - ### getComponent

    public JComponent getComponent()

  - ### connectionStateChanged

    public void connectionStateChanged(Object adapter)
    Description copied from interface: `RemoteAdapterListener`
    Callback notification indicating the remote object connection state has changed.
    Specified by:
      `connectionStateChanged` in interface `RemoteAdapterListener`
    Parameters:
      `adapter` - remote interface adapter (e.g., RepositoryServerAdapter).

  - ### viewedProjectAdded

    public void viewedProjectAdded(URL projectView)
    Description copied from interface: `ProjectViewListener`
    Provides notification that a read-only viewed project has been added which is intended to be visible. Notification for hidden viewed projects will not be provided.
    Specified by:
      `viewedProjectAdded` in interface `ProjectViewListener`
    Parameters:
      `projectView` - project view URL

  - ### viewedProjectRemoved

    public void viewedProjectRemoved(URL projectView)
    Description copied from interface: `ProjectViewListener`
    Provides notification that a viewed project is being removed from the project. Notification for hidden viewed project removal will not be provided.
    Specified by:
      `viewedProjectRemoved` in interface `ProjectViewListener`
    Parameters:
      `projectView` - project view URL

  - ### writeDataState

    public void writeDataState(SaveState saveState)
    Description copied from class: `Plugin`
    Tells the Plugin to write any data-dependent state to the output stream.
    Overrides:
      `writeDataState` in class `Plugin`
    Parameters:
      `saveState` - object that holds primitives for state information

  - ### readDataState

    public void readDataState(SaveState saveState)
    Description copied from class: `Plugin`
    Tells the Plugin to read its data-dependent state from the given SaveState object.
    Overrides:
      `readDataState` in class `Plugin`
    Parameters:
      `saveState` - object that holds primitives for state information

  - ### getActiveWorkspace

    public final Workspace getActiveWorkspace()

  - ### dispose

    protected void dispose()
    Description copied from class: `Plugin`
    Tells a plugin that it is no longer needed. The plugin should release any resources that it has. All actions, components, services will automatically be cleaned up.
    Overrides:
      `dispose` in class `Plugin`

  - ### addProjectListener

    public void addProjectListener(ProjectListener l)
    Description copied from interface: `FrontEndService`
    Adds the specified listener to the front-end tool.
    Specified by:
      `addProjectListener` in interface `FrontEndService`
    Parameters:
      `l` - the project listener

  - ### removeProjectListener

    public void removeProjectListener(ProjectListener l)
    Description copied from interface: `FrontEndService`
    Removes the specified listener from the front-end tool.
    Specified by:
      `removeProjectListener` in interface `FrontEndService`
    Parameters:
      `l` - the project listener

  - ### openDomainFile

    public void openDomainFile(DomainFile domainFile)

  - ### showInProjectTree

    public void showInProjectTree(ProjectData projectData, String path, boolean isFolder)