Class BytecodeDecompilerView

java.lang.Object
org.jrd.frontend.frame.main.BytecodeDecompilerView

public class BytecodeDecompilerView extends Object
Class that creates GUI for attached VM.
  • Field Details

    • bytecodeDecompilerPanel

      private JPanel bytecodeDecompilerPanel
    • splitPane

      private JSplitPane splitPane
    • classes

      private JPanel classes
    • classesToolBar

      private JPanel classesToolBar
    • reloadClassesButton

      private JButton reloadClassesButton
    • showInfoCheckBox

      private JCheckBox showInfoCheckBox
    • classesSortField

      private JTextField classesSortField
    • classesSortFieldColor

      private final Color classesSortFieldColor
    • classesPanel

      private JPanel classesPanel
    • classesScrollPane

      private JScrollPane classesScrollPane
    • filteredClassesJList

      private JList<ClassInfo> filteredClassesJList
    • filteredClassesRenderer

      private ClassListRenderer filteredClassesRenderer
    • buffersPanel

      private JPanel buffersPanel
    • buffersToolBar

      private JPanel buffersToolBar
    • undoButton

      private JButton undoButton
    • redoButton

      private JButton redoButton
    • insertButton

      private JButton insertButton
    • detachButton

      private JButton detachButton
    • initClassButton

      private JButton initClassButton
    • overwriteButton

      private JButton overwriteButton
    • compileButton

      private JButton compileButton
    • compileAndUploadButton

      private JButton compileAndUploadButton
    • pluginComboBox

      private JComboBox<DecompilerWrapper> pluginComboBox
    • buffers

      private final JTabbedPane buffers
    • sourceBuffer

      private JPanel sourceBuffer
    • bytecodeScrollPane

      private org.fife.ui.rtextarea.RTextScrollPane bytecodeScrollPane
    • bytecodeSyntaxTextArea

      private org.fife.ui.rsyntaxtextarea.RSyntaxTextArea bytecodeSyntaxTextArea
    • bytecodeSearchControls

      private BytecodeDecompilerView.SearchControlsPanel bytecodeSearchControls
    • binaryBuffer

      private JPanel binaryBuffer
    • hex

      private HexEditor hex
    • hexSearchControls

      private BytecodeDecompilerView.SearchControlsPanel hexSearchControls
    • bytesActionListener

      private ActionListener bytesActionListener
    • classesActionListener

      private ActionListener classesActionListener
    • initActionListener

      private ActionListener initActionListener
    • compileAction

    • overwriteActionListener

      private BytecodeDecompilerView.OverwriteActionListener overwriteActionListener
    • loadedClasses

      private ClassInfo[] loadedClasses
    • lastDecompiledClass

      private String lastDecompiledClass
    • lastFqn

      private String lastFqn
    • searchContext

      private org.fife.ui.rtextarea.SearchContext searchContext
    • splitPaneFirstResize

      private boolean splitPaneFirstResize
    • shouldAttach

      private boolean shouldAttach
    • mainFrame

      private final JFrame mainFrame
    • detachedBytecodeFrame

      private JFrame detachedBytecodeFrame
    • CLASS_LIST_REGISTERED_KEY_CODES

      private static final Set<Integer> CLASS_LIST_REGISTERED_KEY_CODES
    • PANEL_INSETS

      private static final Insets PANEL_INSETS
    • DETACH_BUTTON_TEXT

      private static final String DETACH_BUTTON_TEXT
      See Also:
    • ATTACH_BUTTON_TEXT

      private static final String ATTACH_BUTTON_TEXT
      See Also:
  • Constructor Details

    • BytecodeDecompilerView

      public BytecodeDecompilerView(JFrame mainFrameReference)
  • Method Details

    • getBytecodeDecompilerPanel

      public JPanel getBytecodeDecompilerPanel()
      Constructor creates the graphics and adds the action listeners.
      Returns:
      BytecodeDecompilerPanel
    • handleClassInfoSwitching

      private void handleClassInfoSwitching()
    • isSourceBufferVisible

      private boolean isSourceBufferVisible()
    • handleBuffersDetaching

      private void handleBuffersDetaching()
    • styleTooltip

      public static String styleTooltip()
    • updateClassList

      private void updateClassList()
    • reloadClassList

      public void reloadClassList(ClassInfo[] classesToReload)
      Sets the unfiltered class list array and invokes an update.
      Parameters:
      classesToReload - String[] classesToReload.
    • reloadTextField

      public void reloadTextField(String name, String decompiledClass, byte[] source)
      Sets the decompiled code into JTextArea
      Parameters:
      decompiledClass - String of source code of decompiler class
    • setDecompiledClass

      private void setDecompiledClass(String name, String data, byte[] source)
    • setClassesActionListener

      public void setClassesActionListener(ActionListener listener)
    • setInitActionListener

      public void setInitActionListener(ActionListener listener)
    • setCompileListener

      public void setCompileListener(DecompilationController.QuickCompiler listener)
    • setBytesActionListener

      public void setBytesActionListener(ActionListener listener)
    • setPopup

      public void setPopup(DecompilationController.AgentApiGenerator ap)
    • setOverwriteActionListener

      public void setOverwriteActionListener(DecompilationController.ClassOverwriter worker)
    • refreshComboBox

      public void refreshComboBox(List<DecompilerWrapper> wrappers)
    • getSelectedDecompiler

      public DecompilerWrapper getSelectedDecompiler()
    • initialSearchBytecode

      private void initialSearchBytecode(String query, boolean isRegex, boolean matchesCase)
    • searchBytecode

      private void searchBytecode(boolean forward)
    • deselectBytecodeSyntaxArea

      private void deselectBytecodeSyntaxArea()
    • showApiMenu

      private void showApiMenu(Point forcedLocation)
    • buttonSizeBasedOnTextField

      public static Dimension buttonSizeBasedOnTextField(JButton originalButton, JTextField referenceTextField)
    • classWorker

      private void classWorker()
    • bytesWorker

      private void bytesWorker(String name)
    • doShowClassInfo

      public boolean doShowClassInfo()