action lsiteners converted to java 8 member references 2

This commit is contained in:
honfika@gmail.com
2015-05-03 10:29:05 +02:00
parent 183105b5c2
commit 1de608207f
7 changed files with 566 additions and 1000 deletions

View File

@@ -20,98 +20,19 @@ import com.jpexs.decompiler.flash.SWF;
import com.jpexs.decompiler.flash.configuration.Configuration;
import com.jpexs.decompiler.flash.console.ContextMenuTools;
import com.jpexs.decompiler.flash.tags.ABCContainerTag;
import com.jpexs.helpers.Cache;
import com.sun.jna.Platform;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
/**
*
* @author JPEXS
*/
public class MainFrameClassicMenu extends MainFrameMenu implements ActionListener {
private static final String ACTION_RELOAD = "RELOAD";
private static final String ACTION_ADVANCED_SETTINGS = "ADVANCEDSETTINGS";
private static final String ACTION_LOAD_MEMORY = "LOADMEMORY";
private static final String ACTION_LOAD_CACHE = "LOADCACHE";
private static final String ACTION_GOTO_DOCUMENT_CLASS_ON_STARTUP = "GOTODOCUMENTCLASSONSTARTUP";
private static final String ACTION_AUTO_RENAME_IDENTIFIERS = "AUTORENAMEIDENTIFIERS";
private static final String ACTION_CACHE_ON_DISK = "CACHEONDISK";
private static final String ACTION_SET_LANGUAGE = "SETLANGUAGE";
private static final String ACTION_DISABLE_DECOMPILATION = "DISABLEDECOMPILATION";
private static final String ACTION_ASSOCIATE = "ASSOCIATE";
private static final String ACTION_GOTO_DOCUMENT_CLASS = "GOTODOCUMENTCLASS";
private static final String ACTION_PARALLEL_SPEED_UP = "PARALLELSPEEDUP";
private static final String ACTION_INTERNAL_VIEWER_SWITCH = "INTERNALVIEWERSWITCH";
private static final String ACTION_SEARCH = "SEARCH";
private static final String ACTION_AUTO_DEOBFUSCATE = "AUTODEOBFUSCATE";
private static final String ACTION_EXIT = "EXIT";
private static final String ACTION_RENAME_ONE_IDENTIFIER = "RENAMEONEIDENTIFIER";
private static final String ACTION_ABOUT = "ABOUT";
private static final String ACTION_SHOW_PROXY = "SHOWPROXY";
private static final String ACTION_SUB_LIMITER = "SUBLIMITER";
private static final String ACTION_SAVE = "SAVE";
private static final String ACTION_SAVE_AS = "SAVEAS";
private static final String ACTION_SAVE_AS_EXE = "SAVEASEXE";
private static final String ACTION_OPEN = "OPEN";
private static final String ACTION_EXPORT_FLA = "EXPORTFLA";
private static final String ACTION_EXPORT_SEL = "EXPORTSEL";
private static final String ACTION_EXPORT = "EXPORT";
private static final String ACTION_CHECK_UPDATES = "CHECKUPDATES";
private static final String ACTION_HELP_US = "HELPUS";
private static final String ACTION_HOMEPAGE = "HOMEPAGE";
private static final String ACTION_RESTORE_CONTROL_FLOW = "RESTORECONTROLFLOW";
private static final String ACTION_RESTORE_CONTROL_FLOW_ALL = "RESTORECONTROLFLOWALL";
private static final String ACTION_RENAME_IDENTIFIERS = "RENAMEIDENTIFIERS";
private static final String ACTION_DEOBFUSCATE = "DEOBFUSCATE";
private static final String ACTION_DEOBFUSCATE_ALL = "DEOBFUSCATEALL";
private static final String ACTION_REMOVE_NON_SCRIPTS = "REMOVENONSCRIPTS";
private static final String ACTION_REFRESH_DECOMPILED = "REFRESHDECOMPILED";
public class MainFrameClassicMenu extends MainFrameMenu {
private final MainFrameClassic mainFrame;
@@ -131,30 +52,6 @@ public class MainFrameClassicMenu extends MainFrameMenu implements ActionListene
private JCheckBoxMenuItem miAutoRenameIdentifiers;
private JMenuItem saveCommandButton;
private JMenuItem saveasCommandButton;
private JMenuItem saveasexeCommandButton;
private JMenuItem exportAllCommandButton;
private JMenuItem exportFlaCommandButton;
private JMenuItem exportSelectionCommandButton;
private JMenuItem reloadCommandButton;
private JMenuItem renameInvalidCommandButton;
private JMenuItem globalRenameCommandButton;
private JMenuItem deobfuscationCommandButton;
private JMenuItem searchCommandButton;
private JMenuItem gotoDocumentClassCommandButton;
public MainFrameClassicMenu(MainFrameClassic mainFrame, boolean externalFlashPlayerUnavailable) {
super(mainFrame);
this.mainFrame = mainFrame;
@@ -167,16 +64,6 @@ public class MainFrameClassicMenu extends MainFrameMenu implements ActionListene
return miInternalViewer.isSelected();
}
private void assignListener(JMenuItem b, final String command) {
final MainFrameClassicMenu t = this;
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
t.actionPerformed(new ActionEvent(e.getSource(), 0, command));
}
});
}
private String fixCommandTitle(String title) {
if (title.length() > 2) {
if (title.charAt(1) == ' ') {
@@ -192,32 +79,25 @@ public class MainFrameClassicMenu extends MainFrameMenu implements ActionListene
JMenu menuFile = new JMenu(translate("menu.file"));
JMenuItem miOpen = new JMenuItem(translate("menu.file.open"));
miOpen.setIcon(View.getIcon("open16"));
miOpen.setActionCommand(ACTION_OPEN);
miOpen.addActionListener(this);
miOpen.addActionListener(this::open);
JMenuItem miSave = new JMenuItem(translate("menu.file.save"));
miSave.setIcon(View.getIcon("save16"));
miSave.setActionCommand(ACTION_SAVE);
miSave.addActionListener(this);
miSave.addActionListener(this::save);
JMenuItem miSaveAs = new JMenuItem(translate("menu.file.saveas"));
miSaveAs.setIcon(View.getIcon("saveas16"));
miSaveAs.setActionCommand(ACTION_SAVE_AS);
miSaveAs.addActionListener(this);
miSaveAs.addActionListener(this::saveAs);
JMenuItem miSaveAsExe = new JMenuItem(translate("menu.file.saveasexe"));
miSaveAsExe.setIcon(View.getIcon("saveas16"));
miSaveAsExe.setActionCommand(ACTION_SAVE_AS_EXE);
miSaveAsExe.addActionListener(this);
miSaveAsExe.addActionListener(this::saveAsExe);
JMenuItem menuExportFla = new JMenuItem(translate("menu.file.export.fla"));
menuExportFla.setActionCommand(ACTION_EXPORT_FLA);
menuExportFla.addActionListener(this);
menuExportFla.addActionListener(this::exportFla);
menuExportFla.setIcon(View.getIcon("flash16"));
JMenuItem menuExportAll = new JMenuItem(translate("menu.file.export.all"));
menuExportAll.setActionCommand(ACTION_EXPORT);
menuExportAll.addActionListener(this);
menuExportAll.addActionListener(this::exportAll);
JMenuItem menuExportSel = new JMenuItem(translate("menu.file.export.selection"));
menuExportSel.setActionCommand(ACTION_EXPORT_SEL);
menuExportSel.addActionListener(this);
menuExportSel.addActionListener(this::exportSelected);
menuExportAll.setIcon(View.getIcon("export16"));
menuExportSel.setIcon(View.getIcon("exportsel16"));
@@ -231,42 +111,37 @@ public class MainFrameClassicMenu extends MainFrameMenu implements ActionListene
menuFile.addSeparator();
JMenuItem miClose = new JMenuItem(translate("menu.file.exit"));
miClose.setIcon(View.getIcon("exit16"));
miClose.setActionCommand(ACTION_EXIT);
miClose.addActionListener(this);
miClose.addActionListener(this::exit);
menuFile.add(miClose);
menuBar.add(menuFile);
JMenu menuDeobfuscation = new JMenu(translate("menu.tools.deobfuscation"));
menuDeobfuscation.setIcon(View.getIcon("deobfuscate16"));
JMenuItem miDeobfuscation = new JMenuItem(translate("menu.tools.deobfuscation.pcode"));
miDeobfuscation.setActionCommand(ACTION_DEOBFUSCATE);
miDeobfuscation.addActionListener(this);
miDeobfuscation.addActionListener(this::deobfuscate);
miAutoDeobfuscation = new JCheckBoxMenuItem(translate("menu.settings.autodeobfuscation"));
miAutoDeobfuscation.setSelected(Configuration.autoDeobfuscate.get());
miAutoDeobfuscation.addActionListener(this);
miAutoDeobfuscation.setActionCommand(ACTION_AUTO_DEOBFUSCATE);
miAutoDeobfuscation.addActionListener(this::autoDeobfuscate);
JMenuItem miRenameOneIdentifier = new JMenuItem(translate("menu.tools.deobfuscation.globalrename"));
miRenameOneIdentifier.setActionCommand(ACTION_RENAME_ONE_IDENTIFIER);
miRenameOneIdentifier.addActionListener(this);
miRenameOneIdentifier.addActionListener(this::renameOneIdentifier);
JMenuItem miRenameIdentifiers = new JMenuItem(translate("menu.tools.deobfuscation.renameinvalid"));
miRenameIdentifiers.setActionCommand(ACTION_RENAME_IDENTIFIERS);
miRenameIdentifiers.addActionListener(this);
miRenameIdentifiers.addActionListener(this::renameIdentifiers);
menuDeobfuscation.add(miRenameOneIdentifier);
menuDeobfuscation.add(miRenameIdentifiers);
menuDeobfuscation.add(miDeobfuscation);
JMenu menuTools = new JMenu(translate("menu.tools"));
JMenuItem miProxy = new JMenuItem(translate("menu.tools.proxy"));
miProxy.setActionCommand(ACTION_SHOW_PROXY);
miProxy.setIcon(View.getIcon("proxy16"));
miProxy.addActionListener(this);
miProxy.addActionListener(this::showProxy);
JMenuItem miSearchScript = new JMenuItem(translate("menu.tools.searchas"));
miSearchScript.addActionListener(this);
miSearchScript.setActionCommand(ACTION_SEARCH);
miSearchScript.addActionListener((ActionEvent e) -> {
search(e, null);
});
miSearchScript.setIcon(View.getIcon("search16"));
menuTools.add(miSearchScript);
@@ -276,42 +151,35 @@ public class MainFrameClassicMenu extends MainFrameMenu implements ActionListene
if (externalFlashPlayerUnavailable) {
miInternalViewer.setEnabled(false);
}
miInternalViewer.setActionCommand(ACTION_INTERNAL_VIEWER_SWITCH);
miInternalViewer.addActionListener(this);
miInternalViewer.addActionListener(this::internalViewerSwitch);
miParallelSpeedUp = new JCheckBoxMenuItem(translate("menu.settings.parallelspeedup"));
miParallelSpeedUp.setSelected(Configuration.parallelSpeedUp.get());
miParallelSpeedUp.setActionCommand(ACTION_PARALLEL_SPEED_UP);
miParallelSpeedUp.addActionListener(this);
miParallelSpeedUp.addActionListener(this::parallelSpeedUp);
menuTools.add(miProxy);
menuTools.add(menuDeobfuscation);
JMenuItem miGotoDocumentClass = new JMenuItem(translate("menu.tools.gotodocumentclass"));
miGotoDocumentClass.setActionCommand(ACTION_GOTO_DOCUMENT_CLASS);
miGotoDocumentClass.addActionListener(this);
miGotoDocumentClass.addActionListener(this::gotoDucumentClass);
menuBar.add(menuTools);
miDecompile = new JCheckBoxMenuItem(translate("menu.settings.disabledecompilation"));
miDecompile.setSelected(!Configuration.decompile.get());
miDecompile.setActionCommand(ACTION_DISABLE_DECOMPILATION);
miDecompile.addActionListener(this);
miDecompile.addActionListener(this::disableDecompilation);
miCacheDisk = new JCheckBoxMenuItem(translate("menu.settings.cacheOnDisk"));
miCacheDisk.setSelected(Configuration.cacheOnDisk.get());
miCacheDisk.setActionCommand(ACTION_CACHE_ON_DISK);
miCacheDisk.addActionListener(this);
miCacheDisk.addActionListener(this::cacheOnDisk);
miGotoMainClassOnStartup = new JCheckBoxMenuItem(translate("menu.settings.gotoMainClassOnStartup"));
miGotoMainClassOnStartup.setSelected(Configuration.gotoMainClassOnStartup.get());
miGotoMainClassOnStartup.setActionCommand(ACTION_GOTO_DOCUMENT_CLASS_ON_STARTUP);
miGotoMainClassOnStartup.addActionListener(this);
miGotoMainClassOnStartup.addActionListener(this::gotoDucumentClassOnStartup);
miAutoRenameIdentifiers = new JCheckBoxMenuItem(translate("menu.settings.autoRenameIdentifiers"));
miAutoRenameIdentifiers.setSelected(Configuration.autoRenameIdentifiers.get());
miAutoRenameIdentifiers.setActionCommand(ACTION_AUTO_RENAME_IDENTIFIERS);
miAutoRenameIdentifiers.addActionListener(this);
miAutoRenameIdentifiers.addActionListener(this::autoRenameIdentifiers);
JMenu menuSettings = new JMenu(translate("menu.settings"));
menuSettings.add(miAutoDeobfuscation);
@@ -323,13 +191,11 @@ public class MainFrameClassicMenu extends MainFrameMenu implements ActionListene
menuSettings.add(miAutoRenameIdentifiers);
miAssociate = new JCheckBoxMenuItem(translate("menu.settings.addtocontextmenu"));
miAssociate.setActionCommand(ACTION_ASSOCIATE);
miAssociate.addActionListener(this);
miAssociate.addActionListener(this::associate);
miAssociate.setSelected(ContextMenuTools.isAddedToContextMenu());
JMenuItem miLanguage = new JMenuItem(translate("menu.settings.language"));
miLanguage.setActionCommand(ACTION_SET_LANGUAGE);
miLanguage.addActionListener(this);
miLanguage.addActionListener(this::setLanguage);
if (Platform.isWindows()) {
menuSettings.add(miAssociate);
@@ -337,33 +203,27 @@ public class MainFrameClassicMenu extends MainFrameMenu implements ActionListene
menuSettings.add(miLanguage);
JMenuItem advancedSettingsCommandButton = new JMenuItem(translate("menu.advancedsettings.advancedsettings"));
advancedSettingsCommandButton.setActionCommand(ACTION_ADVANCED_SETTINGS);
advancedSettingsCommandButton.setIcon(View.getIcon("settings16"));
advancedSettingsCommandButton.addActionListener(this);
advancedSettingsCommandButton.addActionListener(this::advancedSettings);
menuSettings.add(advancedSettingsCommandButton);
menuBar.add(menuSettings);
JMenu menuHelp = new JMenu(translate("menu.help"));
JMenuItem miAbout = new JMenuItem(translate("menu.help.about"));
miAbout.setIcon(View.getIcon("about16"));
miAbout.setActionCommand(ACTION_ABOUT);
miAbout.addActionListener(this);
miAbout.addActionListener(this::about);
JMenuItem miCheckUpdates = new JMenuItem(translate("menu.help.checkupdates"));
miCheckUpdates.setActionCommand(ACTION_CHECK_UPDATES);
miCheckUpdates.setIcon(View.getIcon("update16"));
miCheckUpdates.addActionListener(this);
miCheckUpdates.addActionListener(this::checkUpdates);
JMenuItem miHelpUs = new JMenuItem(translate("menu.help.helpus"));
miHelpUs.setActionCommand(ACTION_HELP_US);
miHelpUs.setIcon(View.getIcon("donate16"));
miHelpUs.addActionListener(this);
miHelpUs.addActionListener(this::helpUs);
JMenuItem miHomepage = new JMenuItem(translate("menu.help.homepage"));
miHomepage.setActionCommand(ACTION_HOMEPAGE);
miHomepage.setIcon(View.getIcon("homepage16"));
miHomepage.addActionListener(this);
miHomepage.addActionListener(this::homePage);
menuHelp.add(miCheckUpdates);
menuHelp.add(miHelpUs);
@@ -401,157 +261,4 @@ public class MainFrameClassicMenu extends MainFrameMenu implements ActionListene
gotoDocumentClassCommandButton.setEnabled(hasAbc);
deobfuscationCommandButton.setEnabled(hasAbc);*/
}
@Override
public void actionPerformed(ActionEvent e) {
switch (e.getActionCommand()) {
case ACTION_RELOAD:
reload(null);
break;
case ACTION_ADVANCED_SETTINGS:
advancedSettings(null);
break;
case ACTION_LOAD_MEMORY:
loadFromMemory(null);
break;
case ACTION_LOAD_CACHE:
loadFromCache(null);
break;
case ACTION_GOTO_DOCUMENT_CLASS_ON_STARTUP:
Configuration.gotoMainClassOnStartup.set(miGotoMainClassOnStartup.isSelected());
break;
case ACTION_AUTO_RENAME_IDENTIFIERS:
Configuration.autoRenameIdentifiers.set(miAutoRenameIdentifiers.isSelected());
break;
case ACTION_CACHE_ON_DISK:
Configuration.cacheOnDisk.set(miCacheDisk.isSelected());
if (miCacheDisk.isSelected()) {
Cache.setStorageType(Cache.STORAGE_FILES);
} else {
Cache.setStorageType(Cache.STORAGE_MEMORY);
}
break;
case ACTION_SET_LANGUAGE:
setLanguage();
break;
case ACTION_DISABLE_DECOMPILATION:
Configuration.decompile.set(!miDecompile.isSelected());
mainFrame.getPanel().disableDecompilationChanged();
break;
case ACTION_ASSOCIATE:
if (miAssociate.isSelected() == ContextMenuTools.isAddedToContextMenu()) {
return;
}
ContextMenuTools.addToContextMenu(miAssociate.isSelected(), false);
// Update checkbox menuitem accordingly (User can cancel rights elevation)
new Timer().schedule(new TimerTask() {
@Override
public void run() {
miAssociate.setSelected(ContextMenuTools.isAddedToContextMenu());
}
}, 1000); // It takes some time registry change to apply
break;
case ACTION_GOTO_DOCUMENT_CLASS:
mainFrame.getPanel().gotoDocumentClass(mainFrame.getPanel().getCurrentSwf());
break;
case ACTION_PARALLEL_SPEED_UP:
String confStr = translate("message.confirm.parallel") + "\r\n";
if (miParallelSpeedUp.isSelected()) {
confStr += " " + translate("message.confirm.on");
} else {
confStr += " " + translate("message.confirm.off");
}
if (View.showConfirmDialog(null, confStr, translate("message.parallel"), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) {
Configuration.parallelSpeedUp.set((Boolean) miParallelSpeedUp.isSelected());
} else {
miParallelSpeedUp.setSelected(!miParallelSpeedUp.isSelected());
}
break;
case ACTION_INTERNAL_VIEWER_SWITCH:
Configuration.internalFlashViewer.set(miInternalViewer.isSelected());
mainFrame.getPanel().reload(true);
break;
case ACTION_SEARCH:
search(null);
break;
case ACTION_AUTO_DEOBFUSCATE:
if (View.showConfirmDialog(mainFrame.getPanel(), translate("message.confirm.autodeobfuscate") + "\r\n" + (miAutoDeobfuscation.isSelected() ? translate("message.confirm.on") : translate("message.confirm.off")), translate("message.confirm"), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) {
Configuration.autoDeobfuscate.set(miAutoDeobfuscation.isSelected());
mainFrame.getPanel().autoDeobfuscateChanged();
} else {
miAutoDeobfuscation.setSelected(!miAutoDeobfuscation.isSelected());
}
break;
case ACTION_EXIT:
exit();
break;
}
if (Main.isWorking()) {
return;
}
switch (e.getActionCommand()) {
case ACTION_RENAME_ONE_IDENTIFIER:
renameOneIdentifier();
break;
case ACTION_SHOW_PROXY:
showProxy();
break;
case ACTION_SUB_LIMITER:
setSubLimiter(((JCheckBoxMenuItem) e.getSource()).isSelected());
break;
case ACTION_SAVE:
save();
break;
case ACTION_SAVE_AS:
saveAs();
break;
case ACTION_SAVE_AS_EXE:
saveAsExe();
break;
case ACTION_OPEN:
open();
break;
case ACTION_EXPORT_SEL:
case ACTION_EXPORT:
boolean onlySel = e.getActionCommand().equals(ACTION_EXPORT_SEL);
export(onlySel);
break;
case ACTION_EXPORT_FLA:
exportFla();
break;
case ACTION_CHECK_UPDATES:
checkUpdates();
break;
case ACTION_HELP_US:
helpUs();
break;
case ACTION_HOMEPAGE:
homePage();
break;
case ACTION_ABOUT:
about();
break;
case ACTION_RESTORE_CONTROL_FLOW:
case ACTION_RESTORE_CONTROL_FLOW_ALL:
boolean all = e.getActionCommand().equals(ACTION_RESTORE_CONTROL_FLOW_ALL);
restoreControlFlow(all);
break;
case ACTION_RENAME_IDENTIFIERS:
renameIdentifiers();
break;
case ACTION_DEOBFUSCATE:
case ACTION_DEOBFUSCATE_ALL:
deobfuscate();
break;
case ACTION_REMOVE_NON_SCRIPTS:
removeNonScripts();
break;
case ACTION_REFRESH_DECOMPILED:
refreshDecompiled();
break;
}
}
}