Class GhidraFileChooserPanel

  • All Implemented Interfaces:
    Droppable, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

    public class GhidraFileChooserPanel
    extends javax.swing.JPanel
    implements Droppable
    Panel for entering a file name that includes a title border, a text field for entering a filename, and a button for bringing up a file chooser dialog.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int INPUT_MODE
      This mode denotes that only existing files will be chosen for the purpose of reading.
      static int OUTPUT_MODE
      This mode denotes that existing files (or new files) will be chosen for the purpose of writing.
      • 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

      Constructors 
      Constructor Description
      GhidraFileChooserPanel​(java.lang.String title, java.lang.String propertyName, java.lang.String defaultFileName, boolean createBorder, int mode)
      Constructs a new GhidraFileChooserPanel
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(java.lang.Object obj, java.awt.dnd.DropTargetDropEvent e, java.awt.datatransfer.DataFlavor f)
      Add the object to the droppable component.
      void addDocumentListener​(javax.swing.event.DocumentListener dl)
      Adds a document listener to the text field.
      void dragUnderFeedback​(boolean ok, java.awt.dnd.DropTargetDragEvent e)
      Set drag feedback according to the ok parameter
      java.lang.String getCurrentDirectory()  
      java.lang.String getFileName()
      Returns the filename currently in the text field.
      boolean isDropOk​(java.awt.dnd.DropTargetDragEvent e)
      Return true if is OK to drop the transferable at the location specified the event
      void setEnabled​(boolean enabled)  
      void setFileFilter​(GhidraFileFilter filter)
      Sets the file filter.
      void setFileName​(java.lang.String path)
      Sets the textfield with the given filename.
      void setFileSelectionMode​(GhidraFileChooserMode mode)
      Sets the GhidraFileChooser to allow the user to just select files, just select directories, or select both files and directories.
      void setListener​(GhidraFileChooserPanelListener listener)
      Sets the listener.
      void undoDragUnderFeedback()
      Revert back to normal if any drag feedback was set
      • 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, 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • INPUT_MODE

        public static final int INPUT_MODE
        This mode denotes that only existing files will be chosen for the purpose of reading.
        See Also:
        Constant Field Values
      • OUTPUT_MODE

        public static final int OUTPUT_MODE
        This mode denotes that existing files (or new files) will be chosen for the purpose of writing. If an existing file is selected the user will be prompted to confirm overwrite.
        See Also:
        Constant Field Values
    • Constructor Detail

      • GhidraFileChooserPanel

        public GhidraFileChooserPanel​(java.lang.String title,
                                      java.lang.String propertyName,
                                      java.lang.String defaultFileName,
                                      boolean createBorder,
                                      int mode)
        Constructs a new GhidraFileChooserPanel
        Parameters:
        title - the title for this panel
        propertyName - the property name to save state
        defaultFileName - the default file name.
        createBorder - flag to create the border or not.
    • Method Detail

      • setFileFilter

        public void setFileFilter​(GhidraFileFilter filter)
        Sets the file filter.
        Parameters:
        filter - the new file filter
      • addDocumentListener

        public void addDocumentListener​(javax.swing.event.DocumentListener dl)
        Adds a document listener to the text field.
        Parameters:
        dl - the document listener to add.
      • getFileName

        public java.lang.String getFileName()
        Returns the filename currently in the text field.
        Returns:
        the filename currently in the text field
      • getCurrentDirectory

        public java.lang.String getCurrentDirectory()
      • setFileName

        public void setFileName​(java.lang.String path)
        Sets the textfield with the given filename.
        Parameters:
        path - the name of the file to put in the text field.
      • setEnabled

        public void setEnabled​(boolean enabled)
        Overrides:
        setEnabled in class javax.swing.JComponent
        See Also:
        Component.setEnabled(boolean)
      • add

        public void add​(java.lang.Object obj,
                        java.awt.dnd.DropTargetDropEvent e,
                        java.awt.datatransfer.DataFlavor f)
        Description copied from interface: Droppable
        Add the object to the droppable component. The DropTargetAdapter calls this method from its drop() method.
        Specified by:
        add in interface Droppable
        Parameters:
        obj - Transferable object that is to be dropped.
        e - has current state of drop operation
        f - represents the opaque concept of a data format as would appear on a clipboard, during drag and drop.
        See Also:
        Droppable.add(java.lang.Object, java.awt.dnd.DropTargetDropEvent, java.awt.datatransfer.DataFlavor)
      • setFileSelectionMode

        public void setFileSelectionMode​(GhidraFileChooserMode mode)
        Sets the GhidraFileChooser to allow the user to just select files, just select directories, or select both files and directories. The default is GhidraFileChooserMode.FILES_ONLY.
        Parameters:
        mode - the type of files to be displayed
        Throws:
        java.lang.IllegalArgumentException - if mode is an illegal Dialog mode
      • isDropOk

        public boolean isDropOk​(java.awt.dnd.DropTargetDragEvent e)
        Description copied from interface: Droppable
        Return true if is OK to drop the transferable at the location specified the event
        Specified by:
        isDropOk in interface Droppable
        Parameters:
        e - event that has current state of drag and drop operation
        Returns:
        true if OK
        See Also:
        Droppable.isDropOk(java.awt.dnd.DropTargetDragEvent)