private Language findLanguageByName(String languageName) { if (languageName != null) { if (languageName.equals(Languages.java().getName())) { return Languages.java(); } else if (languageName.equals(Languages.bytecode().getName())) { return Languages.bytecode(); } else if (languageName.equals(Languages.bytecodeAst().getName())) { return Languages.bytecodeAst(); } for (Language language : Languages.debug()) { if (languageName.equals(language.getName())) { return language; } } } return Languages.java(); }
public void decompile() { this.invalidateContent(); // synchronized: do not accept changes from menu while running synchronized (settings) { if (Languages.java().getName().equals(settings.getLanguage().getName())) { decompileWithNavigationLinks(); } else { decompileWithoutLinks(); } } }
public void saveConfig() { // Registry path on Windows Xp: // HKEY_CURRENT_USER/Software/JavaSoft/Prefs/us/deathmarine/luyten try { Preferences prefs = Preferences.userNodeForPackage(ConfigSaver.class); prefs.putBoolean(FLATTEN_SWITCH_BLOCKS_ID, decompilerSettings.getFlattenSwitchBlocks()); prefs.putBoolean(FORCE_EXPLICIT_IMPORTS_ID, decompilerSettings.getForceExplicitImports()); prefs.putBoolean(SHOW_SYNTHETIC_MEMBERS_ID, decompilerSettings.getShowSyntheticMembers()); prefs.putBoolean(EXCLUDE_NESTED_TYPES_ID, decompilerSettings.getExcludeNestedTypes()); prefs.putBoolean(FORCE_EXPLICIT_TYPE_ARGUMENTS_ID, decompilerSettings.getForceExplicitTypeArguments()); prefs.putBoolean(RETAIN_REDUNDANT_CASTS_ID, decompilerSettings.getRetainRedundantCasts()); prefs.putBoolean(INCLUDE_ERROR_DIAGNOSTICS_ID, decompilerSettings.getIncludeErrorDiagnostics()); prefs.putBoolean(UNICODE_REPLACE_ENABLED_ID, decompilerSettings.isUnicodeOutputEnabled()); prefs.put(LANGUAGE_NAME_ID, decompilerSettings.getLanguage().getName()); saveWindowPosition(prefs, MAIN_WINDOW_ID_PREFIX, mainWindowPosition); saveWindowPosition(prefs, FIND_WINDOW_ID_PREFIX, findWindowPosition); saveLuytenPreferences(prefs); } catch (Exception e) { Luyten.showExceptionDialog("Exception!", e); } }
languageLookup.put(Languages.bytecode().getName(), Languages.bytecode()); languageLookup.put(Languages.bytecodeAst().getName(), Languages.bytecodeAst()); java.setSelected(Languages.java().getName().equals(settings.getLanguage().getName())); languagesGroup.add(java); settingsMenu.add(java); bytecode = new JRadioButtonMenuItem(Languages.bytecode().getName()); bytecode.getModel().setActionCommand(Languages.bytecode().getName()); bytecode.setSelected(Languages.bytecode().getName().equals(settings.getLanguage().getName())); languagesGroup.add(bytecode); settingsMenu.add(bytecode); bytecodeAST = new JRadioButtonMenuItem(Languages.bytecodeAst().getName()); bytecodeAST.getModel().setActionCommand(Languages.bytecodeAst().getName()); bytecodeAST.setSelected(Languages.bytecodeAst().getName().equals(settings.getLanguage().getName())); languagesGroup.add(bytecodeAST); settingsMenu.add(bytecodeAST); final JRadioButtonMenuItem m = new JRadioButtonMenuItem(language.getName()); m.getModel().setActionCommand(language.getName()); m.setSelected(language.getName().equals(settings.getLanguage().getName())); languagesGroup.add(m); debugLanguagesMenu.add(m); languageLookup.put(language.getName(), language);
try { Preferences prefs = Preferences.userNodeForPackage(ConfigSaver.class); if (!prefs.get(LANGUAGE_NAME_ID, decompilerSettings.getLanguage().getName()) .equals(decompilerSettings.getLanguage().getName())) prefs.put(LANGUAGE_NAME_ID, decompilerSettings.getLanguage().getName()); prefs.getBoolean(INCLUDE_ERROR_DIAGNOSTICS_ID, decompilerSettings.getIncludeErrorDiagnostics())); decompilerSettings.setLanguage( findLanguageByName(prefs.get(LANGUAGE_NAME_ID, decompilerSettings.getLanguage().getName()))); decompilerSettings.setUnicodeOutputEnabled(prefs.getBoolean(UNICODE_REPLACE_ENABLED_ID, false));