Package help.screenshot

# Class AbstractScreenShotGenerator

java.lang.Object
generic.test.AbstractGTest
generic.test.AbstractGenericTest
generic.test.AbstractGuiTest
docking.test.AbstractDockingTest
ghidra.test.AbstractGhidraHeadlessIntegrationTest
ghidra.test.AbstractGhidraHeadedIntegrationTest
help.screenshot.AbstractScreenShotGenerator

Direct Known Subclasses:
  `GhidraScreenShotGenerator`, `TutorialScreenShotGenerator`

public abstract class AbstractScreenShotGenerator extends AbstractGhidraHeadedIntegrationTest

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class generic.test.AbstractGuiTest

  `AbstractGuiTest.ExceptionHandlingRunner`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final String`
  `DEFAULT_FILENAME_SUFFIX`
  `protected static final int`
  `DIALOG_HEADER_HEIGHT`
  `TestEnv`
  `env`
  `Image`
  `image`
  `protected static final String`
  `NEW_FILENAME_SUFFIX`
  `protected static final String`
  `NEW_FILENAME_SUFFIX_KEY`
  `Program`
  `program`
  `protected static final boolean`
  `SAVE_CREATED_IMAGE_FILE`
  `protected static final String`
  `SAVE_CREATED_IMAGE_FILE_KEY`
  `PluginTool`
  `tool`

  ### Fields inherited from class ghidra.test.AbstractGhidraHeadlessIntegrationTest

  `PROJECT_NAME`

  ### Fields inherited from class generic.test.AbstractGenericTest

  `concurrentTestExceptionRule, DEFAULT_TEST_TOOL_NAME, DEFAULT_TOOL_NAME, repeatedRule, ruleChain, TESTDATA_DIRECTORY_NAME, watchman`

  ### Fields inherited from class generic.test.AbstractGTest

  `BATCH_MODE, DEFAULT_WAIT_DELAY, DEFAULT_WAIT_TIMEOUT, DEFAULT_WINDOW_TIMEOUT, PARALLEL_MODE, PRIVATE_LONG_WAIT_TIMEOUT, testName`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractScreenShotGenerator()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Address`
  `addr(long value)`
  `Address`
  `address(long value)`
  Deprecated.
  use `addr(long)` instead
  `void`
  `addSelection(long start, long end)`
  `void`
  `captureActionIcon(String actionName)`
  `Image`
  `captureComponent(Component component)`
  `void`
  `captureComponents(List<Component> comps)`
  `void`
  `captureDialog()`
  `void`
  `captureDialog(int width, int height)`
  `void`
  `captureDialog(DialogComponentProvider provider)`
  `void`
  `captureDialog(Dialog dialog)`
  `void`
  `captureDialog(Dialog dialog, int width, int height)`
  `void`
  `captureDialog(Class<? extends DialogComponentProvider> clazz)`
  `void`
  `captureDialog(Class<? extends DialogComponentProvider> clazz, int width, int height)`
  `void`
  `captureDialog(String title)`
  `void`
  `captureIcon(Icon icon)`
  `void`
  `captureIsolatedComponent(JComponent component, int width, int height)`
  `void`
  `captureIsolatedProvider(ComponentProvider provider, int width, int height)`
  `void`
  `captureIsolatedProvider(Class<? extends ComponentProvider> clazz, int width, int height)`
  `void`
  `captureIsolatedProviderWindow(Class<? extends ComponentProvider> clazz, int width, int height)`
  The same as `captureIsolatedProvider(Class, int, int)` except this method will also capture the containing window.
  `void`
  `captureListingField(long address, String fieldName, int padding)`
  `void`
  `captureListingRange(long start, long end, int width)`
  `void`
  `captureMenu()`
  `void`
  `captureMenuBarMenu(String menuName, String... subMenuNames)`
  `void`
  `captureMenuBarMenuHierachy(String menuName, String... subMenuNames)`
  `void`
  `captureProvider(ComponentProvider provider)`
  `void`
  `captureProvider(Class<? extends ComponentProvider> clazz)`
  `void`
  `captureProvider(String name)`
  `void`
  `captureProviderWindow(ComponentProvider provider)`
  Captures the window, including decorations.
  `void`
  `captureProviderWindow(ComponentProvider provider, int width, int height)`
  Captures the window, including decorations.
  `void`
  `captureProviderWindow(Class<? extends ComponentProvider> clazz)`
  Captures the window, including decorations.
  `void`
  `captureProviderWindow(String name)`
  Captures the window, including decorations.
  `void`
  `captureProviderWindow(String name, int width, int height)`
  Captures the window, including decorations.
  `void`
  `captureProviderWithScreenShot(ComponentProvider provider)`
  Captures the provider by using a screen shot and not by painting the provider directly (as does `captureProvider(ComponentProvider)`).
  `void`
  `captureToolWindow(int width, int height)`
  `void`
  `captureWindow()`
  `void`
  `captureWindow(Window window)`
  `void`
  `captureWindow(Window window, int width, int height)`
  `void`
  `closeNonProgramArchives()`
  `void`
  `closeProvider(Class<? extends ComponentProvider> clazz)`
  `void`
  `createBookmark(long address)`
  `BufferedImage`
  `createEmptyImage(int width, int height)`
  `Image`
  `crop(Rectangle bounds)`
  `void`
  `doubleClickCursor()`
  `void`
  `drawArrow(Color c, int thickness, Point start, Point end, int arrowSize)`
  `void`
  `drawArrow(Color c, Point start, Point end)`
  `void`
  `drawBorder(Color c)`
  `void`
  `drawLine(Color c, int thickness, Point start, Point end)`
  `void`
  `drawOval(Color c, Rectangle rect, int thickness)`
  `void`
  `drawRectangle(Color c, Rectangle rect, int thickness)`
  `Rectangle`
  `drawRectangle(Color c, Rectangle r, int padding, int thickness)`
  `Rectangle`
  `drawRectangleAround(JComponent component, Color color, int padding)`
  `Rectangle`
  `drawRectangleAround(JComponent component, JComponent root, Color color, int padding)`
  Draws a rectangle around the given component.
  `void`
  `drawRectangleWithDropShadowAround(JComponent component, Color color, int padding)`
  `void`
  `drawText(String text, Color color, Point start, float size)`
  `void`
  `drawText(String text, Color color, Point start, Font font)`
  `void`
  `error(Exception e)`
  `void`
  `exit()`
  `void`
  `fillRectangle(Color c, Rectangle rect)`
  `JButton`
  `findProviderToolBarButton(ComponentProvider provider, String actionName)`
  `int`
  `findRowByPartialText(JTable table, String searchString)`
  `void`
  `generateImage(Component c)`
  `Rectangle`
  `getBounds(JComponent component)`
  `Rectangle`
  `getCursorBounds()`
  `DialogComponentProvider`
  `getDialog()`
  `DialogComponentProvider`
  `getDialog(Class<? extends DialogComponentProvider> clazz)`
  `DockableComponent`
  `getDockableComponent(ComponentProvider provider)`
  `DockableComponent`
  `getDockableComponent(Class<? extends ComponentProvider> clazz)`
  `Field`
  `getField(Point point)`
  `JPopupMenu`
  `getPopupMenu()`
  `<T extends ComponentProvider>
  T`
  `getProvider(Class<T> clazz)`
  `ComponentProvider`
  `getProvider(String name)`
  `void`
  `go(long address)`
  `void`
  `goToListing(long address)`
  `void`
  `goToListing(long address, boolean scrollToMiddle)`
  `void`
  `goToListing(long address, String fieldName, boolean scrollToMiddle)`
  `void`
  `hideTableColumn(GTable table, String columnName)`
  `void`
  `leftClickCursor()`
  `Plugin`
  `loadPlugin(Class<? extends Plugin> clazz)`
  `Plugin`
  `loadPlugin(String className)`
  `void`
  `loadProgram()`
  `Program`
  `loadProgram(String programName)`
  `void`
  `makeSelection(long start, long end)`
  `void`
  `makeSelection(AddressSet addrSet)`
  `void`
  `middleClickCursor()`
  `void`
  `moveProvider(ComponentProvider movee, ComponentProvider relativeTo, WindowPosition position)`
  `void`
  `moveProviderToFront(ComponentProvider provider)`
  `void`
  `moveProviderToFront(ComponentProvider provider, int width, int height)`
  `Window`
  `moveProviderToItsOwnWindow(ComponentProvider provider)`
  `Window`
  `moveProviderToItsOwnWindow(ComponentProvider provider, int width, int height)`
  `void`
  `moveWindowUp(Window window, int yOffset)`
  `protected TestEnv`
  `newTestEnv()`
  `Image`
  `padImage(Color c, int top, int left, int right, int bottom)`
  `protected void`
  `paintFix(Window window)`
  `void`
  `performAction(String actionName, String owner, boolean wait)`
  `void`
  `performAction(String actionName, String owner, ComponentProvider contextProvider, boolean wait)`
  `void`
  `performDialogAction(String actionName, boolean wait)`
  `void`
  `performMemorySearch(String searchString)`
  `Image`
  `placeImagesSideBySide(Image left, Image right)`
  `void`
  `positionCursor(long address)`
  `void`
  `positionCursor(long address, String fieldName)`
  `void`
  `positionListingCenter(long address)`
  `void`
  `positionListingTop(long address)`
  `void`
  `prepareCommentsDialog(ghidra.app.plugin.core.comments.CommentsDialog dialog, String annotationText)`
  `void`
  `prepareTool()`
  `void`
  `pressButtonOnDialog(String buttonText)`
  `void`
  `pressOkOnDialog()`
  `protected BufferedImage`
  `readImage(File imageFile)`
  `void`
  `removeField(String fieldName)`
  `void`
  `removeFlowArrows()`
  `void`
  `rightClickCursor()`
  `void`
  `scrollToRow(JTable table, int row)`
  `void`
  `selectRow(JTable table, int rowIndex)`
  `void`
  `selectRow(JTable table, String searchString)`
  `void`
  `setDividerPercentage(Class<? extends ComponentProvider> provider1, Class<? extends ComponentProvider> provider2, float percentage)`
  `protected void`
  `setDockIcon()`
  `void`
  `setListingFieldWidth(String fieldName, int width)`
  `void`
  `setSelected(JToggleButton button, boolean select)`
  `void`
  `setSelectedAnayzer(Object analysisPanel, String analyzerName)`
  `void`
  `setToolSize(int width, int height)`
  `void`
  `setUp()`
  `void`
  `setUser(String userName)`
  `void`
  `setWindowSize(Window window, int width, int height)`
  `void`
  `showAnalysisOptions(String selectedAnalyzerName)`
  `void`
  `showColumnSettings(GTable table, String colName)`
  `void`
  `showCommentDialog(String text)`
  `List<Component>`
  `showMenuBarMenu(String menuName, String... submenuNames)`
  `void`
  `showOptions(String optionsCategoryName)`
  `void`
  `showProgramOptions(String optionsCategoryName)`
  `<T extends ComponentProvider>
  T`
  `showProvider(Class<T> clazz)`
  `Component`
  `showTab(String title)`
  `void`
  `showTableColumn(GTable table, String columnName)`
  `Image`
  `takeSnippet(Rectangle bounds)`
  Crops a part of the current image, keeping what is inside the given bounds.
  `void`
  `tearDown()`
  `void`
  `topOfListing(long address)`
  Deprecated.
  `protected void`
  `writeFile(File imageFile)`

  ### Methods inherited from class ghidra.test.AbstractGhidraHeadedIntegrationTest

  `addPlugin, click, click, click, click, createApplicationConfiguration, createApplicationLayout, getAction, getPluginByName, saveTool, showDialogWithoutBlocking, showTool, waitForBusyTool, waitForProgram`

  ### Methods inherited from class ghidra.test.AbstractGhidraHeadlessIntegrationTest

  `applyCmd, cleanDbTestDir, createDefaultProgram, createDefaultProgram, debugProgramInTool, deleteProject, getLanguageCompilerSpecPair, getLanguageService, getPlugin, getSLEIGH_8051_LANGUAGE, getSLEIGH_X86_64_LANGUAGE, getSLEIGH_X86_LANGUAGE, getUniqueSymbol, getUniqueSymbol, getZ80_LANGUAGE, goTo, goTo, initializeSystemProperties, makeSelection, makeSelection, makeSelection, makeSelection, modifyProgram, modifyProgram, redo, redo, redo, replaceService, toAddressSet, toAddressSet, toAddressSet, tx, tx, undo, undo, undo, waitForScriptCompletion`

  ### Methods inherited from class docking.test.AbstractDockingTest

  `assertEnabled, assertIconsEqual, assertToggleButtonSelected, capture, clickComponentProvider, clickComponentProvider, close, close, closeAllWindows, closeAllWindows, closeAllWindowsAndFrames, closeProvider, closeSaveChangesDialog, createContext, createContext, createRenderedImage, createScreenImage, disposeErrorGUI, dockingSetUp, dockingTearDown, expandPath, expandTree, findButtonByActionName, findButtonByIcon, findButtonByText, findComponent, findComponentByName, getAction, getAction, getAction, getActionsByName, getActionsByOwner, getActionsByOwnerAndName, getClipboardText, getComponentProvider, getDialogComponent, getDialogComponentProvider, getDockableComponent, getLocalAction, getMessageText, getNode, getOpenWindowsAsString, getStatusText, getTitleForWindow, getURL, getWindow, getWindowByTitle, getWindowByTitleContaining, getWindows, isEnabled, isEnabled, isEnabled, isSelected, isUseErrorGUI, performAction, performAction, performAction, performAction, performDialogAction, pressButtonByText, pressButtonByText, printOpenWindows, selectPath, selectTabIfAvailable, setErrorGUIEnabled, setToggleActionSelected, setToggleActionSelected, setToggleButtonSelected, setToggleButtonSelected, showProvider, triggerActionKey, triggerActionKey, triggerBackspaceKey, triggerEnter, triggerEscapeKey, triggerKey, triggerKey, triggerKey, triggerText, triggerText, waitForComponentProvider, waitForComponentProvider, waitForComponentProvider, waitForDialogComponent, waitForDialogComponent, waitForDialogComponent, waitForErrorDialog, waitForInfoDialog, waitForJDialog, waitForJDialog, waitForTableModel, waitForTree, waitForUpdateOnChooser, waitForWindow, waitForWindow, waitForWindow, waitForWindowByName, waitForWindowByTitleContaining, writeImage, writeImage`

  ### Methods inherited from class generic.test.AbstractGuiTest

  `assertColorsEqual, clickListRange, clickMouse, clickMouse, clickTableCell, clickTableRange, doubleClick, dragMouse, editCell, executeOnSwingWithoutBlocking, findAbstractButtonByName, findAbstractButtonByText, findButtonByIcon, findButtonByText, findComponent, findComponent, findComponentByName, findComponentByName, findComponents, findComponents, findComponentsByName, findOwnedWindows, findPathToText, findTreePathToText, fixupGUI, getAllWindows, getRenderedTableCellValue, getText, leftClick, middleClick, moveMouse, postEvent, pressButton, pressButton, pressButtonByName, pressButtonByName, pressButtonByText, pressButtonByText, printMemory, privatewaitForSwing_SwingSafe, rightClick, runSwing, runSwing, runSwing, runSwingLater, runSwingWithException, setComboBoxSelection, setText, waitForPostedSwingRunnables, waitForSwing, waitForTasks, waitForTasks, yieldToSwing`

  ### Methods inherited from class generic.test.AbstractGenericTest

  `createStackTraceForAllThreads, createTempDirectory, createTempFile, createTempFile, createTempFileForTest, createTempFileForTest, createTempFilePath, createTempFilePath, deleteMatchingTempFiles, deleteSimilarTempFiles, findTestDataFile, getDebugFileDirectory, getFontMetrics, getInstanceField, getInstanceFieldByClassType, getLocalResourceFile, getTestDataDir, getTestDataDirectory, getTestDataFile, hasTestFailed, initializeLayout, invokeConstructor, invokeInstanceMethod, invokeInstanceMethod, loadTextResource, loadTextResource, resetLogging, setErrorsExpected, setInstanceField, setLogLevel, setLogLevel, testFailed, toString, windowForComponent`

  ### Methods inherited from class generic.test.AbstractGTest

  `assertArraysEqualOrdered, assertArraysEqualUnordered, assertArraysEqualUnordered, assertContainsExactly, assertContainsExactly, assertContainsString, assertContainsStringIgnoringCase, assertListEqualOrdered, assertListEqualOrdered, assertListEqualsArrayOrdered, assertListEqualsArrayUnordered, assertListEqualUnordered, bytes, failWithException, getName, getRandomInt, getRandomInt, getRandomString, getRandomString, getTestDirectoryPath, sleep, waitFor, waitFor, waitFor, waitFor, waitFor, waitForCondition, waitForCondition, waitForCondition, waitForConditionWithoutFailing, waitForValue, waitForValueWithoutFailing`

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

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

