Package ghidra.framework.main.datatree
Class ProjectDataTreePanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- ghidra.framework.main.datatree.ProjectDataTreePanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible
public class ProjectDataTreePanel extends javax.swing.JPanelPanel that contains a DataTree for showing project data. Controls whether the data tree supports drag and drop operations.- 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
-
-
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
-
-
Constructor Summary
Constructors Constructor Description ProjectDataTreePanel(FrontEndPlugin plugin)Construct an empty panel that is going to be used as the active panel.ProjectDataTreePanel(java.lang.String projectName, boolean isActiveProject, FrontEndPlugin plugin, DomainFileFilter filter)Construct a new DataTreePanel.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTreeMouseListener(java.awt.event.MouseListener l)Add a mouse listener to the data tree.voidaddTreeSelectionListener(GTreeSelectionListener l)Add the tree selection listener to the data tree.voidcheckOpen(java.awt.event.MouseEvent e)voidcloseRootFolder()Close the root folder for this data tree.voiddispose()Notification that panel is being disposed.voidfindAndSelect(java.lang.String s)Find a node that has the given name and select it.ActionContextgetActionContext(ComponentProvider provider, java.awt.event.MouseEvent e)Get the data tree node that is selected.DataTreegetDataTree()get the data tree for this data tree panel.java.lang.String[]getExpandedPathsByNodeName()ProjectDatagetProjectData()Get the project data that this data tree panel is operating on.DomainFilegetSelectedDomainFile()Get the last selected domain file.DomainFoldergetSelectedDomainFolder()Get the last selected domain folder.intgetSelectedItemCount()Get the number of selected items in the tree.javax.swing.tree.TreeSelectionModelgetTreeSelectionModel()voidprojectRenamed(java.lang.String newName)Notification that the project was renamed; update the root node name and reload the node.voidremoveTreeMouseListener(java.awt.event.MouseListener l)Remove the mouse listener from the data tree.voidremoveTreeSelectionListener(GTreeSelectionListener l)Remove the tree selection listener from the data tree.voidselectDomainFile(DomainFile domainFile)voidselectDomainFiles(java.util.Set<DomainFile> files)voidselectDomainFolder(DomainFolder domainFolder)voidselectRootDataFolder()Select the root data folder (not root node in the tree which shows the project name).voidsetDomainFileFilter(DomainFileFilter filter)Set the filter on this data tree.voidsetExpandedPathsByNodeName(java.lang.String[] stringPaths)voidsetHelpLocation(HelpLocation helpLocation)Set the help location for the data tree.voidsetPreferredTreePanelSize(java.awt.Dimension d)Set the preferred size of the scroll pane that contains the data tree.voidsetProjectData(java.lang.String projectName, ProjectData projectData)Set the project data for this data tree and populate it with nodes for the users in the project.voidsetTreeFilterEnabled(boolean enabled)Adds or removes the filter from the tree.voidupdateProjectName(java.lang.String newName)Update the project name.-
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 Detail
-
ProjectDataTreePanel
public ProjectDataTreePanel(FrontEndPlugin plugin)
Construct an empty panel that is going to be used as the active panel.- Parameters:
tool- front end tool
-
ProjectDataTreePanel
public ProjectDataTreePanel(java.lang.String projectName, boolean isActiveProject, FrontEndPlugin plugin, DomainFileFilter filter)Construct a new DataTreePanel.- Parameters:
projectName- name of projectprojectData- object that provides access to all the user data folders in a projectisActiveProject- true if the project is active, and the data tree may be modifiedtool- front end tool; will be null if the panel is used in a dialogactionMgr- class to handle enablement of actions; an ActionManager is passed in when several data tree panels all need to use the same ActionManager, e.g., the viewed projects in the front end tool; actionMgr will be null if the panel is used in a dialog
-
-
Method Detail
-
getTreeSelectionModel
public javax.swing.tree.TreeSelectionModel getTreeSelectionModel()
-
setProjectData
public void setProjectData(java.lang.String projectName, ProjectData projectData)Set the project data for this data tree and populate it with nodes for the users in the project.- Parameters:
projectName- name of projectprojectData- data that has the root folder for the project
-
updateProjectName
public void updateProjectName(java.lang.String newName)
Update the project name.- Parameters:
newName-
-
closeRootFolder
public void closeRootFolder()
Close the root folder for this data tree.
-
selectRootDataFolder
public void selectRootDataFolder()
Select the root data folder (not root node in the tree which shows the project name).
-
selectDomainFolder
public void selectDomainFolder(DomainFolder domainFolder)
-
selectDomainFiles
public void selectDomainFiles(java.util.Set<DomainFile> files)
-
selectDomainFile
public void selectDomainFile(DomainFile domainFile)
-
setHelpLocation
public void setHelpLocation(HelpLocation helpLocation)
Set the help location for the data tree.
-
setDomainFileFilter
public void setDomainFileFilter(DomainFileFilter filter)
Set the filter on this data tree.- Parameters:
filter- determines what should be included in the data tree
-
getSelectedItemCount
public int getSelectedItemCount()
Get the number of selected items in the tree. These could be either DomainFile's or DomainFolder's.
-
getSelectedDomainFolder
public DomainFolder getSelectedDomainFolder()
Get the last selected domain folder.- Returns:
- null if no domain folder is selected.
-
getSelectedDomainFile
public DomainFile getSelectedDomainFile()
Get the last selected domain file.- Returns:
- null if no domain file is selected.
-
addTreeSelectionListener
public void addTreeSelectionListener(GTreeSelectionListener l)
Add the tree selection listener to the data tree. When the listener is notified of the selection change, it should callgetSelectedDomainFolder()andgetSelectedDomainFile()to get the last selected object.- Parameters:
l- listener to add
-
removeTreeSelectionListener
public void removeTreeSelectionListener(GTreeSelectionListener l)
Remove the tree selection listener from the data tree.- Parameters:
l- listener to remove
-
addTreeMouseListener
public void addTreeMouseListener(java.awt.event.MouseListener l)
Add a mouse listener to the data tree.
-
removeTreeMouseListener
public void removeTreeMouseListener(java.awt.event.MouseListener l)
Remove the mouse listener from the data tree.
-
setPreferredTreePanelSize
public void setPreferredTreePanelSize(java.awt.Dimension d)
Set the preferred size of the scroll pane that contains the data tree.
-
getProjectData
public ProjectData getProjectData()
Get the project data that this data tree panel is operating on.
-
projectRenamed
public void projectRenamed(java.lang.String newName)
Notification that the project was renamed; update the root node name and reload the node.
-
dispose
public void dispose()
Notification that panel is being disposed.
-
getActionContext
public ActionContext getActionContext(ComponentProvider provider, java.awt.event.MouseEvent e)
Get the data tree node that is selected.- Parameters:
e- mouse event for the popup; may be null if this is being called as a result of the key binding pressed- Returns:
- null if there is no selection
-
getDataTree
public DataTree getDataTree()
get the data tree for this data tree panel.
-
setTreeFilterEnabled
public void setTreeFilterEnabled(boolean enabled)
Adds or removes the filter from the tree.- Parameters:
enabled- Tree adds the filter; false removes it
-
getExpandedPathsByNodeName
public java.lang.String[] getExpandedPathsByNodeName()
-
setExpandedPathsByNodeName
public void setExpandedPathsByNodeName(java.lang.String[] stringPaths)
-
checkOpen
public void checkOpen(java.awt.event.MouseEvent e)
-
findAndSelect
public void findAndSelect(java.lang.String s)
Find a node that has the given name and select it.- Parameters:
s- node name
-
-