package _VisualDVM.Visual.Menus.MainMenuBar; import Common.Passes.Pass; import Common.Visual.Controls.MenuBarButton; import Common.Visual.UI_; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.Repository.Component.PerformanceAnalyzer.PerformanceAnalyzer; import _VisualDVM.Visual.Menus.MainMenuBar.VisualiserSettingsMenu.VisualiserSettingsMenu; import _VisualDVM.Visual.Menus.VisualiserMenuBar; import _VisualDVM.Visual.UI; import javax.swing.*; import java.awt.*; public class MainMenuBar extends VisualiserMenuBar { JMenu analyses; JMenu transformations; MenuBarButton components; public MainMenuBar() { addMenus(new LastOpenedProjectsMenu()); addPasses(PassCode.OpenCurrentProject, PassCode.CreateEmptyProject); addMenus( analyses = new AnalysesMenu(), transformations = new TransformationsMenu(), new GlobalCleaningMenu(), new VisualiserSettingsMenu() ); add(components = new MenuBarButton() { { setToolTipText("Компоненты"); setIcon("/icons/ComponentsActual.png"); addActionListener(e -> { if (PerformanceAnalyzer.isActive) { UI_.Info("Перед работой с компонентами закройте анализатор производительности!"); } else { Global.mainModule.getPass(PassCode.GetComponentsActualVersions).Do(); Global.RefreshUpdatesStatus(); UI.ShowComponentsWindow(); } }); } }); /* add(new MenuBarButton() { { setIcon("/icons/Comparsion.png"); setToolTipText("Анализатор статистик"); addActionListener(e -> { Global.performanceAnalyzer.Start(); }); } }); */ addPasses(PassCode.ShowInstruction); //- setPreferredSize(new Dimension(0, 30)); //--- add(new MenuBarButton() { { setIcon("/icons/Apply.png"); setToolTipText("Test"); addActionListener(e -> { Global.mainModule.getPass(PassCode.TestPass).Do(); }); } }); ShowProject(false); } public void ShowUpdatesIcon() { components.setIcon( (Global.need_update > 0) || (Global.bad_state > 0) ? "/icons/ComponentsNeedUpdate.gif" : (Global.need_publish > 0 ? "/icons/ComponentsNeedPublish_2023.gif" : "/icons/ComponentsActual.png")); } public void ShowProject(boolean flag) { analyses.setEnabled(flag); transformations.setEnabled(flag); Pass[] cleaningPasses = new Pass[]{ Global.mainModule.getPass(PassCode.DropAnalyses), Global.mainModule.getPass(PassCode.DropSavedArrays), Global.mainModule.getPass(PassCode.CleanAnalyses), Global.mainModule.getPass(PassCode.DeleteDebugResults), Global.mainModule.getPass(PassCode.ResetCurrentProject) }; for (Pass pass : cleaningPasses) { pass.setControlsEnabled(flag); } } }