Package docking.widgets.pathmanager
Class PathnameTablePanel
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
docking.widgets.pathmanager.PathnameTablePanel
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
Component that has a table to show pathnames; the panel includes buttons to control the order of
the paths, and to add and remove paths. The add button brings up a file chooser. Call the
setFileChooser() method to control how the file chooser should behave. If the table entries
should not be edited, call setEditingEnabled(false).
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
ConstructorDescriptionPathnameTablePanel
(String[] paths, boolean enableEdits, boolean addToTop, boolean ordered) Construct a new PathnameTablePanel.PathnameTablePanel
(String[] paths, Callback resetCallback, boolean enableEdits, boolean addToTop, boolean ordered, boolean supportsDotPath) Construct a new PathnameTablePanel with a reset button -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Clear the paths in the table.String[]
getPaths()
getTable()
protected int
void
setAddToTop
(boolean addToTop) Set whether new paths should be added to the top of the table (true) or at the end of the table (false).void
setEditingEnabled
(boolean enableEdits) Set whether the entries in the table can be edited.void
setFileChooserProperties
(String title, String preferenceForLastSelectedDir, GhidraFileChooserMode selectionMode, boolean allowMultiSelection, GhidraFileFilter filter) Set properties on the file chooser that is displayed when the "Add" button is pressed.void
setOrdered
(boolean ordered) Set whether the order of entries in the table matters.void
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
PathnameTablePanel
Construct a new PathnameTablePanel.- Parameters:
paths
- list of paths to show; may be nullenableEdits
- true to allow editing of entries directly in the table, i.e., via the cell editor. The add and remove buttons still allow modification of the list.addToTop
- true if the add button should add entries to the top of the list. False to add entries to the bottom. This behavior is overridden if ifordered
is false.ordered
- true if the order of entries matters. If so, up and down buttons are provided so the user may arrange the entries. If not, entries are sorted alphabetically.
-
PathnameTablePanel
public PathnameTablePanel(String[] paths, Callback resetCallback, boolean enableEdits, boolean addToTop, boolean ordered, boolean supportsDotPath) Construct a new PathnameTablePanel with a reset button- Parameters:
paths
- list of paths to show; may be nullresetCallback
- callback containing the action to perform if the reset button is pressedenableEdits
- true to allow editing of entries directly in the table, i.e., via the cell editor. The add and remove buttons still allow modification of the list.addToTop
- true if the add button should add entries to the top of the list. False to add entries to the bottom. This behavior is overridden if ifordered
is false.ordered
- true if the order of entries matters. If so, up and down buttons are provided so the user may arrange the entries. If not, entries are sorted alphabetically.supportsDotPath
- true if the add button should support adding the "." path. If so, the user will be prompted to choose from a file browser, or adding ".".
-
-
Method Details
-
setFileChooserProperties
public void setFileChooserProperties(String title, String preferenceForLastSelectedDir, GhidraFileChooserMode selectionMode, boolean allowMultiSelection, GhidraFileFilter filter) Set properties on the file chooser that is displayed when the "Add" button is pressed.- Parameters:
title
- title of the file chooserpreferenceForLastSelectedDir
- Preference to use as the current directory in the file chooserselectionMode
- mode defined in GhidraFileFilter, e.g., GhidraFileFilter.FILES_ONLYallowMultiSelection
- true if multiple files can be selectedfilter
- filter to use; may be null if no filtering is required
-
setEditingEnabled
public void setEditingEnabled(boolean enableEdits) Set whether the entries in the table can be edited.- Parameters:
enableEdits
- false means to not allow editing; the table is editable by default.
-
setAddToTop
public void setAddToTop(boolean addToTop) Set whether new paths should be added to the top of the table (true) or at the end of the table (false).- Parameters:
addToTop
- true means to add to the top of the table
-
setOrdered
public void setOrdered(boolean ordered) Set whether the order of entries in the table matters.WARNING: When this is set to false, the entries are immediately sorted and the up and down buttons removed. Setting it back to true will replace the buttons, but will not restore the order. In general, this should be set once, at the start of the table's life cycle.
- Parameters:
ordered
- true means the user can control the order, false means they cannot.
-
getPaths
-
setPaths
-
getTable
-
clear
public void clear()Clear the paths in the table. -
promptConfirmReset
protected int promptConfirmReset()
-