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 panelProjectDataTreePanel(java.lang.String projectName, boolean isActiveProject, FrontEndPlugin plugin, DomainFileFilter filter)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTreeMouseListener(java.awt.event.MouseListener l)
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()
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 selectedDataTree
getDataTree()
java.lang.String[]
getExpandedPathsByNodeName()
ProjectData
getProjectData()
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 nodevoid
removeTreeMouseListener(java.awt.event.MouseListener l)
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)
void
setPreferredTreePanelSize(java.awt.Dimension d)
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:
plugin
- front end plugin
-
ProjectDataTreePanel
public ProjectDataTreePanel(java.lang.String projectName, boolean isActiveProject, FrontEndPlugin plugin, DomainFileFilter filter)
Constructor- Parameters:
projectName
- name of projectisActiveProject
- true if the project is active, and the data tree may be modifiedplugin
- front end plugin; will be null if the panel is used in a dialogfilter
- optional filter that is used to hide programs from view
-
-
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)
-
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 files or folders.- Returns:
- the number of selected items in the tree.
-
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)
-
removeTreeMouseListener
public void removeTreeMouseListener(java.awt.event.MouseListener l)
-
setPreferredTreePanelSize
public void setPreferredTreePanelSize(java.awt.Dimension d)
-
getProjectData
public ProjectData getProjectData()
-
projectRenamed
public void projectRenamed(java.lang.String newName)
Notification that the project was renamed; update the root node name and reload the node- Parameters:
newName
- the new project name
-
dispose
public void dispose()
-
getActionContext
public ActionContext getActionContext(ComponentProvider provider, java.awt.event.MouseEvent e)
Get the data tree node that is selected- Parameters:
provider
- the provider with which to construct the new contexte
- mouse event for the popup; may be null if this is being called as a result of the key binding pressed- Returns:
- the new context; null if there is no selection
-
getDataTree
public DataTree getDataTree()
-
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
-
-