Class BytecodeDecompilerView


  • public class BytecodeDecompilerView
    extends java.lang.Object
    Class that creates GUI for attached VM.
    • Field Detail

      • bytecodeDecompilerPanel

        private javax.swing.JPanel bytecodeDecompilerPanel
      • splitPane

        private javax.swing.JSplitPane splitPane
      • classes

        private javax.swing.JPanel classes
      • classesToolBar

        private javax.swing.JPanel classesToolBar
      • reloadClassesButton

        private javax.swing.JButton reloadClassesButton
      • searchInClassesButton

        private javax.swing.JButton searchInClassesButton
      • showInfoCheckBox

        private javax.swing.JCheckBox showInfoCheckBox
      • classCount

        private javax.swing.JTextField classCount
      • classesSortField

        private javax.swing.JTextField classesSortField
      • metadata

        private javax.swing.JCheckBox metadata
      • classesSortFieldColor

        private final java.awt.Color classesSortFieldColor
      • classesPanel

        private javax.swing.JPanel classesPanel
      • classesScrollPane

        private javax.swing.JScrollPane classesScrollPane
      • filteredClassesJList

        private javax.swing.JList<ClassInfo> filteredClassesJList
      • buffersPanel

        private javax.swing.JPanel buffersPanel
      • buffersToolBar

        private javax.swing.JPanel buffersToolBar
      • diffButton

        private javax.swing.JButton diffButton
      • undoButton

        private javax.swing.JButton undoButton
      • redoButton

        private javax.swing.JButton redoButton
      • insertButton

        private javax.swing.JButton insertButton
      • bytecodeButton

        private javax.swing.JButton bytecodeButton
      • detachButton

        private javax.swing.JButton detachButton
      • initClassButton

        private javax.swing.JButton initClassButton
      • overwriteButton

        private javax.swing.JButton overwriteButton
      • compileButton

        private javax.swing.JButton compileButton
      • compileAndUploadButton

        private javax.swing.JButton compileAndUploadButton
      • buffers

        private final javax.swing.JTabbedPane buffers
      • bytesActionListener

        private java.awt.event.ActionListener bytesActionListener
      • classesActionListener

        private java.awt.event.ActionListener classesActionListener
      • searchClassesActionListener

        private java.awt.event.ActionListener searchClassesActionListener
      • initActionListener

        private java.awt.event.ActionListener initActionListener
      • addActionListener

        private java.awt.event.ActionListener addActionListener
      • addJar

        private java.awt.event.ActionListener addJar
      • loadedClasses

        private ClassInfo[] loadedClasses
      • lastDecompiledClass

        private java.lang.String lastDecompiledClass
      • lastFqn

        private java.lang.String lastFqn
      • lastAddedFqn

        private java.lang.String lastAddedFqn
      • lastAddedFile

        private java.io.File lastAddedFile
      • lastSearch

        private java.lang.String lastSearch
      • splitPaneFirstResize

        private boolean splitPaneFirstResize
      • shouldAttach

        private boolean shouldAttach
      • mainFrame

        private final javax.swing.JFrame mainFrame
      • detachedBytecodeFrame

        private javax.swing.JFrame detachedBytecodeFrame
      • CLASS_LIST_REGISTERED_KEY_CODES

        private static final java.util.Set<java.lang.Integer> CLASS_LIST_REGISTERED_KEY_CODES
      • PANEL_INSETS

        private static final java.awt.Insets PANEL_INSETS
      • DETACH_BUTTON_TEXT

        private static final java.lang.String DETACH_BUTTON_TEXT
        See Also:
        Constant Field Values
      • ATTACH_BUTTON_TEXT

        private static final java.lang.String ATTACH_BUTTON_TEXT
        See Also:
        Constant Field Values
    • Constructor Detail

      • BytecodeDecompilerView

        public BytecodeDecompilerView​(javax.swing.JFrame mainFrameReference)
    • Method Detail

      • getBytecodeDecompilerPanel

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

        private void handleClassInfoSwitching​(boolean reload)
      • isDecompiledBytecodeBufferVisible

        private boolean isDecompiledBytecodeBufferVisible()
      • isBinaryBufferVisible

        private boolean isBinaryBufferVisible()
      • isAdditionalBinaryBufferVisible

        private boolean isAdditionalBinaryBufferVisible()
      • isAdditionalDecompiledBytecodeBufferVisible

        private boolean isAdditionalDecompiledBytecodeBufferVisible()
      • isAdditionalSrcBufferVisible

        private boolean isAdditionalSrcBufferVisible()
      • handleBuffersDetaching

        private void handleBuffersDetaching()
      • styleTooltip

        public static java.lang.String styleTooltip()
      • updateClassList

        private void updateClassList()
      • matchesAny

        private boolean matchesAny​(java.util.List<ClassInfo> filtered,
                                   java.util.regex.Pattern p,
                                   ClassInfo clazz)
      • reloadClassList

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

        public void reloadTextField​(java.lang.String name,
                                    java.lang.String decompiledClass,
                                    byte[] source,
                                    java.lang.String additionalDecompiledClass,
                                    byte[] additionalSource,
                                    java.lang.String additionalSrcClass)
        Sets the decompiled code into JTextArea
        Parameters:
        decompiledClass - String of source code of decompiler class
      • setDecompiledClass

        private void setDecompiledClass​(java.lang.String name,
                                        java.lang.String data,
                                        byte[] source,
                                        java.lang.String additionalData,
                                        byte[] additionalSource,
                                        java.lang.String additionalSrcData)
      • setSearchInActionListener

        public void setSearchInActionListener​(java.awt.event.ActionListener o)
      • setClassesActionListener

        public void setClassesActionListener​(java.awt.event.ActionListener listener)
      • setInitActionListener

        public void setInitActionListener​(java.awt.event.ActionListener listener)
      • setAddActionListener

        public void setAddActionListener​(java.awt.event.ActionListener listener)
      • setJarActionListener

        public void setJarActionListener​(java.awt.event.ActionListener listener)
      • setCompileListener

        public void setCompileListener​(QuickCompiler listener)
      • setBytesActionListener

        public void setBytesActionListener​(java.awt.event.ActionListener listener)
      • refreshComboBox

        public void refreshComboBox​(java.util.List<DecompilerWrapper> wrappers)
      • buttonSizeBasedOnTextField

        public static java.awt.Dimension buttonSizeBasedOnTextField​(javax.swing.JButton originalButton,
                                                                    javax.swing.JTextField referenceTextField)
      • classWorker

        private void classWorker()
      • bytesWorker

        private void bytesWorker​(java.lang.String name)
      • doShowClassInfo

        public boolean doShowClassInfo()
      • doSearchInClassInfo

        public boolean doSearchInClassInfo()
      • addJar

        private void addJar​(boolean boot,
                            java.lang.String file,
                            java.lang.String name)
      • addClassGui

        private void addClassGui​(java.lang.String fqn,
                                 java.lang.String file)
      • initGui

        private void initGui​(java.lang.String fqn)
      • addClassesGui

        private void addClassesGui​(boolean boot,
                                   java.lang.String[] fqnFilePairs)
                            throws java.io.IOException
        Throws:
        java.io.IOException