Package ghidra.app.tablechooser
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-nullTableChooserExecutor, 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
SwingWorkeris created, which will put the processing into a background thread. Further, by using multiple workers, the work will be performed in parallel.
-
-
Field Summary
-
Fields inherited from class docking.DialogComponentProvider
applyButton, buttonPanel, cancelButton, dismissButton, okButton, rootPanel
-
-
Constructor Summary
Constructors Constructor Description TableChooserDialog(PluginTool tool, TableChooserExecutor executor, Program program, java.lang.String title, Navigatable navigatable)TableChooserDialog(PluginTool tool, TableChooserExecutor executor, Program program, java.lang.String title, Navigatable navigatable, boolean isModal)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(AddressableRowObject rowObject)Adds the given object to this dialog.voidaddCustomColumn(ColumnDisplay<?> columnDisplay)voidclearSelection()voidclose()protected voiddialogClosed()Override this method if you want to do something when the dialog is made invisiblevoiddispose()intgetRowCount()java.util.List<AddressableRowObject>getSelectedRowObjects()int[]getSelectedRows()booleanisBusy()voidnavigatableRemoved(Navigatable nav)protected voidokCallback()The callback method for when the "OK" button is pressed.voidremove(AddressableRowObject rowObject)Removes the given object from this dialog.voidselectRows(int... rows)voidsetClosedListener(Callback callback)Sets the given listener that will get notified when this dialog is closedvoidsetMessage(java.lang.String message)voidsetSortColumn(int index)Sets the default sorted column for this dialog.voidsetSortState(TableSortState state)Sets the column sort state for this dialog.voidshow()-
Methods inherited from class docking.DialogComponentProvider
addAction, addApplyButton, addButton, addCancelButton, addDismissButton, addOKButton, addWorkPanel, alertMessage, alertMessage, applyCallback, cancelCallback, cancelCurrentTask, clearScheduledTask, clearStatusText, dialogShown, dismissCallback, doInitialize, escapeCallback, executeProgressTask, getActionContext, getActions, getBackground, getBounds, getComponent, getDefaultButton, getDefaultSize, getDialogSize, getFocusComponent, getGlassPane, getHelpLocatdion, getId, getIntialLocation, getLocationOnScreen, getParent, getPreferredSize, getRemberSize, getRememberLocation, getStatusColor, getStatusLabel, getStatusText, getTaskMonitorComponent, getTaskScheduler, getTitle, getUseSharedLocation, hideTaskMonitorComponent, isApplyEnabled, isCancelEnabled, isModal, isOKEnabled, isResizeable, isRunningTask, isShowing, isTransient, isVisible, notifyContextChanged, removeAction, removeButton, removeWorkPanel, repack, setApplyEnabled, setApplyToolTip, setBackground, setCancelButtonText, setCancelEnabled, setCancelToolTip, setCursor, setDefaultButton, setDefaultSize, setDialogSize, setDismissToolTip, setFocusComponent, setGlassPane, setHelpLocation, setInitialLocation, setMinimumSize, setMinimumSize, setOkButtonText, setOkEnabled, setOkToolTip, setPreferredSize, setRememberLocation, setRememberSize, setResizable, setStatusJustification, setStatusText, setStatusText, setStatusText, setTitle, setTransient, setUseSharedLocation, showProgressBar, showTaskMonitorComponent, stopProgressTimer, taskCancelled, taskCompleted, toFront, toString, waitForCurrentTask
-
-
-
-
Constructor Detail
-
TableChooserDialog
public TableChooserDialog(PluginTool tool, TableChooserExecutor executor, Program program, java.lang.String title, Navigatable navigatable, boolean isModal)
-
TableChooserDialog
public TableChooserDialog(PluginTool tool, TableChooserExecutor executor, Program program, java.lang.String title, Navigatable navigatable)
-
-
Method Detail
-
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
-
show
public void show()
-
close
public void close()
- Overrides:
closein classDialogComponentProvider
-
dialogClosed
protected void dialogClosed()
Description copied from class:DialogComponentProviderOverride this method if you want to do something when the dialog is made invisible- Overrides:
dialogClosedin classDialogComponentProvider
-
okCallback
protected void okCallback()
Description copied from class:DialogComponentProviderThe callback method for when the "OK" button is pressed.- Overrides:
okCallbackin classDialogComponentProvider
-
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:
java.lang.IllegalArgumentException- if an invalid column is requested for sorting- See Also:
setSortState(TableSortState)
-
setSortState
public void setSortState(TableSortState state)
Sets the column sort state for this dialog. TheTableSortStateallows 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:
java.lang.IllegalArgumentException- if an invalid column is requested for sorting- See Also:
setSortColumn(int)
-
navigatableRemoved
public void navigatableRemoved(Navigatable nav)
- Specified by:
navigatableRemovedin interfaceNavigatableRemovalListener
-
setMessage
public void setMessage(java.lang.String message)
-
getRowCount
public int getRowCount()
-
clearSelection
public void clearSelection()
-
selectRows
public void selectRows(int... rows)
-
getSelectedRows
public int[] getSelectedRows()
-
getSelectedRowObjects
public java.util.List<AddressableRowObject> getSelectedRowObjects()
-
dispose
public void dispose()
- Overrides:
disposein classDialogComponentProvider
-
-