Class BytecodeDecompilerView
- java.lang.Object
-
- org.jrd.frontend.frame.main.decompilerview.BytecodeDecompilerView
-
public class BytecodeDecompilerView extends java.lang.ObjectClass that creates GUI for attached VM.
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.event.ActionListeneraddActionListenerprivate HexWithControlsadditionalBinaryprivate TextWithControlsadditionalBytecodeBufferprivate TextWithControlsadditionalSrcBufferprivate java.awt.event.ActionListeneraddJarprivate static java.lang.StringATTACH_BUTTON_TEXTprivate HexWithControlsbinaryprivate javax.swing.JTabbedPanebuffersprivate javax.swing.JPanelbuffersPanelprivate javax.swing.JPanelbuffersToolBarprivate TextWithControlsbytecodeBufferprivate javax.swing.JButtonbytecodeButtonprivate javax.swing.JPanelbytecodeDecompilerPanelstatic java.lang.StringBYTEMAN_SCRIPT_TITLEprivate TextWithControlsbytemanScriptprivate DecompilationController.BytesActionListenerbytesActionListenerprivate static java.util.Set<java.lang.Integer>CLASS_LIST_REGISTERED_KEY_CODESprivate javax.swing.JTextFieldclassCountprivate javax.swing.JPanelclassesprivate DecompilationController.LoadClassNamesclassesActionListenerprivate javax.swing.JPanelclassesPanelprivate javax.swing.JScrollPaneclassesScrollPaneprivate javax.swing.JTextFieldclassesSortFieldprivate java.awt.ColorclassesSortFieldColorprivate javax.swing.JPanelclassesToolBarprivate javax.swing.JCheckBoxclassloaderAutoprivate javax.swing.JTextFieldclassloaderRestrictionprivate ClasspathProviderclasspathProviderprivate javax.swing.JButtoncleanClassloaderprivate QuickCompilercompileActionprivate javax.swing.JButtoncompileAndUploadButtonprivate javax.swing.JButtoncompileButtonprivate ClassesAndMethodsProvidercompletionHelperprivate DependenciesReaderdependenciesReaderprivate static java.lang.StringDETACH_BUTTON_TEXTprivate javax.swing.JButtondetachButtonprivate javax.swing.JFramedetachedBytecodeFrameprivate javax.swing.JButtondiffButtonprivate javax.swing.JList<ClassInfo>filteredClassesJListprivate ClassListRendererfilteredClassesRendererprivate java.awt.event.ActionListenerinitActionListenerprivate javax.swing.JButtoninitClassButtonprivate javax.swing.JButtoninsertButtonprivate java.io.FilelastAddedFileprivate java.lang.StringlastAddedFqnprivate ClassInfolastDecompiledClassprivate java.lang.StringlastFqnprivate java.lang.StringlastSearchprivate ClassInfo[]loadedClassesprivate MainFrameViewmainFrameprivate javax.swing.JCheckBoxmetadataprivate OverwriteActionListeneroverwriteActionListenerprivate javax.swing.JButtonoverwriteButtonprivate static java.awt.InsetsPANEL_INSETSprivate javax.swing.JComboBox<DecompilerWrapper>pluginComboBoxprivate javax.swing.JButtonredoButtonprivate javax.swing.JButtonreloadClassesButtonprivate javax.swing.JCheckBoxrestrictLaoderstatic java.lang.StringSEARCH_TEXTprivate java.awt.event.ActionListenersearchClassesActionListenerprivate javax.swing.JButtonsearchInClassesButtonprivate booleanshouldAttachprivate javax.swing.JCheckBoxshowInfoCheckBoxprivate javax.swing.JSplitPanesplitPaneprivate booleansplitPaneFirstResizeprivate javax.swing.JButtonundoButton
-
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) voidaddClassesGui(boolean boot, java.lang.String[] fqnFilePairs)(package private) voidaddClassGui(java.lang.String fqn, java.lang.String file)(package private) voidaddJar(boolean boot, java.lang.String file, java.lang.String name)static java.awt.DimensionbuttonSizeBasedOnTextField(javax.swing.JButton originalButton, javax.swing.JTextField referenceTextField)private voidbytesWorker(ClassInfo clazz)private voidclassWorker()booleandoSearchInClassInfo()booleandoShowClassInfo()(package private) HexWithControlsgetAdditionalBinary()(package private) TextWithControlsgetAdditionalBytecodeBuffer()(package private) TextWithControlsgetAdditionalSrcBuffer()(package private) HexWithControlsgetBinary()(package private) javax.swing.JTabbedPanegetBuffers()(package private) TextWithControlsgetBytecodeBuffer()javax.swing.JPanelgetBytecodeDecompilerPanel()Constructor creates the graphics and adds the action listeners.(package private) TextWithControlsgetBytemanScript()ClasspathProvidergetClasspathProvider()QuickCompilergetCompileAction()ClassesAndMethodsProvidergetCompletionHelper()DependenciesReadergetDependenciesReader()java.io.FilegetLastAddedFile()java.lang.StringgetLastAddedFqn()java.lang.StringgetLastClassloader()(package private) ClassInfogetLastDecompiledClass()java.lang.StringgetLastFqn()DecompilerWrappergetPluginComboBox()DecompilerWrappergetSelectedDecompiler()static java.lang.StringgetStyledRegexTooltip()private voidhandleBuffersDetaching()private voidhandleClassInfoSwitching(boolean reload)(package private) voidinitGui(java.lang.String fqn)(package private) booleanisAdditionalBinaryBufferVisible()(package private) booleanisAdditionalDecompiledBytecodeBufferVisible()(package private) booleanisAdditionalSrcBufferVisible()(package private) booleanisBinaryBufferVisible()(package private) booleanisBytemanBufferVisible()(package private) booleanisDecompiledBytecodeBufferVisible()booleanisLastClassloader()private booleanmatchesAny(java.util.List<ClassInfo> filtered, java.util.regex.Pattern p, ClassInfo clazz)voidrefreshComboBox(java.util.List<DecompilerWrapper> wrappers)voidreloadClassList(ClassInfo[] classesToReload)Sets the unfiltered class list array and invokes an update.voidreloadTextField(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 voidselectAndSaveClassloader(java.lang.String s)private voidselectClassloader(java.lang.String loader)private voidselectClassLoader()voidsetAddActionListener(java.awt.event.ActionListener listener)private voidsetByteman(java.lang.String name)voidsetBytesActionListener(DecompilationController.BytesActionListener listener)voidsetClassesActionListener(DecompilationController.LoadClassNames listener)voidsetCompileListener(QuickCompiler listener)voidsetCompletionHelper(DecompilationController dec)private voidsetDecompiledClass(ClassInfo name, java.lang.String data, byte[] source, java.lang.String additionalData, byte[] additionalSource, VmInfo.Type vmInfoType, BytemanCompanion bytemanCompanion)voidsetDepsProvider(DependenciesReader depsReader)voidsetInitActionListener(java.awt.event.ActionListener listener)voidsetJarActionListener(java.awt.event.ActionListener listener)(package private) voidsetLastAddedFile(java.io.File lastAddedFile)(package private) voidsetLastAddedFqn(java.lang.String lastAddedFqn)(package private) voidsetLastFqn(java.lang.String lastFqn)private voidsetMaintitle()voidsetOverwriteActionListener(ClassOverwriter worker)voidsetPopup(DecompilationController.AgentApiGenerator ap)voidsetSearchInActionListener(java.awt.event.ActionListener o)static java.lang.StringstyleTooltip()private voidunselectAndResetClassloader()private voidunselectClassloader()private voidupdateClassList()
-
-
-
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()
-
-