Class TableChooserDialog

java.lang.Object
docking.DialogComponentProvider
ghidra.app.tablechooser.TableChooserDialog
All Implemented Interfaces:
ActionContextProvider, NavigatableRemovalListener, StatusListener, TaskListener

public class TableChooserDialog extends DialogComponentProvider implements NavigatableRemovalListener
Dialog to show a table of items. If the dialog is constructed with a non-null TableChooserExecutor, then a button will be placed in the dialog, allowing the user to perform the action defined by the executor.

Each button press will use the selected items as the items to be processed. While the items are scheduled to be processed, they will still be in the table, painted light gray. Attempting to reschedule any of these pending items will have no effect. Each time the button is pressed, a new SwingWorker is created, which will put the processing into a background thread. Further, by using multiple workers, the work will be performed in parallel.

  • Constructor Details

  • Method Details

    • setClosedListener

      public void setClosedListener(Callback callback)
      Sets the given listener that will get notified when this dialog is closed
      Parameters:
      callback - the callback to notify
    • add

      public void add(AddressableRowObject rowObject)
      Adds the given object to this dialog. This method can be called from any thread.
      Parameters:
      rowObject - the object to add
    • remove

      public void remove(AddressableRowObject rowObject)
      Removes the given object from this dialog. Nothing will happen if the given item is not in this dialog. This method can be called from any thread.
      Parameters:
      rowObject - the object to remove
    • contains

      public boolean contains(AddressableRowObject rowObject)
      Returns true if the given object is still in the dialog. Clients can use this method to see if the user has already processed the given item.
      Parameters:
      rowObject - the row object
      Returns:
      true if the object is still in the dialog
    • show

      public void show()
    • close

      public void close()
      Overrides:
      close in class DialogComponentProvider
    • dialogClosed

      protected void dialogClosed()
      Description copied from class: DialogComponentProvider
      Override this method if you want to do something when the dialog is made invisible
      Overrides:
      dialogClosed in class DialogComponentProvider
    • okCallback

      protected void okCallback()
      Description copied from class: DialogComponentProvider
      The callback method for when the "OK" button is pressed.
      Overrides:
      okCallback in class DialogComponentProvider
    • isBusy

      public boolean isBusy()
    • addCustomColumn

      public void addCustomColumn(ColumnDisplay<?> columnDisplay)
    • setSortColumn

      public void setSortColumn(int index)
      Sets the default sorted column for this dialog.

      This method should be called after all custom columns have been added via addCustomColumn(ColumnDisplay).

      Parameters:
      index - the view's 0-based column index
      Throws:
      IllegalArgumentException - if an invalid column is requested for sorting
      See Also:
    • setSortState

      public void setSortState(TableSortState state)
      Sets the column sort state for this dialog. The TableSortState allows for combinations of sorted columns in ascending or descending order.

      This method should be called after all custom columns have been added via addCustomColumn(ColumnDisplay).

      Parameters:
      state - the sort state
      Throws:
      IllegalArgumentException - if an invalid column is requested for sorting
      See Also:
    • setMessage

      public void setMessage(String message)
    • getRowCount

      public int getRowCount()
    • clearSelection

      public void clearSelection()
    • selectRows

      public void selectRows(int... rows)
    • getSelectedRows

      public int[] getSelectedRows()
    • getSelectedRowObjects

      public List<AddressableRowObject> getSelectedRowObjects()
    • dispose

      public void dispose()
      Description copied from class: DialogComponentProvider
      Disposes this dialog. Only call this when the dialog is no longer used. Calling this method will close the dialog if it is open.
      Overrides:
      dispose in class DialogComponentProvider