Class DecompilerPanel

    • 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
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • 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
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • 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 hlColor)  
      void addSecondaryHighlight​(ClangToken token)  
      void addSecondaryHighlight​(ClangToken token, java.awt.Color color)  
      void addVarnodeHighlights​(java.util.Set<Varnode> varnodes, ghidra.app.plugin.core.decompile.actions.TokenHighlightColorProvider colorProvider)  
      void applySecondaryHighlights​(java.util.Map<java.lang.String,​java.awt.Color> highlightsByName)  
      void buttonPressed​(FieldLocation location, Field field, java.awt.event.MouseEvent ev)
      Called whenever the mouse button is pressed.
      void clearPrimaryHighlights()  
      boolean containsLocation​(ProgramLocation location)  
      void dispose()  
      void fieldLocationChanged​(FieldLocation location, Field field, EventTrigger trigger)
      Called whenever the cursor position changes.
      java.util.List<ClangToken> findTokensByName​(java.lang.String name)  
      ProgramLocation getCurrentLocation()  
      java.awt.Color getCurrentVariableHighlightColor()  
      FieldLocation getCursorPosition()  
      FieldPanel getFieldPanel()  
      java.util.List<Field> getFields()  
      ClangHighlightController getHighlightController()  
      java.lang.String getHighlightedText()  
      LayoutModel getLayoutModel()  
      java.util.List<ClangLine> getLines()  
      java.awt.Color getMiddleMouseHighlightColor()  
      DecompileOptions getOptions()  
      TokenHighlightColors getSecondaryHighlightColors()  
      TokenHighlights getSecondaryHighlightedTokens()  
      ClangToken getSelectedToken()
      Returns a single selected token; null if there is no selection or multiple tokens selected.
      java.awt.Color getSpecialHighlightColor()
      The color used in a primary highlight to mark the token that was clicked.
      java.lang.String getTextSelection()  
      ClangToken getTokenAtCursor()  
      ViewerPosition getViewerPosition()  
      boolean isHoverShowing()  
      void optionsChanged​(DecompileOptions decompilerOptions)  
      void removeHoverService​(DecompilerHoverService hoverService)  
      void removeSecondaryHighlight​(ClangToken token)  
      void removeSecondaryHighlights()  
      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.
      void tokenRenamed​(ClangToken token, java.lang.String newName)
      This is function is used to alert the panel that a token was renamed.
      • 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • getLines

        public java.util.List<ClangLine> getLines()
      • getFields

        public java.util.List<Field> getFields()
      • getFieldPanel

        public FieldPanel getFieldPanel()
      • applySecondaryHighlights

        public void applySecondaryHighlights​(java.util.Map<java.lang.String,​java.awt.Color> highlightsByName)
      • getSecondaryHighlightedTokens

        public TokenHighlights getSecondaryHighlightedTokens()
      • removeSecondaryHighlights

        public void removeSecondaryHighlights()
      • removeSecondaryHighlight

        public void removeSecondaryHighlight​(ClangToken token)
      • addSecondaryHighlight

        public void addSecondaryHighlight​(ClangToken token)
      • addSecondaryHighlight

        public void addSecondaryHighlight​(ClangToken token,
                                          java.awt.Color color)
      • setBackground

        public void setBackground​(java.awt.Color bg)
        Overrides:
        setBackground in class javax.swing.JComponent
      • containsLocation

        public boolean containsLocation​(ProgramLocation location)
      • 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 interface FieldMouseListener
        Parameters:
        location - the field location of the mouse pointer
        field - the Field object that was clicked on
        ev - the mouse event that generated this call.
      • searchTextRegex

        public SearchLocation searchTextRegex​(java.lang.String text,
                                              FieldLocation startLocation,
                                              boolean forwardDirection)
      • setSearchResults

        public void setSearchResults​(SearchLocation searchLocation)
      • getCurrentVariableHighlightColor

        public java.awt.Color getCurrentVariableHighlightColor()
      • getMiddleMouseHighlightColor

        public java.awt.Color getMiddleMouseHighlightColor()
      • getSpecialHighlightColor

        public java.awt.Color getSpecialHighlightColor()
        The color used in a primary highlight to mark the token that was clicked. This is used in 'slice' actions to mark the source of the slice.
        Returns:
        the color
      • getHighlightedText

        public java.lang.String getHighlightedText()
      • 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.
      • getTextSelection

        public java.lang.String getTextSelection()
      • getTokenAtCursor

        public ClangToken getTokenAtCursor()
      • setHoverMode

        public void setHoverMode​(boolean enabled)
      • isHoverShowing

        public boolean isHoverShowing()
      • clearPrimaryHighlights

        public void clearPrimaryHighlights()
      • addVarnodeHighlights

        public void addVarnodeHighlights​(java.util.Set<Varnode> varnodes,
                                         ghidra.app.plugin.core.decompile.actions.TokenHighlightColorProvider colorProvider)
      • addPcodeOpHighlights

        public void addPcodeOpHighlights​(java.util.Set<PcodeOp> ops,
                                         java.awt.Color hlColor)
      • findTokensByName

        public java.util.List<ClangToken> findTokensByName​(java.lang.String name)
      • setViewerPosition

        public void setViewerPosition​(ViewerPosition viewerPosition)
      • requestFocus

        public void requestFocus()
        Overrides:
        requestFocus in class javax.swing.JComponent
      • selectAll

        public void selectAll()
      • optionsChanged

        public void optionsChanged​(DecompileOptions decompilerOptions)
      • tokenRenamed

        public void tokenRenamed​(ClangToken token,
                                 java.lang.String newName)
        This is function is used to alert the panel that a token was renamed. If the token that is being renamed had a secondary highlight, we must re-apply the highlight to the new token.
        Parameters:
        token - the token being renamed
        newName - the new name of the token