package _VisualDVM.Visual.Menus.MainMenuBar; import Common.Passes.Pass; import Common.Visual.Controls.MenuBarButton; import Common.Visual.Fonts.VisualiserFonts; import Common.Visual.Menus.VisualiserMenuBar; import Common.Visual.UI; import _VisualDVM.ComponentsServer.Component.PerformanceAnalyzer.PerformanceAnalyzer; import _VisualDVM.Global; import _VisualDVM.GlobalData.Compiler.Compiler; import _VisualDVM.GlobalData.Machine.Machine; import _VisualDVM.GlobalData.User.User; import _VisualDVM.Passes.PassCode; import _VisualDVM.Visual.Menus.MainMenuBar.VisualiserSettingsMenu.VisualiserSettingsMenu; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedHashMap; public class MainMenuBar extends VisualiserMenuBar { public MenuBarButton MachineButton; public MenuBarButton UserButton; public MenuBarButton CompilerButton; JMenu analyses; JMenu transformations; MenuBarButton componentsButton; ActionListener credentialsListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Global.mainModule.getUI().getMainWindow().FocusCredentials(); } }; public MainMenuBar() { addMenus(new LastOpenedProjectsMenu()); addPasses(PassCode.OpenCurrentProject, PassCode.CreateEmptyProject); addMenus( analyses = new AnalysesMenu(), transformations = new TransformationsMenu(), new GlobalCleaningMenu(), new VisualiserSettingsMenu() ); add(componentsButton = new MenuBarButton() { { setToolTipText("Компоненты"); setIcon("/icons/ComponentsActual.png"); addActionListener(e -> { if (PerformanceAnalyzer.isActive) { UI.Info("Перед работой с компонентами закройте анализатор производительности!"); } else { Global.mainModule.getPass(PassCode.GetComponentsActualVersions).Do(); Global.components.refreshUpdatesStatus(); Global.mainModule.getUI().getComponentsWindow().ShowDialog(""); } }); } }); /* add(new MenuBarButton() { { setIcon("/icons/Comparsion.png"); setToolTipText("Анализатор статистик"); addActionListener(e -> { Global.performanceAnalyzer.Start(); }); } }); */ addPasses(PassCode.ShowInstruction); //- javafx LinkedHashMap test = new LinkedHashMap<>(); setPreferredSize(new Dimension(0, 30)); //-- /* add(new MenuBarButton() { { setIcon("/Common/icons/Apply.png"); setToolTipText("Test"); addActionListener(e -> { Global.mainModule.getPass(PassCode.TestPass).Do(); }); } }); */ //-- add(new JSeparator()); add(MachineButton = new MenuBarButton() { { setIcon("/icons/Machine.png"); setFont(VisualiserFonts.TreeBold); setToolTipText("Текущая машина"); } }); //-- add(UserButton = new MenuBarButton() { { setIcon("/icons/User.png"); setFont(VisualiserFonts.TreeBold); setToolTipText("Текущий пользователь"); } }); add(CompilerButton = new MenuBarButton() { { setIcon("/icons/type.png"); setFont(VisualiserFonts.TreeBold); setToolTipText("Текущий компилятор"); } }); MachineButton.addActionListener(credentialsListener); UserButton.addActionListener(credentialsListener); CompilerButton.addActionListener(credentialsListener); ShowProject(false); } public void ShowUpdatesIcon() { componentsButton.setIcon(Global.components.getButtonIconPath()); } 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); } } public void ShowMachine(Machine machine) { MachineButton.setText(machine.getURL()); } public void ShowUser(User user) { UserButton.setText(user.login); } public void ShowCompiler(Compiler compiler) { CompilerButton.setText(compiler.description); } public void ShowNoMachine() { MachineButton.setText("?"); } public void ShowNoUser() { UserButton.setText("?"); } public void ShowNoCompiler() { CompilerButton.setText("?"); } }