Package ghidra.framework.main.datatree

# Class DataTree

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
docking.widgets.tree.GTree
ghidra.framework.main.datatree.DataTree

All Implemented Interfaces:
  `BusyListener`, `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`

public class DataTree extends GTree
Tree that shows the folders and domain files in a Project

See Also:
  - Serialized Form

- ## 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`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clearSelection()`
  `GTreeNode`
  `getLastSelectedPathComponent()`
  `static DomainFolder`
  `getRealInternalFolderForNode(GTreeNode node)`
  Method returns either a `DomainFolder` within the node's project or null.
  `int`
  `getSelectionCount()`
  `protected boolean`
  `isAddToPopup(DockingAction action)`
  A method that subclasses can override to decide if the given action should appear in the popup menu.
  `void`
  `removeSelectionPath(TreePath path)`
  `void`
  `stopEditing()`

  ### Methods inherited from class docking.widgets.tree.GTree

  `addGTModelListener, addGTreeSelectionListener, addMouseListener, addSelectionPath, addTreeExpansionListener, cancelEditing, cancelWork, clearFilter, clearSelectionPaths, clearSizeCache, collapseAll, createMouseListenerDelegate, createSharedActions, dispose, expandAll, expandAndSelectPaths, expandedStateRestored, expandPath, expandPath, expandPaths, expandPaths, expandTree, filterChanged, getCellEditor, getCellRenderer, getDragNDropHandler, getExpandedPaths, getExpandedPaths, getFilter, getFilterField, getFilterProvider, getFilterText, getGTSelectionModel, getJTree, getModel, getModelNode, getModelNodeForPath, getModelRoot, getMouseListeners, getNodeForLocation, getPathBounds, getPathForLocation, getPathForRow, getPreferenceKey, getRowCount, getRowForPath, getScrollPane, getSelectedNodes, getSelectionModel, getSelectionPath, getSelectionPaths, getToolTipText, getTreeState, getTreeState, getViewNode, getViewNodeForPath, getViewPosition, getViewRect, getViewRoot, hasFilterText, isBusy, isCollapsed, isDisposed, isEditing, isExpanded, isFiltered, isFilteringEnabled, isMyJTree, isPathEditable, isPathSelected, isRootAllowedToCollapse, isRootVisible, printEvent, refilterLater, refilterLater, refilterNow, removeGTModelListener, removeGTreeSelectionListener, removeMouseListener, removeTreeExpansionListener, restoreTreeState, runBulkTask, runTask, runTask, scrollPathToVisible, setAccessibleNamePrefix, setActiveDropTargetNode, setBusy, setCellEditor, setCellRenderer, setDataTransformer, setDoubleClickExpansionEnabled, setDragNDropHandler, setEditable, setEnabled, setEventsEnabled, setFilterFieldEnabled, setFilteringEnabled, setFilterProvider, setFilterRestoreState, setFilterText, setFilterVisible, setHorizontalScrollPolicy, setNodeEditable, setPaintHandlesForLeafNodes, setRootNode, setRootNodeAllowedToCollapse, setRootVisible, setRowHeight, setScrollableUnitIncrement, setSelectedNode, setSelectedNodeByNamePath, setSelectedNodeByPathName, setSelectedNodes, setSelectedNodes, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionPaths, setSelectionPaths, setSelectionPaths, setSeletedNodeByName, setShowsRootHandles, setTransferHandler, setViewPosition, startEditing, startEditing, toString, updateModelFilter, whenNodeIsReady, whenNodeIsReady`

  ### 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, 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, 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, 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, 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, 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, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

- ## Method Details

  - ### isAddToPopup

    protected boolean isAddToPopup(DockingAction action)
    Description copied from class: `GTree`
    A method that subclasses can override to decide if the given action should appear in the popup menu. Most subclasses will not need to override this method. An example for overriding this method is one of the subclasses that have their own version of one of the built-in actions, such as Expand All. Some clients have a custom expand action. In that case, the client wants their action in the menu and not the built-in version.
    Overrides:
      `isAddToPopup` in class `GTree`
    Parameters:
      `action` - the action
    Returns:
      true to have the action appear in the popup; the default is true

  - ### clearSelection

    public void clearSelection()

  - ### getSelectionCount

    public int getSelectionCount()

  - ### getLastSelectedPathComponent

    public GTreeNode getLastSelectedPathComponent()

  - ### removeSelectionPath

    public void removeSelectionPath(TreePath path)

  - ### stopEditing

    public void stopEditing()
    Overrides:
      `stopEditing` in class `GTree`

  - ### getRealInternalFolderForNode

    public static DomainFolder getRealInternalFolderForNode(GTreeNode node)
    Method returns either a `DomainFolder` within the node's project or null. The following cases indicate how the return value is established based on the specified `node`:
    1. `DomainFolderNode` - the node's domain folder will be returned
    2. `DomainFileNode` (folder-link content type) - the referenced folder within the node's project will be returned under the following conditions, otherwise null will be returned:
       - The file corresponds to a folder-link, and
       - the folder-link ultimately refers to a domain folder within the same project (i.e., a URL-based link path is not used and link status is `LinkHandler.LinkStatus.INTERNAL`).
    3. `DomainFileNode` (normal file or file-link) - the node's parent folder will be returned.

    Folder-links which reference other internal folder-links will be followed until a folder can be identified or the link-chain is considered is `LinkHandler.LinkStatus.BROKEN` or `LinkHandler.LinkStatus.EXTERNAL` in which case null will be returned.

    A `LinkedDomainFolder` will always be resolved to its real folder which it corresponds to.

    Parameters:
      `node` - Data Tree Node to be evaluated for its real internal folder
    Returns:
      internal project folder which corresponds to the specified node.