Class BytecodeDecompilerView


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

      • BYTEMAN_SCRIPT_TITLE

        public static final java.lang.String BYTEMAN_SCRIPT_TITLE
        See Also:
        Constant Field Values
      • 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
      • classloaderRestriction

        private javax.swing.JTextField classloaderRestriction
      • classloaderAuto

        private javax.swing.JCheckBox classloaderAuto
      • cleanClassloader

        private javax.swing.JButton cleanClassloader
      • classesSortField

        private javax.swing.JTextField classesSortField
      • metadata

        private javax.swing.JCheckBox metadata
      • restrictLaoder

        private javax.swing.JCheckBox restrictLaoder
      • 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
      • 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 ClassInfo 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
      • 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​(MainFrameView mainFrameReference)
    • Method Detail

      • getBytecodeDecompilerPanel

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

        private void selectClassLoader()
      • unselectAndResetClassloader

        private void unselectAndResetClassloader()
      • selectAndSaveClassloader

        private void selectAndSaveClassloader​(java.lang.String s)
      • unselectClassloader

        private void unselectClassloader()
      • selectClassloader

        private void selectClassloader​(java.lang.String loader)
      • getStyledRegexTooltip

        public static java.lang.String getStyledRegexTooltip()
      • handleClassInfoSwitching

        private void handleClassInfoSwitching​(boolean reload)
      • isDecompiledBytecodeBufferVisible

        boolean isDecompiledBytecodeBufferVisible()
      • isBinaryBufferVisible

        boolean isBinaryBufferVisible()
      • isAdditionalBinaryBufferVisible

        boolean isAdditionalBinaryBufferVisible()
      • isAdditionalDecompiledBytecodeBufferVisible

        boolean isAdditionalDecompiledBytecodeBufferVisible()
      • isAdditionalSrcBufferVisible

        boolean isAdditionalSrcBufferVisible()
      • isBytemanBufferVisible

        boolean isBytemanBufferVisible()
      • 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​(ClassInfo name,
                                    java.lang.String decompiledClass,
                                    byte[] source,
                                    java.lang.String additionalDecompiledClass,
                                    byte[] additionalSource,
                                    VmInfo.Type vmInfoType,
                                    BytemanCompanion bytemanCompanion)
        Sets the decompiled code into JTextArea
        Parameters:
        decompiledClass - String of source code of decompiler class
      • setDecompiledClass

        private void setDecompiledClass​(ClassInfo name,
                                        java.lang.String data,
                                        byte[] source,
                                        java.lang.String additionalData,
                                        byte[] additionalSource,
                                        VmInfo.Type vmInfoType,
                                        BytemanCompanion bytemanCompanion)
      • setByteman

        private void setByteman​(java.lang.String name)
      • setSearchInActionListener

        public void setSearchInActionListener​(java.awt.event.ActionListener o)
      • 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)
      • setOverwriteActionListener

        public void setOverwriteActionListener​(ClassOverwriter worker)
      • 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​(ClassInfo clazz)
      • doShowClassInfo

        public boolean doShowClassInfo()
      • doSearchInClassInfo

        public boolean doSearchInClassInfo()
      • getLastDecompiledClass

        ClassInfo getLastDecompiledClass()
      • getBuffers

        javax.swing.JTabbedPane getBuffers()
      • addJar

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

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

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

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

        public java.lang.String getLastFqn()
      • setLastFqn

        void setLastFqn​(java.lang.String lastFqn)
      • getLastAddedFqn

        public java.lang.String getLastAddedFqn()
      • setLastAddedFqn

        void setLastAddedFqn​(java.lang.String lastAddedFqn)
      • getLastAddedFile

        public java.io.File getLastAddedFile()
      • setLastAddedFile

        void setLastAddedFile​(java.io.File lastAddedFile)
      • setMaintitle

        private void setMaintitle()
      • getLastClassloader

        public java.lang.String getLastClassloader()
      • isLastClassloader

        public boolean isLastClassloader()