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.JPanel
Panel 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 void
addTreeMouseListener(java.awt.event.MouseListener l)
Add a mouse listener to the data tree.void
addTreeSelectionListener(GTreeSelectionListener l)
Add the tree selection listener to the data tree.void
checkOpen(java.awt.event.MouseEvent e)
void
closeRootFolder()
Close the root folder for this data tree.void
dispose()
Notification that panel is being disposed.void
findAndSelect(java.lang.String s)
Find a node that has the given name and select it.ActionContext
getActionContext(ComponentProvider provider, java.awt.event.MouseEvent e)
Get the data tree node that is selected.DataTree
getDataTree()
get the data tree for this data tree panel.java.lang.String[]
getExpandedPathsByNodeName()
ProjectData
getProjectData()
Get the project data that this data tree panel is operating on.DomainFile
getSelectedDomainFile()
Get the last selected domain file.DomainFolder
getSelectedDomainFolder()
Get the last selected domain folder.int
getSelectedItemCount()
Get the number of selected items in the tree.javax.swing.tree.TreeSelectionModel
getTreeSelectionModel()
void
projectRenamed(java.lang.String newName)
Notification that the project was renamed; update the root node name and reload the node.void
removeTreeMouseListener(java.awt.event.MouseListener l)
Remove the mouse listener from the data tree.void
removeTreeSelectionListener(GTreeSelectionListener l)
Remove the tree selection listener from the data tree.void
selectDomainFile(DomainFile domainFile)
void
selectDomainFiles(java.util.Set<DomainFile> files)
void
selectDomainFolder(DomainFolder domainFolder)
void
selectRootDataFolder()
Select the root data folder (not root node in the tree which shows the project name).void
setDomainFileFilter(DomainFileFilter filter)
Set the filter on this data tree.void
setExpandedPathsByNodeName(java.lang.String[] stringPaths)
void
setHelpLocation(HelpLocation helpLocation)
Set the help location for the data tree.void
setPreferredTreePanelSize(java.awt.Dimension d)
Set the preferred size of the scroll pane that contains the data tree.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.void
setTreeFilterEnabled(boolean enabled)
Adds or removes the filter from the tree.void
updateProjectName(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
-
-