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 voidaddHoverService(DecompilerHoverService hoverService)voidaddPcodeOpHighlights(java.util.Set<PcodeOp> ops, java.awt.Color highlightColor)voidaddVarnodeHighlights(java.util.Set<Varnode> varnodes, java.awt.Color highlightColor, Varnode specificvn, PcodeOp specificop, java.awt.Color specialColor)voidbuttonPressed(FieldLocation location, Field field, java.awt.event.MouseEvent ev)Called whenever the mouse button is pressed.voidclearHighlights()booleancontainsLocation(ProgramLocation location)voiddispose()voidfieldLocationChanged(FieldLocation location, Field field, EventTrigger trigger)Called whenever the cursor position changes.ProgramLocationgetCurrentLocation()FieldLocationgetCursorPosition()java.awt.ColorgetDefaultHighlightColor()java.awt.ColorgetDefaultSpecialColor()FieldPanelgetFieldPanel()java.util.List<Field>getFields()java.lang.StringgetHighlightedText()LayoutModelgetLayoutModel()java.util.List<ClangLine>getLines()ClangTokengetSelectedToken()Returns a single selected token; null if there is no selection or multiple tokens selected.ClangTokengetTokenAtCursor()ViewerPositiongetViewerPosition()booleanisHoverShowing()voidoptionsChanged(DecompileOptions decompilerOptions)voidremoveHoverService(DecompilerHoverService hoverService)voidrequestFocus()SearchLocationsearchText(java.lang.String text, FieldLocation startLocation, boolean forwardDirection)SearchLocationsearchTextRegex(java.lang.String text, FieldLocation startLocation, boolean forwardDirection)voidselectAll()voidselectionChanged(FieldSelection selection, EventTrigger trigger)Called whenever the FieldViewer selection changes.voidsetBackground(java.awt.Color bg)voidsetCursorPosition(FieldLocation fieldLocation)voidsetDecompilerHoverProvider(DecompilerHoverProvider provider)voidsetHighlightController(ClangHighlightController highlightController)voidsetHoverMode(boolean enabled)voidsetLocation(ProgramLocation location, ViewerPosition viewerPosition)voidsetSearchResults(SearchLocation searchLocation)voidsetViewerPosition(ViewerPosition viewerPosition)voidtokenHighlightsChanged()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:
setBackgroundin 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:FieldMouseListenerCalled whenever the mouse button is pressed.- Specified by:
buttonPressedin 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:FieldLocationListenerCalled whenever the cursor position changes.- Specified by:
fieldLocationChangedin 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:FieldSelectionListenerCalled whenever the FieldViewer selection changes.- Specified by:
selectionChangedin 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:
requestFocusin 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:ClangHighlightListenerMethod to invoke whenever the decompiler token highlights have changed.- Specified by:
tokenHighlightsChangedin interfaceClangHighlightListener
-
-