Class PluginTool

    • Field Detail

      • toolName NEW

        protected java.lang.String toolName
      • isDisposed NEW

        protected boolean isDisposed

Constructor Detail

  • Method Detail

    • createDockingWindowManager NEW

      protected DockingWindowManager createDockingWindowManager​(boolean isDockable,
                                                                boolean hasStatus,
                                                                boolean isModal)
      This method exists here, as opposed to inline in the constructor, so that subclasses can alter the behavior of the DockingWindowManager construction.
      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
    • installHomeButton NEW

      protected void installHomeButton()
    • initActions NEW

      protected void initActions()
      Placeholder for subclasses to get a chance to install actions before plugins.
    • optionsChanged NEW

      protected void optionsChanged​(Options options,
                                    java.lang.String name,
                                    java.lang.Object oldValue,
                                    java.lang.Object newValue)
    • setWindowsOnTop

      public void setWindowsOnTop​(boolean b)
      Set the Tool option (GhidraOptions.OPTION_DOCKING_WINDOWS_ON_TOP) for whether a docked window will always be shown on top of its parent window.
      Parameters:
      b - true means that the docked window will always appear on top of its parent window; false means to allow the docked window to be "hidden" under its parent dialog
    • isWindowsOnTop

      public boolean isWindowsOnTop()
      Return the value of the Tool option (GhidraOptions.OPTION_DOCKING_WINDOWS_ON_TOP) for whether docked windows will always be shown on top of their parent windows.
      Returns:
      value of the Tool option, GhidraOptions.OPTION_DOCKING_WINDOWS_ON_TOP
    • addPopupListener

      public void addPopupListener​(PopupListener listener)
      Add popup listener that is notified when the popup menu is about to be displayed.
      Parameters:
      listener - listener that is notified when the popup menu is to be displayed
    • getManagePluginsDialog

      public ManagePluginsDialog getManagePluginsDialog()
      Returns the manage plugins dialog that is currently being used.
      Returns:
      the current manage plugins dialog
    • showConfig

      public void showConfig​(boolean addSaveActions,
                             boolean isNewTool)
      Displays the manage plugins dialog.
      Parameters:
      addSaveActions - if true show save actions
      isNewTool - true if creating a new tool
    • showExtensions

      public void showExtensions()
      Displays the extensions installation dialog.
    • removePopupListener

      public void removePopupListener​(PopupListener listener)
      Remove popup listener
      Parameters:
      listener - listener that is notified when the popup menu is to be displayed
    • addLocalAction

      public void addLocalAction​(ComponentProvider provider,
                                 DockingActionIf action)
      Add an action that is associated with the given provider. The action works only in the context of the provider, and not across the tool as for a "global" action.
      Specified by:
      addLocalAction in interface DockingTool
      Overrides:
      addLocalAction in class AbstractDockingTool
      Parameters:
      provider - provider that has a visible component in the tool
      action - local action to associate with the provider
    • showComponentHeader

      public void showComponentHeader​(ComponentProvider provider,
                                      boolean b)
      Set whether a component's header should be shown; the header is the component that is dragged in order to move the component within the tool, or out of the tool into a separate window
      Parameters:
      provider - provider of the visible component in the tool
      b - true means to show the header
    • isActive

      public boolean isActive​(ComponentProvider provider)
      Description copied from interface: DockingTool
      Returns true if the ComponentProvider is the currently active provider. The active provider is the provider that has keyboard focus and provides the current action context.
      Specified by:
      isActive in interface DockingTool
      Overrides:
      isActive in class AbstractDockingTool
      Parameters:
      provider - the provider to check for active.
      Returns:
      true if the ComponentProvider is the currently active provider.
    • toFront

      public void toFront​(ComponentProvider provider)
      Description copied from interface: DockingTool
      Makes the given ComponentProvider move to the front if it is tabbed with other components.
      Specified by:
      toFront in interface DockingTool
      Overrides:
      toFront in class AbstractDockingTool
      Parameters:
      provider - the provider to move to the top of its stacking order.
    • isVisible

      public boolean isVisible​(ComponentProvider provider)
      Description copied from interface: DockingTool
      Returns true if the given ComponentProvider is currently visible.
      Specified by:
      isVisible in interface DockingTool
      Overrides:
      isVisible in class AbstractDockingTool
      Parameters:
      provider - the provider to check for visibility.
      Returns:
      true if the given ComponentProvider is currently visible.
    • setVisible

      public void setVisible​(boolean visibility)
      Description copied from interface: DockingTool
      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 DockingTool
      Overrides:
      setVisible in class AbstractDockingTool
      Parameters:
      visibility - true specifies that the tool should be visible
      See Also:
      DockingTool.setVisible(boolean)
    • toFront

      public void toFront()
      Description copied from interface: DockingTool
      Brings this tool to the front. Places this tool at the top of the stacking order and shows it in front of any other tools.
      Specified by:
      toFront in interface DockingTool
      Overrides:
      toFront in class AbstractDockingTool
    • getToolFrame

      public javax.swing.JFrame getToolFrame()
      Returns the tool's frame
      Overrides:
      getToolFrame in class AbstractDockingTool
      Returns:
      the tool's frame
    • isService

      public boolean isService​(java.lang.Class<?> serviceInterface)
      Returns true if the specified serviceInterface is a valid service that exists in this tool.
      Parameters:
      serviceInterface - the service interface
      Returns:
      true if the specified serviceInterface
    • getService

      public <T> T getService​(java.lang.Class<T> c)
      Description copied from interface: ServiceProvider
      Returns the Service object that implements the given service interface.
      Specified by:
      getService in interface ServiceProvider
      Parameters:
      c - the interface class.
    • getServices

      public <T> T[] getServices​(java.lang.Class<T> c)
      Get the objects that implement the given service.
      Parameters:
      c - service class
      Returns:
      array of Objects that implement the service, c.
    • addServiceListener

      public void addServiceListener​(ServiceListener listener)
      Description copied from interface: ServiceProvider
      Adds a listener that will be called as services are added and removed from this ServiceProvider.
      Specified by:
      addServiceListener in interface ServiceProvider
      Parameters:
      listener - The listener to add.
    • removeServiceListener

      public void removeServiceListener​(ServiceListener listener)
      Description copied from interface: ServiceProvider
      Removes the given listener from this ServiceProvider. This method does nothing if the given listener is not contained by this ServiceProvider.
      Specified by:
      removeServiceListener in interface ServiceProvider
    • setStatusInfo

      public void setStatusInfo​(java.lang.String text,
                                boolean beep)
      Set the status information.
      Parameters:
      text - string to be displayed in the Status display area
      beep - whether to be or not
    • clearStatusInfo

      public void clearStatusInfo()
      Clear the status information.
    • setDefaultComponent

      public void setDefaultComponent​(ComponentProvider provider)
      Sets the provider that should get the default focus when no component has focus.
      Parameters:
      provider - the provider that should get the default focus when no component has focus.
    • getToolTemplate

      public ToolTemplate getToolTemplate​(boolean includeConfigState)
      Description copied from interface: Tool
      Returns a ToolTemplate for this Tool that describes the state of the tool.
      Specified by:
      getToolTemplate in interface Tool
      Returns:
      a ToolTemplate for this Tool that describes the state of the tool.
    • saveToolToToolTemplate

      public ToolTemplate saveToolToToolTemplate()
      Description copied from interface: Tool
      Save the tool and return its state as a ToolTemplate. Forces a complete regeneration of the tool template.
      Specified by:
      saveToolToToolTemplate in interface Tool
      Returns:
      a toolTemplate for this tool.
    • saveWindowingDataToXml

      public org.jdom.Element saveWindowingDataToXml()
      Description copied from interface: Tool
      Saves the tool's Docking Window layout and positioning information to an XML element.
      Specified by:
      saveWindowingDataToXml in interface Tool
      Returns:
      the element containing the DockingWindow's layout information.
    • restoreWindowingDataFromXml

      public void restoreWindowingDataFromXml​(org.jdom.Element windowData)
      Description copied from interface: Tool
      Restores the tool's Docking Window layout and positioning information from an XML element.
      Specified by:
      restoreWindowingDataFromXml in interface Tool
      Parameters:
      windowData - the element containing the information.
    • acceptDomainFiles

      public boolean acceptDomainFiles​(DomainFile[] data)
      Description copied from interface: Tool
      When the user drags a data file onto a tool, an event will be fired that the tool will respond to by accepting the data.
      Specified by:
      acceptDomainFiles in interface Tool
      Parameters:
      data - the data to be used by the running tool
    • addPropertyChangeListener

      public void addPropertyChangeListener​(java.beans.PropertyChangeListener l)
      Description copied from interface: Tool
      Add property change listener.
      Specified by:
      addPropertyChangeListener in interface Tool
    • addToolListener

      public void addToolListener​(ToolListener listener)
      Description copied from interface: Tool
      Adds a ToolListener to be notified for any of a Tool's ToolEvents. The listener will be notified of any events that this tool generates.
      Specified by:
      addToolListener in interface Tool
      Parameters:
      listener - ToolListener to be added to receive all events
    • hasToolListeners

      public boolean hasToolListeners()
      Returns true if there is at least one tool listening to this tool's plugin events.
    • exit

      public void exit()
      Description copied from interface: Tool
      Tells the tool to stop functioning and release its resources. The tool should dispose of all its windows and other resources.
      Specified by:
      exit in interface Tool
    • dispose NEW

      protected void dispose()
    • firePluginEvent

      public void firePluginEvent​(PluginEvent event)
      Description copied from interface: Tool
      Fire the plugin event by notifying the event manager which calls the listeners.
      Specified by:
      firePluginEvent in interface Tool
      Parameters:
      event - plugin event
    • getConsumedToolEventNames

      public java.lang.String[] getConsumedToolEventNames()
      Description copied from interface: Tool
      Returns a list of eventNames that this Tool is interested in.
      Specified by:
      getConsumedToolEventNames in interface Tool
    • getDomainFiles

      public DomainFile[] getDomainFiles()
      Description copied from interface: Tool
      Get the domain files that this tool currently has open.
      Specified by:
      getDomainFiles in interface Tool
    • getIcon

      public javax.swing.ImageIcon getIcon()
      Description copied from interface: DockingTool
      Get the icon that the tool is using.
      Specified by:
      getIcon in interface DockingTool
    • getIconURL

      public ToolIconURL getIconURL()
      Description copied from interface: Tool
      Get the url for the icon that this tool is using.
      Specified by:
      getIconURL in interface Tool
    • getInstanceName

      public java.lang.String getInstanceName()
      Description copied from interface: Tool
      Returns the tool's unique name.
      Specified by:
      getInstanceName in interface Tool
    • getName

      public java.lang.String getName()
      Description copied from interface: DockingTool
      Returns a combination of the tool name and the instance name of the form tool name(instance name), e.g., SomeTool(2)
      Specified by:
      getName in interface DockingTool
    • getSupportedDataTypes

      public java.lang.Class<?>[] getSupportedDataTypes()
      Description copied from interface: Tool
      Get the classes of the data types that this tool supports, i.e., what data types can be dropped onto this tool.
      Specified by:
      getSupportedDataTypes in interface Tool
    • getToolEventNames

      public java.lang.String[] getToolEventNames()
      Description copied from interface: Tool
      Returns the names of all the possible ToolEvents that this tool might generate. Used by the ConnectionManager to connect tools together.
      Specified by:
      getToolEventNames in interface Tool
    • getToolName

      public java.lang.String getToolName()
      Description copied from interface: Tool
      Returns the name associated with the tool
      Specified by:
      getToolName in interface Tool
    • putInstanceName

      public void putInstanceName​(java.lang.String newInstanceName)
      Description copied from interface: Tool
      Associates a unique(within the active project) name to a tool instance.
      Specified by:
      putInstanceName in interface Tool
      Parameters:
      newInstanceName - unique tool instance name
    • removePropertyChangeListener

      public void removePropertyChangeListener​(java.beans.PropertyChangeListener l)
      Description copied from interface: Tool
      Remove property change listener.
      Specified by:
      removePropertyChangeListener in interface Tool
    • removeToolListener

      public void removeToolListener​(ToolListener listener)
      Description copied from interface: Tool
      Removes a ToolListener from receiving any event generated by this Tool. The tool will still recieve specific events that it has registered for.
      Specified by:
      removeToolListener in interface Tool
      Parameters:
      listener - The ToolListener to be removed from receiving all events.
    • restoreDataStateFromXml

      public void restoreDataStateFromXml​(org.jdom.Element root)
      Description copied from interface: Tool
      Tells tool to read its data state from the given input stream.
      Specified by:
      restoreDataStateFromXml in interface Tool
      Parameters:
      root - XML data state
    • saveDataStateToXml

      public org.jdom.Element saveDataStateToXml​(boolean savingProject)
      Description copied from interface: Tool
      Tells tool to write its data state from the given output stream.
      Specified by:
      saveDataStateToXml in interface Tool
      Parameters:
      savingProject - true if saving the toolstate is for a potential undo/redo (database transaction)
    • restoreFromXml NEW

      protected boolean restoreFromXml​(org.jdom.Element root)
    • saveToXml

      public org.jdom.Element saveToXml​(boolean includeConfigState)
      Specified by:
      saveToXml in interface Tool
    • setIconURL

      public void setIconURL​(ToolIconURL newIconURL)
      Description copied from interface: Tool
      Set the icon for this tool.
      Specified by:
      setIconURL in interface Tool
      Parameters:
      newIconURL - icon location
    • setToolName

      public void setToolName​(java.lang.String name)
      Description copied from interface: Tool
      Sets the type name of the tool.
      Specified by:
      setToolName in interface Tool
      Parameters:
      name - the basename to use when setting the tool's name
    • processToolEvent

      public void processToolEvent​(PluginEvent toolEvent)
      Description copied from interface: ToolListener
      This method is invoked when the registered ToolEvent event occurs.
      Specified by:
      processToolEvent in interface ToolListener
      Parameters:
      toolEvent - The cross-tool PluginEvent.
    • execute

      public boolean execute​(Command command,
                             DomainObject obj)
      Call the applyTo() method on the given command to make some change to the domain object; the command is done in the AWT thread, therefore, the command that is to be executed should be a relatively quick operation so that the event queue does not appear to "hang." For lengthy operations, the command should be done in a background task.
      Parameters:
      command - command to apply
      obj - domain object that the command will be applied to
      Returns:
      status of the command's applyTo() method
      See Also:
      executeBackgroundCommand(BackgroundCommand, UndoableDomainObject)
    • isExecutingCommand

      public boolean isExecutingCommand()
      Return whether there is a command being executed.
    • threadIsBackgroundTaskThread

      public boolean threadIsBackgroundTaskThread()
      Returns:
      true if the current thread group or its ancestors is a member of this tools background task thread group, else false
    • executeBackgroundCommand

      public void executeBackgroundCommand​(BackgroundCommand cmd,
                                           UndoableDomainObject obj)
      Start a new thread that will call the given command's applyTo() method to make some change in the domain object. This method should be called for an operation that could potentially take a long time to complete.
      Parameters:
      cmd - command that will be executed in another thread (not the AWT Thread)
      obj - domain object that the command will be applied to
    • terminateBackgroundCommands

      public void terminateBackgroundCommands​(boolean wait)
      Cancel any running command and clear the command queue.
      Parameters:
      wait - if true wait for current task to cancel cleanly
    • scheduleFollowOnCommand

      public void scheduleFollowOnCommand​(BackgroundCommand cmd,
                                          UndoableDomainObject obj)
      Add the given background command to a queue that is processed after the main background command completes.
      Parameters:
      cmd - background command to submit
      obj - the domain object to be modified by the command.
    • getOptions

      public ToolOptions getOptions​(java.lang.String categoryName)
      Get the options for the given category name; if no options exist with the given name, then one is created.
      Specified by:
      getOptions in interface DockingTool
    • registerOptionsNameChange

      public void registerOptionsNameChange​(java.lang.String oldName,
                                            java.lang.String newName)
      Updates saved options from an old name to a new name. NOTE: this must be called before any calls to register or get options.
      Parameters:
      oldName - the old name of the options.
      newName - the new name of the options.
    • hasOptions

      public boolean hasOptions​(java.lang.String category)
      Return true if there is an options category with the given name
      Parameters:
      category - name of the options set
      Returns:
      true if there is an options category with the given name
    • getOptions

      public ToolOptions[] getOptions()
      Get all options.
      Returns:
      zero-length array if no options exist.
    • execute

      public void execute​(Task task,
                          int delay)
      Launch the task in a new thread.
      Parameters:
      task - task to run in a new thread
      delay - number of milliseconds to delay the display of task monitor dialog
    • execute

      public void execute​(Task task)
      Launch the task in a new thread.
      Parameters:
      task - task to run in a new thread
    • getProject

      public Project getProject()
      Get the project associated with this tool. Null will be returned if there is no project open or if this tool does not use projects.
      Returns:
      null if there is no open project
    • getProjectManager

      public ProjectManager getProjectManager()
      Returns the project manager associated with this tool.

      Null will be returned if this tool does not use projects.

      Returns:
      the project manager associated with this tool
    • getToolServices

      public ToolServices getToolServices()
      Returns an object that provides fundamental services that plugins can use.
    • setSubTitle

      public void setSubTitle​(java.lang.String subTitle)
      Sets the subtitle on the tool; the subtitle is extra text in the title.
      Parameters:
      subTitle - the subtitle to display on the tool
    • addPlugin

      public void addPlugin​(java.lang.String className)
                     throws PluginException
      Add a plugin to the tool.
      Parameters:
      className - name of the plugin class, e.g., "MyPlugin.class.getName()"
      Throws:
      PluginException - if the plugin could not be constructed, or there was problem executing its init() method, or if a plugin of this class already exists in the tool
    • addPlugins

      public void addPlugins​(java.lang.String[] classNames)
                      throws PluginException
      Add plugins to the tool.
      Parameters:
      classNames - array of plugin class names
      Throws:
      PluginException - if a plugin could not be constructed, or there was problem executing its init() method, or if a plugin of this class already exists in the tool
    • hasUnsavedData

      public boolean hasUnsavedData()
    • removePlugins

      public void removePlugins​(Plugin[] plugins)
      Remove the array of plugins from the tool.
      Parameters:
      plugins - array of plugins to remove
    • getManagedPlugins

      public java.util.List<Plugin> getManagedPlugins()
      Return a list of plugins in the tool
      Returns:
      list of plugins in the tool
    • saveTool

      public void saveTool()
      Save this tool's configuration.
    • saveToolAs

      public boolean saveToolAs()
      Triggers a 'Save As' dialog that allows the user to save off the tool under a different name. This returns true if the user performed a save.
    • addStatusComponent

      public void addStatusComponent​(javax.swing.JComponent c,
                                     boolean addBorder,
                                     boolean rightSide)
      Add a status component to the tool.
      Parameters:
      c - component to add
      addBorder - true if a border should be added to the component
      rightSide - true if the component should be placed in the right side of the tool
    • removeStatusComponent

      public void removeStatusComponent​(javax.swing.JComponent c)
      Remove the status component.
      Parameters:
      c - status component to remove
    • addExitAction NEW

      protected void addExitAction()
    • addOptionsAction NEW

      protected void addOptionsAction()
    • addSaveToolAction NEW

      protected void addSaveToolAction()
    • addExportToolAction NEW

      protected void addExportToolAction()
    • addHelpActions NEW

      protected void addHelpActions()
    • clearLastEvents

      public void clearLastEvents()
      Clear the list of events that were last generated.
    • getPopupActions

      public java.util.List<DockingActionIf> getPopupActions​(ActionContext context)
      Description copied from interface: DockWinListener
      Provides notification when a popup menu is about to be displayed and permits a list of temporary actions to be returned. Only those actions which have a suitable popup menu path will be considered.
      Specified by:
      getPopupActions in interface DockWinListener
      Parameters:
      context - the ActionContext
      Returns:
      list of temporary actions.
    • close

      public void close()
      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 DockWinListener
      Specified by:
      close in interface Tool
    • shouldSave

      public boolean shouldSave()
      Description copied from interface: Tool
      Returns true if this tool should save its data, based upon its changed state and the state of Ghidra's saving method.
      Specified by:
      shouldSave in interface Tool
      Returns:
      true if this tool should save its data
    • doSaveTool NEW

      protected boolean doSaveTool()
      Called when it is time to save the tool. Handles auto-saving logic.
    • canClose

      public boolean canClose​(boolean isExiting)
      Can this tool be closed?
      Note: This forces plugins to terminate any tasks they have running and apply any unsaved data to domain objects or files. If they can't do this or the user cancels then this returns false.
      Specified by:
      canClose in interface Tool
      Parameters:
      isExiting - true if all of Ghidra is closing, false if just this tool is closing.
      Returns:
      false if this tool has tasks in progress or can't be closed since the user has unfinished/unsaved changes.
    • canCloseDomainObject

      public boolean canCloseDomainObject​(DomainObject dObj)
      Can the domain object be closed?
      Note: This forces plugins to terminate any tasks they have running for the indicated domain object and apply any unsaved data to the domain object. If they can't do this or the user cancels then this returns false.
      Returns:
      false any of the plugins reports that the domain object should not be closed
    • canCloseDomainFile

      public boolean canCloseDomainFile​(DomainFile domainFile)
      Description copied from interface: Tool
      Can the domain File be closed?
      Note: This forces plugins to terminate any tasks they have running for the indicated domain object and apply any unsaved data to the domain object. If they can't do this or the user cancels then this returns false.
      Specified by:
      canCloseDomainFile in interface Tool
      Returns:
      false any of the plugins reports that the domain object should not be closed
    • prepareToSave

      public void prepareToSave​(DomainObject dobj)
      Called when the domain object is about to be saved; this allows any plugin that has a cache to flush out to the domain object.
      Parameters:
      dobj - domain object that is about to be saved
    • setSize

      public void setSize​(int width,
                          int height)
      Sets the size of the tool's main window
      Parameters:
      width - width in pixels
      height - height in pixels
    • getSize

      public java.awt.Dimension getSize()
      Return the dimension of this tool's frame.
      Returns:
      dimension of this tool's frame
    • setLocation

      public void setLocation​(int x,
                              int y)
      Set the location of this tool's frame on the screen.
      Parameters:
      x - screen x coordinate
      y - screen y coordinate
    • getLocation

      public java.awt.Point getLocation()
      Return the location of this tool's frame on the screen.
      Returns:
      location of this tool's frame
    • restoreOptionsFromXml NEW

      protected void restoreOptionsFromXml​(org.jdom.Element root)
    • setProject NEW

      protected void setProject​(Project project)
    • addListenerForAllPluginEvents

      public void addListenerForAllPluginEvents​(PluginEventListener listener)
    • removeListenerForAllPluginEvents

      public void removeListenerForAllPluginEvents​(PluginEventListener listener)
    • showEditWindow

      public void showEditWindow​(java.lang.String defaultText,
                                 java.awt.Component comp,
                                 java.awt.Rectangle rect,
                                 EditListener listener)
      Display an text edit box on top of the specified component.
      Parameters:
      defaultText - initial text to be displayed in edit box
      comp - component over which the edit box will be placed
      rect - specifies the bounds of the edit box relative to the component. The height is ignored. The default text field height is used as the preferred height.
      listener - when the edit is complete, this listener is notified with the new text. The edit box is dismissed prior to notifying the listener.
    • setMenuGroup

      public void setMenuGroup​(java.lang.String[] menuPath,
                               java.lang.String group)
      Set the menu group associated with a cascaded submenu. This allows a cascading menu item to be grouped with a specific set of actions. The default group for a cascaded submenu is the name of the submenu.
      Parameters:
      menuPath - menu name path where the last element corresponds to the specified group name.
      group - group name
      See Also:
      setMenuGroup(String[], String, String)
    • setMenuGroup

      public void setMenuGroup​(java.lang.String[] menuPath,
                               java.lang.String group,
                               java.lang.String menuSubGroup)
      Set the menu group associated with a cascaded submenu. This allows a cascading menu item to be grouped with a specific set of actions.

      The default group for a cascaded submenu is the name of the submenu.

      Parameters:
      menuPath - menu name path where the last element corresponds to the specified group name.
      group - group name
      menuSubGroup - the name used to sort the cascaded menu within other menu items at its level
    • cancelCurrentTask

      public void cancelCurrentTask()
      Cancel the current task in the tool.
    • showDialog

      public void showDialog​(DialogComponentProvider dialogComponent)
      Shows the dialog using the active top-level window (often the tool's root frame) as a parent. Also, remembers any size and location adjustments made by the user for the next time the dialog is shown.
      Specified by:
      showDialog in interface DockingTool
      Overrides:
      showDialog in class AbstractDockingTool
      Parameters:
      dialogComponent - the DialogComponentProvider object to be shown in a dialog.
    • showDialogOnActiveWindow

      public void showDialogOnActiveWindow​(DialogComponentProvider dialogComponent)
      Shows the dialog using the tool's currently active window as a parent. Also, remembers any size and location adjustments made by the user for the next time the dialog is shown.
      Parameters:
      dialogComponent - the DialogComponentProvider object to be shown in a dialog.
    • showDialog

      public void showDialog​(DialogComponentProvider dialogComponent,
                             ComponentProvider centeredOnProvider)
      Shows the dialog using the window containing the given componentProvider as its parent window. Remembers the last location and size of this dialog for the next time it is shown.
      Parameters:
      dialogComponent - the DialogComponentProvider object to be shown in a dialog.
      centeredOnProvider - the component provider that is used to find a parent window for this dialog. The dialog is centered on this component provider's component.
    • showDialog

      public void showDialog​(DialogComponentProvider dialogComponent,
                             java.awt.Component centeredOnComponent)
      Shows the dialog using the tool's parent frame, but centers the dialog on the given component
      Parameters:
      dialogComponent - the DialogComponentProvider object to be shown in a dialog.
      centeredOnComponent - the component on which to center the dialog.
    • getComponentProvider

      public ComponentProvider getComponentProvider​(java.lang.String name)
      Returns the ComponentProvider with the given name. If more than one provider exists with the name, one will be returned, but it could be any one of them.
      Specified by:
      getComponentProvider in interface DockingTool
      Overrides:
      getComponentProvider in class AbstractDockingTool
      Parameters:
      name - the name of the provider to return.
      Returns:
      a provider with the given name, or null if no providers with that name exist.
    • getActiveWindow

      public java.awt.Window getActiveWindow()
    • refreshKeybindings

      public void refreshKeybindings()
    • setUnconfigurable

      public void setUnconfigurable()
    • isConfigurable

      public boolean isConfigurable()
    • removePreferenceState

      public void removePreferenceState​(java.lang.String name)