Package org.jrd.frontend.frame.main
Class BytecodeDecompilerView
- java.lang.Object
-
- org.jrd.frontend.frame.main.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.OverwriteActionListenerprivate static classBytecodeDecompilerView.SearchControlsPanelprivate static classBytecodeDecompilerView.UndoRedoKeyAdapter
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringATTACH_BUTTON_TEXTprivate javax.swing.JPanelbinaryBufferprivate javax.swing.JTabbedPanebuffersprivate javax.swing.JPanelbuffersPanelprivate javax.swing.JPanelbuffersToolBarprivate javax.swing.JPanelbytecodeDecompilerPanelprivate org.fife.ui.rtextarea.RTextScrollPanebytecodeScrollPaneprivate BytecodeDecompilerView.SearchControlsPanelbytecodeSearchControlsprivate org.fife.ui.rsyntaxtextarea.RSyntaxTextAreabytecodeSyntaxTextAreaprivate java.awt.event.ActionListenerbytesActionListenerprivate static java.util.Set<java.lang.Integer>CLASS_LIST_REGISTERED_KEY_CODESprivate javax.swing.JPanelclassesprivate java.awt.event.ActionListenerclassesActionListenerprivate javax.swing.JPanelclassesPanelprivate javax.swing.JScrollPaneclassesScrollPaneprivate javax.swing.JTextFieldclassesSortFieldprivate java.awt.ColorclassesSortFieldColorprivate javax.swing.JPanelclassesToolBarprivate DecompilationController.QuickCompilercompileActionprivate javax.swing.JButtoncompileAndUploadButtonprivate javax.swing.JButtoncompileButtonprivate static java.lang.StringDETACH_BUTTON_TEXTprivate javax.swing.JButtondetachButtonprivate javax.swing.JFramedetachedBytecodeFrameprivate javax.swing.JList<ClassInfo>filteredClassesJListprivate ClassListRendererfilteredClassesRendererprivate HexEditorhexprivate BytecodeDecompilerView.SearchControlsPanelhexSearchControlsprivate java.awt.event.ActionListenerinitActionListenerprivate javax.swing.JButtoninitClassButtonprivate javax.swing.JButtoninsertButtonprivate java.lang.StringlastDecompiledClassprivate java.lang.StringlastFqnprivate ClassInfo[]loadedClassesprivate javax.swing.JFramemainFrameprivate BytecodeDecompilerView.OverwriteActionListeneroverwriteActionListenerprivate javax.swing.JButtonoverwriteButtonprivate static java.awt.InsetsPANEL_INSETSprivate javax.swing.JComboBox<DecompilerWrapper>pluginComboBoxprivate DecompilationController.AgentApiGeneratorpopupprivate javax.swing.JButtonredoButtonprivate javax.swing.JButtonreloadClassesButtonprivate org.fife.ui.rtextarea.SearchContextsearchContextprivate booleanshouldAttachprivate javax.swing.JCheckBoxshowInfoCheckBoxprivate javax.swing.JPanelsourceBufferprivate 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 static java.awt.DimensionbuttonSizeBasedOnTextField(javax.swing.JButton originalButton, javax.swing.JTextField referenceTextField)private voidbytesWorker(java.lang.String name)private voidclassWorker()private voiddeselectBytecodeSyntaxArea()booleandoShowClassInfo()javax.swing.JPanelgetBytecodeDecompilerPanel()Constructor creates the graphics and adds the action listeners.DecompilerWrappergetSelectedDecompiler()private voidhandleBuffersDetaching()private voidhandleClassInfoSwitching()private voidinitialSearchBytecode(java.lang.String query, boolean isRegex, boolean matchesCase)private booleanisSourceBufferVisible()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)Sets the decompiled code into JTextAreaprivate voidsearchBytecode(boolean forward)voidsetBytesActionListener(java.awt.event.ActionListener listener)voidsetClassesActionListener(java.awt.event.ActionListener listener)voidsetCompileListener(DecompilationController.QuickCompiler listener)private voidsetDecompiledClass(java.lang.String name, java.lang.String data, byte[] source)voidsetInitActionListener(java.awt.event.ActionListener listener)voidsetOverwriteActionListener(DecompilationController.ClassOverwriter worker)voidsetPopup(DecompilationController.AgentApiGenerator ap)private voidshowApiMenu(java.awt.Point forcedLocation)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
-
showInfoCheckBox
private javax.swing.JCheckBox showInfoCheckBox
-
classesSortField
private javax.swing.JTextField classesSortField
-
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
-
undoButton
private javax.swing.JButton undoButton
-
redoButton
private javax.swing.JButton redoButton
-
insertButton
private javax.swing.JButton insertButton
-
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
-
sourceBuffer
private javax.swing.JPanel sourceBuffer
-
bytecodeScrollPane
private org.fife.ui.rtextarea.RTextScrollPane bytecodeScrollPane
-
bytecodeSyntaxTextArea
private org.fife.ui.rsyntaxtextarea.RSyntaxTextArea bytecodeSyntaxTextArea
-
bytecodeSearchControls
private BytecodeDecompilerView.SearchControlsPanel bytecodeSearchControls
-
binaryBuffer
private javax.swing.JPanel binaryBuffer
-
hex
private HexEditor hex
-
hexSearchControls
private BytecodeDecompilerView.SearchControlsPanel hexSearchControls
-
bytesActionListener
private java.awt.event.ActionListener bytesActionListener
-
classesActionListener
private java.awt.event.ActionListener classesActionListener
-
initActionListener
private java.awt.event.ActionListener initActionListener
-
compileAction
private DecompilationController.QuickCompiler compileAction
-
overwriteActionListener
private BytecodeDecompilerView.OverwriteActionListener overwriteActionListener
-
popup
private DecompilationController.AgentApiGenerator popup
-
loadedClasses
private ClassInfo[] loadedClasses
-
lastDecompiledClass
private java.lang.String lastDecompiledClass
-
lastFqn
private java.lang.String lastFqn
-
searchContext
private org.fife.ui.rtextarea.SearchContext searchContext
-
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()
-
isSourceBufferVisible
private boolean isSourceBufferVisible()
-
handleBuffersDetaching
private void handleBuffersDetaching()
-
styleTooltip
public static java.lang.String styleTooltip()
-
updateClassList
private void updateClassList()
-
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)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)
-
setClassesActionListener
public void setClassesActionListener(java.awt.event.ActionListener listener)
-
setInitActionListener
public void setInitActionListener(java.awt.event.ActionListener listener)
-
setCompileListener
public void setCompileListener(DecompilationController.QuickCompiler listener)
-
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()
-
initialSearchBytecode
private void initialSearchBytecode(java.lang.String query, boolean isRegex, boolean matchesCase)
-
searchBytecode
private void searchBytecode(boolean forward)
-
deselectBytecodeSyntaxArea
private void deselectBytecodeSyntaxArea()
-
showApiMenu
private void showApiMenu(java.awt.Point forcedLocation)
-
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()
-
-