Files
VisualSapfor/src/_VisualDVM/Visual/Menus/MainMenuBar/MainMenuBar.java

150 lines
5.4 KiB
Java
Raw Normal View History

2024-10-09 22:01:19 +03:00
package _VisualDVM.Visual.Menus.MainMenuBar;
2024-10-14 15:19:13 +03:00
import Common.Passes.Pass;
import Common.Visual.Controls.MenuBarButton;
import Common.Visual.Fonts.VisualiserFonts;
import Common.Visual.Menus.VisualiserMenuBar;
import Common.Visual.UI;
2025-02-18 16:21:20 +03:00
import _VisualDVM.ComponentsServer.Component.PerformanceAnalyzer.PerformanceAnalyzer;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Compiler.Compiler;
import _VisualDVM.GlobalData.Machine.Machine;
import _VisualDVM.GlobalData.User.User;
2024-10-14 15:19:13 +03:00
import _VisualDVM.Passes.PassCode;
2024-10-09 22:01:19 +03:00
import _VisualDVM.Visual.Menus.MainMenuBar.VisualiserSettingsMenu.VisualiserSettingsMenu;
2023-09-17 22:13:42 +03:00
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedHashMap;
2023-09-17 22:13:42 +03:00
public class MainMenuBar extends VisualiserMenuBar {
public MenuBarButton MachineButton;
public MenuBarButton UserButton;
public MenuBarButton CompilerButton;
2025-03-13 00:32:20 +03:00
JMenu analyses;
JMenu transformations;
MenuBarButton componentsButton;
ActionListener credentialsListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Global.mainModule.getUI().getMainWindow().FocusCredentials();
}
};
2023-09-17 22:13:42 +03:00
public MainMenuBar() {
addMenus(new LastOpenedProjectsMenu());
2024-10-09 23:37:58 +03:00
addPasses(PassCode.OpenCurrentProject, PassCode.CreateEmptyProject);
2023-09-17 22:13:42 +03:00
addMenus(
analyses = new AnalysesMenu(),
transformations = new TransformationsMenu(),
new GlobalCleaningMenu(),
new VisualiserSettingsMenu()
);
add(componentsButton = new MenuBarButton() {
2023-09-17 22:13:42 +03:00
{
setToolTipText("Компоненты");
setIcon("/icons/ComponentsActual.png");
addActionListener(e -> {
if (PerformanceAnalyzer.isActive) {
UI.Info("Перед работой с компонентами закройте анализатор производительности!");
2023-09-17 22:13:42 +03:00
} else {
Global.mainModule.getPass(PassCode.GetComponentsActualVersions).Do();
2024-10-22 20:18:50 +03:00
Global.components.refreshUpdatesStatus();
Global.mainModule.getUI().getComponentsWindow().ShowDialog("");
2023-09-17 22:13:42 +03:00
}
});
}
});
/*
2023-09-17 22:13:42 +03:00
add(new MenuBarButton() {
{
setIcon("/icons/Comparsion.png");
setToolTipText("Анализатор статистик");
addActionListener(e -> {
Global.performanceAnalyzer.Start();
});
}
});
*/
2024-10-09 23:37:58 +03:00
addPasses(PassCode.ShowInstruction);
//- javafx
LinkedHashMap<Integer, Integer> test = new LinkedHashMap<>();
2023-09-17 22:13:42 +03:00
setPreferredSize(new Dimension(0, 30));
//--
/*
2023-09-17 22:13:42 +03:00
add(new MenuBarButton() {
{
setIcon("/Common/icons/Apply.png");
2023-09-17 22:13:42 +03:00
setToolTipText("Test");
addActionListener(e -> {
Global.mainModule.getPass(PassCode.TestPass).Do();
2023-09-17 22:13:42 +03:00
});
}
});
*/
//--
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);
2023-09-17 22:13:42 +03:00
ShowProject(false);
}
public void ShowUpdatesIcon() {
componentsButton.setIcon(Global.components.getButtonIconPath());
2023-09-17 22:13:42 +03:00
}
public void ShowProject(boolean flag) {
analyses.setEnabled(flag);
transformations.setEnabled(flag);
2024-10-09 23:37:58 +03:00
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)
2023-09-17 22:13:42 +03:00
};
2024-10-09 23:37:58 +03:00
for (Pass pass : cleaningPasses) {
2023-09-17 22:13:42 +03:00
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("?");
}
2023-09-17 22:13:42 +03:00
}