package _VisualDVM.Visual.Menus.ProjectMenuBar; import Common.Visual.Menus.VisualiserMenu; import _VisualDVM.Global; import _VisualDVM.ProjectData.Files.LanguageStyle; import _VisualDVM.ProjectData.LanguageName; import _VisualDVM.Visual.Menus.LanguagesSubmenu; import _VisualDVM.Visual.Menus.PropertiesSubmenu; import _VisualDVM.Visual.Menus.StylesSubmenu; import javax.swing.*; public class ProjectSettingsMenu extends VisualiserMenu { JMenu mLanguage; JMenu mStyle; public ProjectSettingsMenu() { super("Настройки проекта", "/Common/icons/Settings.png"); add(mLanguage = new LanguagesSubmenu() { @Override public void action(LanguageName languageName) { if (Global.mainModule.getProject().UpdateLanguage(languageName)) { Global.mainModule.getSapfor().ResetAllAnalyses(); ShowLanguage(); } } }); ShowLanguage(); //-- add(mStyle = new StylesSubmenu() { @Override public void action(LanguageStyle languageStyle) { if (Global.mainModule.getProject().UpdateStyle(languageStyle)) ShowStyle(); } }); ShowStyle(); addSeparator(); add(new PropertiesSubmenu("Анализ", null, Global.mainModule.getProject().sapforProperties, "Precompilation", "STATIC_SHADOW_ANALYSIS", "KEEP_DVM_DIRECTIVES", "IGNORE_IO_SAPFOR", "MPI_PROGRAM", "ANALYSIS_OPTIONS" )); addSeparator(); add(new PropertiesSubmenu("Построение системы интервалов", null, Global.mainModule.getProject().sapforProperties, "KEEP_LOOPS_CLOSE_NESTING", "KEEP_GCOV" )); addSeparator(); add(new PropertiesSubmenu("Построение версий", null, Global.mainModule.getProject().sapforProperties, "FREE_FORM", "KEEP_SPF_DIRECTIVES", "KEEP_SPF_DIRECTIVES_AMONG_TRANSFORMATIONS", "OUTPUT_UPPER", "MAX_SHADOW_WIDTH", "DVMConvertationOptions", "SaveModifications" )); addSeparator(); add( Global.mainModule.getProject().sapforProperties.getMenuItem("TRANSLATE_MESSAGES")); add( Global.mainModule.getProject().sapforProperties.getMenuItem("DEBUG_PRINT_ON")); add( Global.mainModule.getProject().sapforProperties.getMenuItem("GCOVLimit")); } public void ShowLanguage() { mLanguage.setText("Язык: " + Global.mainModule.getProject().languageName.getDescription()); } public void ShowStyle() { mStyle.setText("Стиль: " + Global.mainModule.getProject().style.getDescription()); } }