Files
VisualSapfor/src/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java

102 lines
3.8 KiB
Java
Raw Normal View History

2023-09-17 22:13:42 +03:00
package Common.UI.Menus_2023.MainMenuBar;
import Common.Current;
2023-09-17 22:13:42 +03:00
import Common.Global;
import Common.UI.Menus_2023.ECButtonPosition;
import Common.UI.Menus_2023.ExpandCollapseButton;
2023-09-17 22:13:42 +03:00
import Common.UI.Menus_2023.MenuBarButton;
import Common.UI.Menus_2023.VisualiserMenuBar;
import Common.UI.UI;
import Repository.Component.PerformanceAnalyzer.PerformanceAnalyzer;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
2023-09-17 22:13:42 +03:00
import javax.swing.*;
import java.awt.*;
public class MainMenuBar extends VisualiserMenuBar {
JMenu analyses;
JMenu transformations;
MenuBarButton components;
public ExpandCollapseButton RightECButton;
2023-09-17 22:13:42 +03:00
public MainMenuBar() {
addMenus(new LastOpenedProjectsMenu());
addPasses(PassCode_2021.OpenCurrentProject, PassCode_2021.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 {
Pass_2021.passes.get(PassCode_2021.GetComponentsActualVersions).Do();
Global.RefreshUpdatesStatus();
UI.ShowComponentsWindow();
}
});
}
});
/*
2023-09-17 22:13:42 +03:00
add(new MenuBarButton() {
{
setIcon("/icons/Comparsion.png");
setToolTipText("Анализатор статистик");
addActionListener(e -> {
Global.performanceAnalyzer.Start();
});
}
});
*/
2023-09-17 22:13:42 +03:00
addPasses(PassCode_2021.ShowInstruction);
//-
setPreferredSize(new Dimension(0, 30));
//---
/*
2023-09-17 22:13:42 +03:00
add(new MenuBarButton() {
{
setIcon("/icons/Apply.png");
setToolTipText("Test");
addActionListener(e -> {
// Pass_2021.passes.get(PassCode_2021.TestPass).Do();
Current.getFile().form.SwitchGraphs(false);
2023-09-17 22:13:42 +03:00
});
}
});
*/
add(RightECButton = new ExpandCollapseButton("область деревьев проекта", ECButtonPosition.Up) {
{
addActionListener(e -> {
UI.getMainWindow().getProjectWindow().SwitchProjectTrees();
});
}
});
2023-09-17 22:13:42 +03:00
//---
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_2021[] cleaningPasses = new Pass_2021[]{
Pass_2021.passes.get(PassCode_2021.DropAnalyses),
Pass_2021.passes.get(PassCode_2021.DropSavedArrays),
Pass_2021.passes.get(PassCode_2021.CleanAnalyses),
Pass_2021.passes.get(PassCode_2021.DeleteDebugResults),
Pass_2021.passes.get(PassCode_2021.ResetCurrentProject)
};
2023-09-30 00:18:44 +03:00
for (Pass_2021 pass : cleaningPasses) {
2023-09-17 22:13:42 +03:00
pass.setControlsEnabled(flag);
}
}
}