- ## Field Details

  - ### SAVE_CREATED_IMAGE_FILE_KEY

    protected static final String SAVE_CREATED_IMAGE_FILE_KEY
    See Also:
      - Constant Field Values

  - ### SAVE_CREATED_IMAGE_FILE

    protected static final boolean SAVE_CREATED_IMAGE_FILE

  - ### NEW_FILENAME_SUFFIX_KEY

    protected static final String NEW_FILENAME_SUFFIX_KEY
    See Also:
      - Constant Field Values

  - ### DEFAULT_FILENAME_SUFFIX

    protected static final String DEFAULT_FILENAME_SUFFIX
    See Also:
      - Constant Field Values

  - ### NEW_FILENAME_SUFFIX

    protected static final String NEW_FILENAME_SUFFIX

  - ### DIALOG_HEADER_HEIGHT

    protected static final int DIALOG_HEADER_HEIGHT
    See Also:
      - Constant Field Values

  - ### tool

    public PluginTool tool

  - ### env

    public TestEnv env

  - ### program

    public Program program

  - ### image

    public Image image

- ## Constructor Details

  - ### AbstractScreenShotGenerator

    public AbstractScreenShotGenerator()

- ## Method Details

  - ### newTestEnv

    protected TestEnv newTestEnv() throws Exception
    Throws:
      `Exception`

  - ### setUp

    public void setUp() throws Exception
    Throws:
      `Exception`

  - ### tearDown

    public void tearDown() throws Exception
    Throws:
      `Exception`

  - ### prepareTool

    public void prepareTool()

  - ### loadProgram

    public void loadProgram() throws Exception
    Throws:
      `Exception`

  - ### closeNonProgramArchives

    public void closeNonProgramArchives()

  - ### loadProgram

    public Program loadProgram(String programName)

  - ### exit

    public void exit()

  - ### setUser

    public void setUser(String userName)

  - ### setDockIcon

    protected void setDockIcon()

  - ### addr

    public Address addr(long value)

  - ### setToolSize

    public void setToolSize(int width, int height)

  - ### setWindowSize

    public void setWindowSize(Window window, int width, int height)

  - ### performAction

    public void performAction(String actionName, String owner, boolean wait)

  - ### performDialogAction

    public void performDialogAction(String actionName, boolean wait)

  - ### performAction

    public void performAction(String actionName, String owner, ComponentProvider contextProvider, boolean wait)

  - ### showOptions

    public void showOptions(String optionsCategoryName)

  - ### showProgramOptions

    public void showProgramOptions(String optionsCategoryName)

  - ### getCursorBounds

    public Rectangle getCursorBounds()

  - ### pressOkOnDialog

    public void pressOkOnDialog()

  - ### pressButtonOnDialog

    public void pressButtonOnDialog(String buttonText)

  - ### captureIsolatedComponent

    public void captureIsolatedComponent(JComponent component, int width, int height)

  - ### captureComponent

    public Image captureComponent(Component component)

  - ### captureIsolatedProviderWindow

    public void captureIsolatedProviderWindow(Class<? extends ComponentProvider> clazz, int width, int height)
    The same as `captureIsolatedProvider(Class, int, int)` except this method will also capture the containing window.
    Parameters:
      `clazz` - the provider class
      `width` - the width of the capture
      `height` - the height of the capture

  - ### captureIsolatedProvider

    public void captureIsolatedProvider(Class<? extends ComponentProvider> clazz, int width, int height)

  - ### captureIsolatedProvider

    public void captureIsolatedProvider(ComponentProvider provider, int width, int height)

  - ### moveProviderToFront

    public void moveProviderToFront(ComponentProvider provider, int width, int height)

  - ### moveProviderToFront

    public void moveProviderToFront(ComponentProvider provider)

  - ### moveWindowUp

    public void moveWindowUp(Window window, int yOffset)

  - ### moveProviderToItsOwnWindow

    public Window moveProviderToItsOwnWindow(ComponentProvider provider)

  - ### moveProviderToItsOwnWindow

    public Window moveProviderToItsOwnWindow(ComponentProvider provider, int width, int height)

  - ### getDockableComponent

    public DockableComponent getDockableComponent(ComponentProvider provider)

  - ### moveProvider

    public void moveProvider(ComponentProvider movee, ComponentProvider relativeTo, WindowPosition position)

  - ### captureMenu

    public void captureMenu()

  - ### getPopupMenu

    public JPopupMenu getPopupMenu()

  - ### captureProvider

    public void captureProvider(Class<? extends ComponentProvider> clazz)

  - ### captureProvider

    public void captureProvider(ComponentProvider provider)

  - ### captureProvider

    public void captureProvider(String name)

  - ### captureProviderWithScreenShot

    public void captureProviderWithScreenShot(ComponentProvider provider)
    Captures the provider by using a screen shot and not by painting the provider directly (as does `captureProvider(ComponentProvider)`). Use this method if you need to capture the provider along with any popup windows.
    Parameters:
      `provider` - the provider

  - ### captureProviderWindow

    public void captureProviderWindow(String name)
    Captures the window, including decorations. This will use a `Robot` to create a screen capture, which has the effect of getting all items within the window bounds. This method is needed if you wish to capture child windows, like popups/hovers.

    Other capture methods will not use the screen capture mechanism, but rather will directly render the given component. In this case, subordinate windows will not be captured. For example, see `captureProvider(Class)`.

    Parameters:
      `name` - the provider's name

  - ### captureProviderWindow

    public void captureProviderWindow(Class<? extends ComponentProvider> clazz)
    Captures the window, including decorations. This will use a `Robot` to create a screen capture, which has the effect of getting all items within the window bounds. This method is needed if you wish to capture child windows, like popups/hovers.

    Other capture methods will not use the screen capture mechanism, but rather will directly render the given component. In this case, subordinate windows will not be captured. For example, see `captureProvider(Class)`.

    Parameters:
      `clazz` - the provider's class

  - ### captureProviderWindow

    public void captureProviderWindow(ComponentProvider provider)
    Captures the window, including decorations. This will use a `Robot` to create a screen capture, which has the effect of getting all items within the window bounds. This method is needed if you wish to capture child windows, like popups/hovers.

    Other capture methods will not use the screen capture mechanism, but rather will directly render the given component. In this case, subordinate windows will not be captured. For example, see `captureProvider(Class)`.

    Parameters:
      `provider` - the provider

  - ### captureProviderWindow

    public void captureProviderWindow(String name, int width, int height)
    Captures the window, including decorations. This will use a `Robot` to create a screen capture, which has the effect of getting all items within the window bounds. This method is needed if you wish to capture child windows, like popups/hovers.

    Other capture methods will not use the screen capture mechanism, but rather will directly render the given component. In this case, subordinate windows will not be captured. For example, see `captureProvider(Class)`.

    Parameters:
      `name` - the provider's name
      `width` - the desired width
      `height` - the desired height

  - ### captureProviderWindow

    public void captureProviderWindow(ComponentProvider provider, int width, int height)
    Captures the window, including decorations. This will use a `Robot` to create a screen capture, which has the effect of getting all items within the window bounds. This method is needed if you wish to capture child windows, like popups/hovers.

    Other capture methods will not use the screen capture mechanism, but rather will directly render the given component. In this case, subordinate windows will not be captured. For example, see `captureProvider(Class)`.

    Parameters:
      `provider` - the provider's name
      `width` - the desired width
      `height` - the desired height

  - ### showProvider

    public <T extends ComponentProvider> T showProvider(Class<T> clazz)

  - ### closeProvider

    public void closeProvider(Class<? extends ComponentProvider> clazz)

  - ### captureActionIcon

    public void captureActionIcon(String actionName)

  - ### captureIcon

    public void captureIcon(Icon icon)

  - ### captureDialog

    public void captureDialog()

  - ### getDialog

    public DialogComponentProvider getDialog()

  - ### getDialog

    public DialogComponentProvider getDialog(Class<? extends DialogComponentProvider> clazz)

  - ### captureDialog

    public void captureDialog(int width, int height)

  - ### paintFix

    protected void paintFix(Window window)

  - ### captureDialog

    public void captureDialog(String title)

  - ### captureDialog

    public void captureDialog(Class<? extends DialogComponentProvider> clazz)

  - ### captureDialog

    public void captureDialog(DialogComponentProvider provider)

  - ### captureDialog

    public void captureDialog(Class<? extends DialogComponentProvider> clazz, int width, int height)

  - ### captureWindow

    public void captureWindow()

  - ### captureWindow

    public void captureWindow(Window window)

  - ### captureWindow

    public void captureWindow(Window window, int width, int height)

  - ### captureToolWindow

    public void captureToolWindow(int width, int height)

  - ### captureDialog

    public void captureDialog(Dialog dialog)

  - ### captureDialog

    public void captureDialog(Dialog dialog, int width, int height)

  - ### captureListingField

    public void captureListingField(long address, String fieldName, int padding)

  - ### generateImage

    public void generateImage(Component c)

  - ### captureComponents

    public void captureComponents(List<Component> comps)

  - ### captureMenuBarMenu

    public void captureMenuBarMenu(String menuName, String... subMenuNames)

  - ### captureMenuBarMenuHierachy

    public void captureMenuBarMenuHierachy(String menuName, String... subMenuNames)

  - ### captureListingRange

    public void captureListingRange(long start, long end, int width)

  - ### error

    public void error(Exception e)

  - ### setListingFieldWidth

    public void setListingFieldWidth(String fieldName, int width)

  - ### getField

    public Field getField(Point point)

  - ### leftClickCursor

    public void leftClickCursor()

  - ### rightClickCursor

    public void rightClickCursor()

  - ### middleClickCursor

    public void middleClickCursor()

  - ### doubleClickCursor

    public void doubleClickCursor()

  - ### selectRow

    public void selectRow(JTable table, int rowIndex)

  - ### setSelected

    public void setSelected(JToggleButton button, boolean select)

  - ### hideTableColumn

    public void hideTableColumn(GTable table, String columnName)

  - ### showMenuBarMenu

    public List<Component> showMenuBarMenu(String menuName, String... submenuNames)

  - ### showColumnSettings

    public void showColumnSettings(GTable table, String colName)

  - ### showTableColumn

    public void showTableColumn(GTable table, String columnName)

  - ### setSelectedAnayzer

    public void setSelectedAnayzer(Object analysisPanel, String analyzerName)

  - ### showCommentDialog

    public void showCommentDialog(String text)

  - ### prepareCommentsDialog

    public void prepareCommentsDialog(ghidra.app.plugin.core.comments.CommentsDialog dialog, String annotationText)

  - ### createBookmark

    public void createBookmark(long address)

  - ### selectRow

    public void selectRow(JTable table, String searchString)

  - ### scrollToRow

    public void scrollToRow(JTable table, int row)

  - ### findRowByPartialText

    public int findRowByPartialText(JTable table, String searchString)

  - ### performMemorySearch

    public void performMemorySearch(String searchString)

  - ### removeField

    public void removeField(String fieldName)

  - ### showAnalysisOptions

    public void showAnalysisOptions(String selectedAnalyzerName)

  - ### removeFlowArrows

    public void removeFlowArrows()

  - ### makeSelection

    public void makeSelection(AddressSet addrSet)

  - ### addSelection

    public void addSelection(long start, long end)

  - ### makeSelection

    public void makeSelection(long start, long end)

  - ### go

    public void go(long address)

  - ### goToListing

    public void goToListing(long address)

  - ### goToListing

    public void goToListing(long address, boolean scrollToMiddle)

  - ### goToListing

    public void goToListing(long address, String fieldName, boolean scrollToMiddle)

  - ### positionCursor

    public void positionCursor(long address)

  - ### positionCursor

    public void positionCursor(long address, String fieldName)

  - ### positionListingTop

    public void positionListingTop(long address)

  - ### positionListingCenter

    public void positionListingCenter(long address)

  - ### topOfListing

    @Deprecated public void topOfListing(long address)
    Deprecated.

  - ### loadPlugin

    public Plugin loadPlugin(Class<? extends Plugin> clazz)

  - ### loadPlugin

    public Plugin loadPlugin(String className)

  - ### getProvider

    public ComponentProvider getProvider(String name)

  - ### getProvider

    public <T extends ComponentProvider> T getProvider(Class<T> clazz)

  - ### getDockableComponent

    public DockableComponent getDockableComponent(Class<? extends ComponentProvider> clazz)

  - ### findProviderToolBarButton

    public JButton findProviderToolBarButton(ComponentProvider provider, String actionName)

  - ### address

    @Deprecated public Address address(long value)
    Deprecated.
    use `addr(long)` instead
    Parameters:
      `value` - the address's long value
    Returns:
      the new address

  - ### getBounds

    public Rectangle getBounds(JComponent component)

  - ### drawRectangleWithDropShadowAround

    public void drawRectangleWithDropShadowAround(JComponent component, Color color, int padding)

  - ### drawRectangleAround

    public Rectangle drawRectangleAround(JComponent component, Color color, int padding)

  - ### drawRectangleAround

    public Rectangle drawRectangleAround(JComponent component, JComponent root, Color color, int padding)
    Draws a rectangle around the given component. The root parameter is used to calculate screen coordinates. This allows you to capture a sub-component of a UI, drawing rectangles around children of said sub-component.

    If you are unsure of what to pass for `root`, the call `drawRectangleAround(JComponent, Color, int)` instead.

    Parameters:
      `component` - the component to be en-rectangled
      `root` - the outermost container widget being displayed; null implies a top-level parent
      `color` - the rectangle color
      `padding` - the space between the rectangle and the component; more space makes the component more visible
    Returns:
      the bounds of the drawn rectangle

  - ### drawRectangle

    public Rectangle drawRectangle(Color c, Rectangle r, int padding, int thickness)

  - ### drawBorder

    public void drawBorder(Color c)

  - ### drawRectangle

    public void drawRectangle(Color c, Rectangle rect, int thickness)

  - ### fillRectangle

    public void fillRectangle(Color c, Rectangle rect)

  - ### drawOval

    public void drawOval(Color c, Rectangle rect, int thickness)

  - ### drawText

    public void drawText(String text, Color color, Point start, float size)

  - ### drawText

    public void drawText(String text, Color color, Point start, Font font)

  - ### drawLine

    public void drawLine(Color c, int thickness, Point start, Point end)

  - ### drawArrow

    public void drawArrow(Color c, Point start, Point end)

  - ### drawArrow

    public void drawArrow(Color c, int thickness, Point start, Point end, int arrowSize)

  - ### writeFile

    protected void writeFile(File imageFile)

  - ### readImage

    protected BufferedImage readImage(File imageFile)

  - ### crop

    public Image crop(Rectangle bounds)

  - ### padImage

    public Image padImage(Color c, int top, int left, int right, int bottom)

  - ### placeImagesSideBySide

    public Image placeImagesSideBySide(Image left, Image right)

  - ### createEmptyImage

    public BufferedImage createEmptyImage(int width, int height)

  - ### takeSnippet

    public Image takeSnippet(Rectangle bounds)
    Crops a part of the current image, keeping what is inside the given bounds. This method creates a shape such that the top and bottom of the cropped image have a jagged line, looking somewhat like a sideways lightening bolt.
    Parameters:
      `bounds` - the bounds to keep
    Returns:
      the snippet

  - ### setDividerPercentage

    public void setDividerPercentage(Class<? extends ComponentProvider> provider1, Class<? extends ComponentProvider> provider2, float percentage)

  - ### showTab

    public Component showTab(String title)