Class BytecodeDecompilerView
- java.lang.Object
-
- org.jrd.frontend.frame.main.decompilerview.BytecodeDecompilerView
-
public class BytecodeDecompilerView extends java.lang.Object
Class that creates GUI for attached VM.
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.event.ActionListener
addActionListener
private HexWithControls
additionalBinary
private TextWithControls
additionalBytecodeBuffer
private TextWithControls
additionalSrcBuffer
private java.awt.event.ActionListener
addJar
private static java.lang.String
ATTACH_BUTTON_TEXT
private HexWithControls
binary
private javax.swing.JTabbedPane
buffers
private javax.swing.JPanel
buffersPanel
private javax.swing.JPanel
buffersToolBar
private TextWithControls
bytecodeBuffer
private javax.swing.JButton
bytecodeButton
private javax.swing.JPanel
bytecodeDecompilerPanel
static java.lang.String
BYTEMAN_SCRIPT_TITLE
private TextWithControls
bytemanScript
private DecompilationController.BytesActionListener
bytesActionListener
private static java.util.Set<java.lang.Integer>
CLASS_LIST_REGISTERED_KEY_CODES
private javax.swing.JTextField
classCount
private javax.swing.JPanel
classes
private DecompilationController.LoadClassNames
classesActionListener
private javax.swing.JPanel
classesPanel
private javax.swing.JScrollPane
classesScrollPane
private javax.swing.JTextField
classesSortField
private java.awt.Color
classesSortFieldColor
private javax.swing.JPanel
classesToolBar
private javax.swing.JCheckBox
classloaderAuto
private javax.swing.JTextField
classloaderRestriction
private ClasspathProvider
classpathProvider
private javax.swing.JButton
cleanClassloader
private QuickCompiler
compileAction
private javax.swing.JButton
compileAndUploadButton
private javax.swing.JButton
compileButton
private ClassesAndMethodsProvider
completionHelper
private DependenciesReader
dependenciesReader
private static java.lang.String
DETACH_BUTTON_TEXT
private javax.swing.JButton
detachButton
private javax.swing.JFrame
detachedBytecodeFrame
private javax.swing.JButton
diffButton
private javax.swing.JList<ClassInfo>
filteredClassesJList
private ClassListRenderer
filteredClassesRenderer
private java.awt.event.ActionListener
initActionListener
private javax.swing.JButton
initClassButton
private javax.swing.JButton
insertButton
private java.io.File
lastAddedFile
private java.lang.String
lastAddedFqn
private ClassInfo
lastDecompiledClass
private java.lang.String
lastFqn
private java.lang.String
lastSearch
private ClassInfo[]
loadedClasses
private MainFrameView
mainFrame
private javax.swing.JCheckBox
metadata
private OverwriteActionListener
overwriteActionListener
private javax.swing.JButton
overwriteButton
private static java.awt.Insets
PANEL_INSETS
private javax.swing.JComboBox<DecompilerWrapper>
pluginComboBox
private javax.swing.JButton
redoButton
private javax.swing.JButton
reloadClassesButton
private javax.swing.JCheckBox
restrictLaoder
static java.lang.String
SEARCH_TEXT
private java.awt.event.ActionListener
searchClassesActionListener
private javax.swing.JButton
searchInClassesButton
private boolean
shouldAttach
private javax.swing.JCheckBox
showInfoCheckBox
private javax.swing.JSplitPane
splitPane
private boolean
splitPaneFirstResize
private javax.swing.JButton
undoButton
-
Constructor Summary
Constructors Constructor Description BytecodeDecompilerView(MainFrameView mainFrameReference)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addClassesGui(boolean boot, java.lang.String[] fqnFilePairs)
(package private) void
addClassGui(java.lang.String fqn, java.lang.String file)
(package private) void
addJar(boolean boot, java.lang.String file, java.lang.String name)
static java.awt.Dimension
buttonSizeBasedOnTextField(javax.swing.JButton originalButton, javax.swing.JTextField referenceTextField)
private void
bytesWorker(ClassInfo clazz)
private void
classWorker()
boolean
doSearchInClassInfo()
boolean
doShowClassInfo()
(package private) HexWithControls
getAdditionalBinary()
(package private) TextWithControls
getAdditionalBytecodeBuffer()
(package private) TextWithControls
getAdditionalSrcBuffer()
(package private) HexWithControls
getBinary()
(package private) javax.swing.JTabbedPane
getBuffers()
(package private) TextWithControls
getBytecodeBuffer()
javax.swing.JPanel
getBytecodeDecompilerPanel()
Constructor creates the graphics and adds the action listeners.(package private) TextWithControls
getBytemanScript()
ClasspathProvider
getClasspathProvider()
QuickCompiler
getCompileAction()
ClassesAndMethodsProvider
getCompletionHelper()
DependenciesReader
getDependenciesReader()
java.io.File
getLastAddedFile()
java.lang.String
getLastAddedFqn()
java.lang.String
getLastClassloader()
(package private) ClassInfo
getLastDecompiledClass()
java.lang.String
getLastFqn()
DecompilerWrapper
getPluginComboBox()
DecompilerWrapper
getSelectedDecompiler()
static java.lang.String
getStyledRegexTooltip()
private void
handleBuffersDetaching()
private void
handleClassInfoSwitching(boolean reload)
(package private) void
initGui(java.lang.String fqn)
(package private) boolean
isAdditionalBinaryBufferVisible()
(package private) boolean
isAdditionalDecompiledBytecodeBufferVisible()
(package private) boolean
isAdditionalSrcBufferVisible()
(package private) boolean
isBinaryBufferVisible()
(package private) boolean
isBytemanBufferVisible()
(package private) boolean
isDecompiledBytecodeBufferVisible()
boolean
isLastClassloader()
private boolean
matchesAny(java.util.List<ClassInfo> filtered, java.util.regex.Pattern p, ClassInfo clazz)
void
refreshComboBox(java.util.List<DecompilerWrapper> wrappers)
void
reloadClassList(ClassInfo[] classesToReload)
Sets the unfiltered class list array and invokes an update.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 JTextAreaprivate void
selectAndSaveClassloader(java.lang.String s)
private void
selectClassloader(java.lang.String loader)
private void
selectClassLoader()
void
setAddActionListener(java.awt.event.ActionListener listener)
private void
setByteman(java.lang.String name)
void
setBytesActionListener(DecompilationController.BytesActionListener listener)
void
setClassesActionListener(DecompilationController.LoadClassNames listener)
void
setCompileListener(QuickCompiler listener)
void
setCompletionHelper(DecompilationController dec)
private void
setDecompiledClass(ClassInfo name, java.lang.String data, byte[] source, java.lang.String additionalData, byte[] additionalSource, VmInfo.Type vmInfoType, BytemanCompanion bytemanCompanion)
void
setDepsProvider(DependenciesReader depsReader)
void
setInitActionListener(java.awt.event.ActionListener listener)
void
setJarActionListener(java.awt.event.ActionListener listener)
(package private) void
setLastAddedFile(java.io.File lastAddedFile)
(package private) void
setLastAddedFqn(java.lang.String lastAddedFqn)
(package private) void
setLastFqn(java.lang.String lastFqn)
private void
setMaintitle()
void
setOverwriteActionListener(ClassOverwriter worker)
void
setPopup(DecompilationController.AgentApiGenerator ap)
void
setSearchInActionListener(java.awt.event.ActionListener o)
static java.lang.String
styleTooltip()
private void
unselectAndResetClassloader()
private void
unselectClassloader()
private void
updateClassList()
-
-
-
Field Detail
-
BYTEMAN_SCRIPT_TITLE
public static final java.lang.String BYTEMAN_SCRIPT_TITLE
- See Also:
- Constant Field Values
-
SEARCH_TEXT
public static final java.lang.String SEARCH_TEXT
- 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
-
filteredClassesRenderer
private ClassListRenderer filteredClassesRenderer
-
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
-
pluginComboBox
private javax.swing.JComboBox<DecompilerWrapper> pluginComboBox
-
buffers
private final javax.swing.JTabbedPane buffers
-
bytecodeBuffer
private TextWithControls bytecodeBuffer
-
binary
private HexWithControls binary
-
additionalSrcBuffer
private TextWithControls additionalSrcBuffer
-
additionalBytecodeBuffer
private TextWithControls additionalBytecodeBuffer
-
additionalBinary
private HexWithControls additionalBinary
-
bytemanScript
private TextWithControls bytemanScript
-
bytesActionListener
private DecompilationController.BytesActionListener bytesActionListener
-
classesActionListener
private DecompilationController.LoadClassNames 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
-
compileAction
private QuickCompiler compileAction
-
completionHelper
private ClassesAndMethodsProvider completionHelper
-
classpathProvider
private ClasspathProvider classpathProvider
-
overwriteActionListener
private OverwriteActionListener overwriteActionListener
-
dependenciesReader
private DependenciesReader dependenciesReader
-
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
-
mainFrame
private final MainFrameView 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(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)
-
getDependenciesReader
public DependenciesReader getDependenciesReader()
-
setDepsProvider
public void setDepsProvider(DependenciesReader depsReader)
-
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)
-
setClassesActionListener
public void setClassesActionListener(DecompilationController.LoadClassNames 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)
-
setCompletionHelper
public void setCompletionHelper(DecompilationController dec)
-
getCompletionHelper
public ClassesAndMethodsProvider getCompletionHelper()
-
setBytesActionListener
public void setBytesActionListener(DecompilationController.BytesActionListener listener)
-
setPopup
public void setPopup(DecompilationController.AgentApiGenerator ap)
-
setOverwriteActionListener
public void setOverwriteActionListener(ClassOverwriter worker)
-
refreshComboBox
public void refreshComboBox(java.util.List<DecompilerWrapper> wrappers)
-
getSelectedDecompiler
public DecompilerWrapper getSelectedDecompiler()
-
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()
-
getBytecodeBuffer
TextWithControls getBytecodeBuffer()
-
getLastDecompiledClass
ClassInfo getLastDecompiledClass()
-
getBuffers
javax.swing.JTabbedPane getBuffers()
-
getBinary
HexWithControls getBinary()
-
getAdditionalBytecodeBuffer
TextWithControls getAdditionalBytecodeBuffer()
-
getAdditionalBinary
HexWithControls getAdditionalBinary()
-
getBytemanScript
TextWithControls getBytemanScript()
-
getAdditionalSrcBuffer
TextWithControls getAdditionalSrcBuffer()
-
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()
-
getCompileAction
public QuickCompiler getCompileAction()
-
getPluginComboBox
public DecompilerWrapper getPluginComboBox()
-
getClasspathProvider
public ClasspathProvider getClasspathProvider()
-
getLastClassloader
public java.lang.String getLastClassloader()
-
isLastClassloader
public boolean isLastClassloader()
-
-