Package ghidra.app.decompiler.component
Class DecompilerPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- ghidra.app.decompiler.component.DecompilerPanel
-
- All Implemented Interfaces:
FieldLocationListener
,FieldMouseListener
,FieldSelectionListener
,ClangHighlightListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
public class DecompilerPanel extends javax.swing.JPanel implements FieldMouseListener, FieldLocationListener, FieldSelectionListener, ClangHighlightListener
Class to handle the display of a decompiled function- 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
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHoverService(DecompilerHoverService hoverService)
void
addPcodeOpHighlights(java.util.Set<PcodeOp> ops, java.awt.Color highlightColor)
void
addVarnodeHighlights(java.util.Set<Varnode> varnodes, java.awt.Color highlightColor, Varnode specificvn, PcodeOp specificop, java.awt.Color specialColor)
void
buttonPressed(FieldLocation location, Field field, java.awt.event.MouseEvent ev)
Called whenever the mouse button is pressed.void
clearHighlights()
boolean
containsLocation(ProgramLocation location)
void
dispose()
void
fieldLocationChanged(FieldLocation location, Field field, EventTrigger trigger)
Called whenever the cursor position changes.ProgramLocation
getCurrentLocation()
FieldLocation
getCursorPosition()
java.awt.Color
getDefaultHighlightColor()
java.awt.Color
getDefaultSpecialColor()
FieldPanel
getFieldPanel()
java.util.List<Field>
getFields()
java.lang.String
getHighlightedText()
LayoutModel
getLayoutModel()
java.util.List<ClangLine>
getLines()
ClangToken
getSelectedToken()
Returns a single selected token; null if there is no selection or multiple tokens selected.ClangToken
getTokenAtCursor()
ViewerPosition
getViewerPosition()
boolean
isHoverShowing()
void
optionsChanged(DecompileOptions decompilerOptions)
void
removeHoverService(DecompilerHoverService hoverService)
void
requestFocus()
SearchLocation
searchText(java.lang.String text, FieldLocation startLocation, boolean forwardDirection)
SearchLocation
searchTextRegex(java.lang.String text, FieldLocation startLocation, boolean forwardDirection)
void
selectAll()
void
selectionChanged(FieldSelection selection, EventTrigger trigger)
Called whenever the FieldViewer selection changes.void
setBackground(java.awt.Color bg)
void
setCursorPosition(FieldLocation fieldLocation)
void
setDecompilerHoverProvider(DecompilerHoverProvider provider)
void
setHighlightController(ClangHighlightController highlightController)
void
setHoverMode(boolean enabled)
void
setLocation(ProgramLocation location, ViewerPosition viewerPosition)
void
setSearchResults(SearchLocation searchLocation)
void
setViewerPosition(ViewerPosition viewerPosition)
void
tokenHighlightsChanged()
Method to invoke whenever the decompiler token highlights have changed.-
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, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, 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
-
-
-
-
Method Detail
-
getLines
public java.util.List<ClangLine> getLines()
-
getFields
public java.util.List<Field> getFields()
-
getFieldPanel
public FieldPanel getFieldPanel()
-
setBackground
public void setBackground(java.awt.Color bg)
- Overrides:
setBackground
in classjavax.swing.JComponent
-
getLayoutModel
public LayoutModel getLayoutModel()
-
containsLocation
public boolean containsLocation(ProgramLocation location)
-
setLocation
public void setLocation(ProgramLocation location, ViewerPosition viewerPosition)
-
setDecompilerHoverProvider
public void setDecompilerHoverProvider(DecompilerHoverProvider provider)
-
dispose
public void dispose()
-
buttonPressed
public void buttonPressed(FieldLocation location, Field field, java.awt.event.MouseEvent ev)
Description copied from interface:FieldMouseListener
Called whenever the mouse button is pressed.- Specified by:
buttonPressed
in interfaceFieldMouseListener
- Parameters:
location
- the field location of the mouse pointerfield
- the Field object that was clicked onev
- the mouse event that generated this call.
-
getCurrentLocation
public ProgramLocation getCurrentLocation()
-
fieldLocationChanged
public void fieldLocationChanged(FieldLocation location, Field field, EventTrigger trigger)
Description copied from interface:FieldLocationListener
Called whenever the cursor position changes.- Specified by:
fieldLocationChanged
in interfaceFieldLocationListener
- Parameters:
location
- the new field location.field
- the Field object containing the location.trigger
- the type of the location change
-
selectionChanged
public void selectionChanged(FieldSelection selection, EventTrigger trigger)
Description copied from interface:FieldSelectionListener
Called whenever the FieldViewer selection changes.- Specified by:
selectionChanged
in interfaceFieldSelectionListener
- Parameters:
selection
- the new selection.trigger
- indicates the cause of the selection changing
-
searchText
public SearchLocation searchText(java.lang.String text, FieldLocation startLocation, boolean forwardDirection)
-
searchTextRegex
public SearchLocation searchTextRegex(java.lang.String text, FieldLocation startLocation, boolean forwardDirection)
-
setSearchResults
public void setSearchResults(SearchLocation searchLocation)
-
getDefaultHighlightColor
public java.awt.Color getDefaultHighlightColor()
-
getDefaultSpecialColor
public java.awt.Color getDefaultSpecialColor()
-
getHighlightedText
public java.lang.String getHighlightedText()
-
getCursorPosition
public FieldLocation getCursorPosition()
-
setCursorPosition
public void setCursorPosition(FieldLocation fieldLocation)
-
getSelectedToken
public ClangToken getSelectedToken()
Returns a single selected token; null if there is no selection or multiple tokens selected.- Returns:
- a single selected token; null if there is no selection or multiple tokens selected.
-
getTokenAtCursor
public ClangToken getTokenAtCursor()
-
addHoverService
public void addHoverService(DecompilerHoverService hoverService)
-
removeHoverService
public void removeHoverService(DecompilerHoverService hoverService)
-
setHoverMode
public void setHoverMode(boolean enabled)
-
isHoverShowing
public boolean isHoverShowing()
-
clearHighlights
public void clearHighlights()
-
addVarnodeHighlights
public void addVarnodeHighlights(java.util.Set<Varnode> varnodes, java.awt.Color highlightColor, Varnode specificvn, PcodeOp specificop, java.awt.Color specialColor)
-
addPcodeOpHighlights
public void addPcodeOpHighlights(java.util.Set<PcodeOp> ops, java.awt.Color highlightColor)
-
getViewerPosition
public ViewerPosition getViewerPosition()
-
setViewerPosition
public void setViewerPosition(ViewerPosition viewerPosition)
-
requestFocus
public void requestFocus()
- Overrides:
requestFocus
in classjavax.swing.JComponent
-
selectAll
public void selectAll()
-
optionsChanged
public void optionsChanged(DecompileOptions decompilerOptions)
-
setHighlightController
public void setHighlightController(ClangHighlightController highlightController)
-
tokenHighlightsChanged
public void tokenHighlightsChanged()
Description copied from interface:ClangHighlightListener
Method to invoke whenever the decompiler token highlights have changed.- Specified by:
tokenHighlightsChanged
in interfaceClangHighlightListener
-
-