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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classBytecodeDecompilerView.InitAddClassJarprivate classBytecodeDecompilerView.OverwriteActionListener
-
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.JPanelbytecodeDecompilerPanelprivate java.awt.event.ActionListenerbytesActionListenerprivate static java.util.Set<java.lang.Integer>CLASS_LIST_REGISTERED_KEY_CODESprivate javax.swing.JTextFieldclassCountprivate javax.swing.JPanelclassesprivate java.awt.event.ActionListenerclassesActionListenerprivate javax.swing.JPanelclassesPanelprivate javax.swing.JScrollPaneclassesScrollPaneprivate javax.swing.JTextFieldclassesSortFieldprivate java.awt.ColorclassesSortFieldColorprivate javax.swing.JPanelclassesToolBarprivate 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 java.lang.StringlastDecompiledClassprivate java.lang.StringlastFqnprivate java.lang.StringlastSearchprivate ClassInfo[]loadedClassesprivate javax.swing.JFramemainFrameprivate javax.swing.JCheckBoxmetadataprivate BytecodeDecompilerView.OverwriteActionListeneroverwriteActionListenerprivate javax.swing.JButtonoverwriteButtonprivate static java.awt.InsetsPANEL_INSETSprivate javax.swing.JComboBox<DecompilerWrapper>pluginComboBoxprivate javax.swing.JButtonredoButtonprivate javax.swing.JButtonreloadClassesButtonprivate java.awt.event.ActionListenersearchClassesActionListenerprivate javax.swing.JButtonsearchInClassesButtonprivate booleanshouldAttachprivate javax.swing.JCheckBoxshowInfoCheckBoxprivate javax.swing.JSplitPanesplitPaneprivate booleansplitPaneFirstResizeprivate javax.swing.JButtonundoButton
-
Constructor Summary
Constructors Constructor Description BytecodeDecompilerView(javax.swing.JFrame mainFrameReference)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddClassesGui(boolean boot, java.lang.String[] fqnFilePairs)private voidaddClassGui(java.lang.String fqn, java.lang.String file)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(java.lang.String name)private voidclassWorker()booleandoSearchInClassInfo()booleandoShowClassInfo()javax.swing.JPanelgetBytecodeDecompilerPanel()Constructor creates the graphics and adds the action listeners.ClassesAndMethodsProvidergetCompletionHelper()DependenciesReadergetDependenciesReader()DecompilerWrappergetSelectedDecompiler()private voidhandleBuffersDetaching()private voidhandleClassInfoSwitching(boolean reload)private voidinitGui(java.lang.String fqn)private booleanisAdditionalBinaryBufferVisible()private booleanisAdditionalDecompiledBytecodeBufferVisible()private booleanisAdditionalSrcBufferVisible()private booleanisBinaryBufferVisible()private booleanisDecompiledBytecodeBufferVisible()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(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 JTextAreavoidsetAddActionListener(java.awt.event.ActionListener listener)voidsetBytesActionListener(java.awt.event.ActionListener listener)voidsetClassesActionListener(java.awt.event.ActionListener listener)voidsetCompileListener(QuickCompiler listener)voidsetCompletionHelper(DecompilationController dec)private voidsetDecompiledClass(java.lang.String name, java.lang.String data, byte[] source, java.lang.String additionalData, byte[] additionalSource, java.lang.String additionalSrcData)voidsetDepsProvider(DependenciesReader depsReader)voidsetInitActionListener(java.awt.event.ActionListener listener)voidsetJarActionListener(java.awt.event.ActionListener listener)voidsetOverwriteActionListener(DecompilationController.ClassOverwriter worker)voidsetPopup(DecompilationController.AgentApiGenerator ap)voidsetSearchInActionListener(java.awt.event.ActionListener o)static java.lang.StringstyleTooltip()private voidupdateClassList()
-
-
-
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
-
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
-
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
-
compileAction
private QuickCompiler compileAction
-
completionHelper
private ClassesAndMethodsProvider completionHelper
-
overwriteActionListener
private BytecodeDecompilerView.OverwriteActionListener overwriteActionListener
-
dependenciesReader
private DependenciesReader dependenciesReader
-
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
-
-
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)
-
getDependenciesReader
public DependenciesReader getDependenciesReader()
-
setDepsProvider
public void setDepsProvider(DependenciesReader depsReader)
-
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)
-
setCompletionHelper
public void setCompletionHelper(DecompilationController dec)
-
getCompletionHelper
public ClassesAndMethodsProvider getCompletionHelper()
-
setBytesActionListener
public void setBytesActionListener(java.awt.event.ActionListener listener)
-
setPopup
public void setPopup(DecompilationController.AgentApiGenerator ap)
-
setOverwriteActionListener
public void setOverwriteActionListener(DecompilationController.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(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
-
-