mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-07 16:55:07 +00:00
Issue #707 Debugger for logging messages
This commit is contained in:
@@ -93,6 +93,9 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener {
|
||||
static final String ACTION_TIMELINE = "TIMELINE";
|
||||
static final String ACTION_AUTO_DEOBFUSCATE = "AUTODEOBFUSCATE";
|
||||
static final String ACTION_EXIT = "EXIT";
|
||||
static final String ACTION_DEBUGGER_SWITCH = "DEBUGGER_SWITCH";
|
||||
static final String ACTION_DEBUGGER_REPLACE_TRACE = "DEBUGGER_REPLACE_TRACE";
|
||||
static final String ACTION_DEBUGGER_LOG = "DEBUGGER_LOG";
|
||||
|
||||
static final String ACTION_RENAME_ONE_IDENTIFIER = "RENAMEONEIDENTIFIER";
|
||||
static final String ACTION_ABOUT = "ABOUT";
|
||||
@@ -158,6 +161,10 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener {
|
||||
private CommandToggleButtonGroup timeLineToggleGroup;
|
||||
private JCommandButton gotoDocumentClassCommandButton;
|
||||
private JCommandButton clearRecentFilesCommandButton;
|
||||
private JCommandToggleButton debuggerSwitchCommandButton;
|
||||
private CommandToggleButtonGroup debuggerSwitchGroup;
|
||||
private JCommandButton debuggerReplaceTraceCommandButton;
|
||||
private JCommandButton debuggerLogCommandButton;
|
||||
|
||||
private CommandToggleButtonGroup viewModeToggleGroup;
|
||||
|
||||
@@ -385,13 +392,43 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener {
|
||||
}
|
||||
|
||||
private RibbonTask createToolsRibbonTask() {
|
||||
|
||||
|
||||
JRibbonBand debuggerBand = new JRibbonBand(translate("menu.debugger"), null);
|
||||
debuggerBand.setResizePolicies(getResizePolicies(debuggerBand));
|
||||
|
||||
debuggerSwitchCommandButton = new JCommandToggleButton(translate("menu.debugger.switch"),View.getResizableIcon("debugger32"));
|
||||
assignListener(debuggerSwitchCommandButton, ACTION_DEBUGGER_SWITCH);
|
||||
|
||||
//debuggerDetachCommandButton = new JCommandButton("Detach debugger",View.getResizableIcon("debuggerremove16"));
|
||||
//assignListener(debuggerDetachCommandButton, ACTION_DEBUGGER_DETACH);
|
||||
|
||||
debuggerReplaceTraceCommandButton = new JCommandButton(translate("menu.debugger.replacetrace"), View.getResizableIcon("debuggerreplace16"));
|
||||
assignListener(debuggerReplaceTraceCommandButton, ACTION_DEBUGGER_REPLACE_TRACE);
|
||||
|
||||
debuggerLogCommandButton = new JCommandButton(translate("menu.debugger.showlog"), View.getResizableIcon("debuggerlog16"));
|
||||
assignListener(debuggerLogCommandButton, ACTION_DEBUGGER_LOG);
|
||||
|
||||
debuggerSwitchGroup = new CommandToggleButtonGroup();
|
||||
debuggerSwitchGroup.add(debuggerSwitchCommandButton);
|
||||
|
||||
debuggerSwitchCommandButton.setEnabled(false);
|
||||
|
||||
debuggerReplaceTraceCommandButton.setEnabled(false);
|
||||
|
||||
debuggerBand.addCommandButton(debuggerSwitchCommandButton, RibbonElementPriority.TOP);
|
||||
debuggerBand.addCommandButton(debuggerReplaceTraceCommandButton, RibbonElementPriority.MEDIUM);
|
||||
debuggerBand.addCommandButton(debuggerLogCommandButton, RibbonElementPriority.MEDIUM);
|
||||
|
||||
|
||||
|
||||
//----------------------------------------- TOOLS -----------------------------------
|
||||
|
||||
JRibbonBand toolsBand = new JRibbonBand(translate("menu.tools"), null);
|
||||
toolsBand.setResizePolicies(getResizePolicies(toolsBand));
|
||||
|
||||
searchCommandButton = new JCommandButton(fixCommandTitle(translate("menu.tools.search")), View.getResizableIcon("search32"));
|
||||
assignListener(searchCommandButton, ACTION_SEARCH);
|
||||
assignListener(searchCommandButton, ACTION_SEARCH);
|
||||
|
||||
timeLineToggleButton = new JCommandToggleButton(fixCommandTitle(translate("menu.tools.timeline")), View.getResizableIcon("timeline32"));
|
||||
assignListener(timeLineToggleButton, ACTION_TIMELINE);
|
||||
@@ -436,7 +473,7 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener {
|
||||
|
||||
//JRibbonBand otherToolsBand = new JRibbonBand(translate("menu.tools.otherTools"), null);
|
||||
//otherToolsBand.setResizePolicies(getResizePolicies(otherToolsBand));
|
||||
return new RibbonTask(translate("menu.tools"), toolsBand, deobfuscationBand/*, otherToolsBand*/);
|
||||
return new RibbonTask(translate("menu.tools"), toolsBand, deobfuscationBand, debuggerBand /*, otherToolsBand*/);
|
||||
}
|
||||
|
||||
private RibbonTask createSettingsRibbonTask(boolean externalFlashPlayerUnavailable) {
|
||||
@@ -598,7 +635,8 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener {
|
||||
public void updateComponents(SWF swf, List<ABCContainerTag> abcList) {
|
||||
boolean swfLoaded = swf != null;
|
||||
boolean hasAbc = swfLoaded && abcList != null && !abcList.isEmpty();
|
||||
|
||||
boolean hasDebugger = hasAbc && Main.hasDebugger(swf);
|
||||
|
||||
exportAllMenu.setEnabled(swfLoaded);
|
||||
exportFlaMenu.setEnabled(swfLoaded);
|
||||
exportSelMenu.setEnabled(swfLoaded);
|
||||
@@ -625,6 +663,12 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener {
|
||||
|
||||
gotoDocumentClassCommandButton.setEnabled(hasAbc);
|
||||
deobfuscationCommandButton.setEnabled(hasAbc);
|
||||
debuggerSwitchCommandButton.setEnabled(hasAbc);
|
||||
debuggerSwitchGroup.setSelected(debuggerSwitchCommandButton, hasDebugger);
|
||||
//debuggerSwitchCommandButton.
|
||||
//debuggerDetachCommandButton.setEnabled(hasDebugger);
|
||||
debuggerReplaceTraceCommandButton.setEnabled(hasAbc && hasDebugger);
|
||||
|
||||
}
|
||||
|
||||
private boolean saveAs(SWF swf, SaveFileMode mode) {
|
||||
@@ -640,6 +684,28 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
switch (e.getActionCommand()) {
|
||||
case ACTION_DEBUGGER_SWITCH:
|
||||
if(debuggerSwitchGroup.getSelected()==null || View.showConfirmDialog(mainFrame, translate("message.debugger"), translate("dialog.message.title"),JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE, Configuration.displayDebuggerInfo,JOptionPane.OK_OPTION)==JOptionPane.OK_OPTION){
|
||||
Main.switchDebugger();
|
||||
mainFrame.panel.refreshDecompiled();
|
||||
}else{
|
||||
if(debuggerSwitchGroup.getSelected()==debuggerSwitchCommandButton){
|
||||
debuggerSwitchGroup.setSelected(debuggerSwitchCommandButton, false);
|
||||
}
|
||||
}
|
||||
debuggerReplaceTraceCommandButton.setEnabled(debuggerSwitchGroup.getSelected()==debuggerSwitchCommandButton);
|
||||
break;
|
||||
case ACTION_DEBUGGER_LOG:
|
||||
Main.debuggerShowLog();
|
||||
break;
|
||||
case ACTION_DEBUGGER_REPLACE_TRACE:
|
||||
ReplaceTraceDialog rtd = new ReplaceTraceDialog(mainFrame);
|
||||
rtd.setVisible(true);
|
||||
if(rtd.getResult()!=null){
|
||||
Main.replaceTraceCalls(rtd.getResult());
|
||||
mainFrame.panel.refreshDecompiled();
|
||||
}
|
||||
break;
|
||||
case ACTION_RELOAD:
|
||||
if (View.showConfirmDialog(null, translate("message.confirm.reload"), translate("message.warning"), JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) {
|
||||
Main.reloadApp();
|
||||
|
||||
Reference in New Issue
Block a user