Class DecompilerController


  • public class DecompilerController
    extends java.lang.Object
    Coordinates the interactions between the DecompilerProvider, DecompilerPanel, and the DecompilerManager
    • Method Detail

      • dispose

        public void dispose()
        Called by the provider when the provider is disposed. Once dispose is called, it should never be used again.
      • clear

        public void clear()
        clears all internal state and releases all resources. Called when the provider is no longer visible or the currently displayed program is closed.
      • display

        public void display​(Program program,
                            ProgramLocation location,
                            ViewerPosition viewerPosition)
        Shows the function containing the given location in the decompilerPanel. Also, positions the decompilerPanel's cursor to the closest equivalent position. If the decompilerPanel is already displaying the function, then only the cursor is repositioned. To force a re-decompile use refreshDisplay(Program, ProgramLocation, File).
        Parameters:
        program - the program for the given location
        location - the location containing the function to be displayed and the location in that function to position the cursor.
        viewerPosition - the viewer position
      • setOptions

        public void setOptions​(DecompileOptions decompilerOptions)
        Sets new decompiler options and triggers a new decompile.
        Parameters:
        decompilerOptions - the options
      • isDecompiling

        public boolean isDecompiling()
      • setMouseNavigationEnabled

        public void setMouseNavigationEnabled​(boolean enabled)
      • resetDecompiler

        public void resetDecompiler()
        Resets the native decompiler process. Call this method when the decompiler's view of a program has been invalidated, such as when a new overlay space has been added.
      • setDecompileData

        public void setDecompileData​(DecompileData decompileData)
        Called by the DecompilerManager to update the currently displayed DecompileData
        Parameters:
        decompileData - the new data
      • doWhenNotBusy

        public void doWhenNotBusy​(Callback c)
      • refreshDisplay

        public void refreshDisplay​(Program program,
                                   ProgramLocation location,
                                   java.io.File debugFile)
        Always decompiles the function containing the given location before positioning the decompilerPanel's cursor to the closest equivalent position.
        Parameters:
        program - the program for the given location
        location - the location containing the function to be displayed and the location in that function to position the cursor.
        debugFile - the debug file
      • hasDecompileResults

        public boolean hasDecompileResults()
      • setStatusMessage

        public void setStatusMessage​(java.lang.String message)
      • getProgram

        public Program getProgram()
      • getFunction

        public Function getFunction()
      • exportLocation

        public void exportLocation()
      • clearCache

        public void clearCache()
      • programClosed

        public void programClosed​(Program closedProgram)