Перенос.

This commit is contained in:
2023-09-17 22:13:42 +03:00
parent dd2e0ca7e0
commit 629d8b8477
1239 changed files with 61161 additions and 1 deletions

View File

@@ -0,0 +1,14 @@
package Common.UI.Menus_2023.MainMenuBar;
import Common.UI.Menus_2023.VisualiserMenu;
import Repository.Component.Sapfor.Sapfor;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
public class AnalysesMenu extends VisualiserMenu {
public AnalysesMenu() {
super("Анализаторы","/icons/Analyses.png" );
for (PassCode_2021 code : Sapfor.getAnalysesCodes())
add(Pass_2021.passes.get(code).createMenuItem());
addSeparator();
add(Pass_2021.passes.get(PassCode_2021.SPF_GetGCovInfo).createMenuItem());
}
}

View File

@@ -0,0 +1,20 @@
package Common.UI.Menus_2023.MainMenuBar;
import Common.UI.Menus_2023.VisualiserMenu;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
public class GlobalCleaningMenu extends VisualiserMenu {
public GlobalCleaningMenu() {
super("Очистка", "/icons/Clean.png", false);
add(Pass_2021.passes.get(PassCode_2021.DropLastProjects).createMenuItem());
add(Pass_2021.passes.get(PassCode_2021.DropFastAccess).createMenuItem());
addSeparator();
add(Pass_2021.passes.get(PassCode_2021.DeleteDownloadedBugReports).createMenuItem());
addSeparator();
add(Pass_2021.passes.get(PassCode_2021.DropAnalyses).createMenuItem());
add(Pass_2021.passes.get(PassCode_2021.CleanAnalyses).createMenuItem());
add(Pass_2021.passes.get(PassCode_2021.DropSavedArrays).createMenuItem());
add(Pass_2021.passes.get(PassCode_2021.DeleteDebugResults).createMenuItem());
addSeparator();
add(Pass_2021.passes.get(PassCode_2021.ResetCurrentProject).createMenuItem());
}
}

View File

@@ -0,0 +1,48 @@
package Common.UI.Menus_2023.MainMenuBar;
import Common.Global;
import Common.UI.Menus.VisualiserMenuItem;
import Common.UI.Menus_2023.VisualiserMenu;
import GlobalData.DBLastProject.DBLastProject;
import GlobalData.Settings.SettingName;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
import javax.swing.*;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
import java.awt.event.ActionEvent;
import java.io.File;
import java.util.Vector;
public class LastOpenedProjectsMenu extends VisualiserMenu {
public LastOpenedProjectsMenu() {
super("Недавние проекты", "/icons/LastOpened.png");
addMenuListener(new MenuListener() {
@Override
public void menuSelected(MenuEvent e) {
removeAll();
Vector<DBLastProject> projects = Global.db.lastProjects.getOrdered();
int k = 1;
for (DBLastProject p : projects) {
if (new File(p.HomePath).exists() && p.lastOpened != 0) {
VisualiserMenuItem i = new VisualiserMenuItem(p.HomePath);
i.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
Pass_2021.passes.get(PassCode_2021.OpenCurrentProject).Do(new File(p.HomePath));
}
});
add(i);
++k;
if (k > (Global.db.settings.get(SettingName.LastOpenedProjectsCount).toInt32())) break;
}
}
}
@Override
public void menuDeselected(MenuEvent e) {
}
@Override
public void menuCanceled(MenuEvent e) {
}
});
}
}

View File

@@ -0,0 +1,87 @@
package Common.UI.Menus_2023.MainMenuBar;
import Common.Global;
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;
import javax.swing.*;
import java.awt.*;
public class MainMenuBar extends VisualiserMenuBar {
JMenu analyses;
JMenu transformations;
MenuBarButton components;
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();
}
});
}
});
add(new MenuBarButton() {
{
setIcon("/icons/Comparsion.png");
setToolTipText("Анализатор статистик");
addActionListener(e -> {
Global.performanceAnalyzer.Start();
});
}
});
addPasses(PassCode_2021.ShowInstruction);
//-
setPreferredSize(new Dimension(0, 30));
//---
/*
add(new MenuBarButton() {
{
setIcon("/icons/Apply.png");
setToolTipText("Test");
addActionListener(e -> {
Current.getProject().hasSubdirectories();
});
}
});
*/
//---
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)
};
for (Pass_2021 pass: cleaningPasses){
pass.setControlsEnabled(flag);
}
}
}

View File

@@ -0,0 +1,19 @@
package Common.UI.Menus_2023.MainMenuBar;
import Visual_DVM_2021.UI.Interface.CallbackWindow;
import Visual_DVM_2021.UI.Interface.ProjectWindow;
import Visual_DVM_2021.UI.Interface.TestingWindow;
public interface MainWindow {
void Show();
void ShowProject();
void ShowNoProject();
ProjectWindow getProjectWindow();
CallbackWindow getCallbackWindow();
//-
void ShowUpdatesIcon();
void FocusProject();
void FocusCallback();
void FocusTesting();
TestingWindow getTestingWindow();
void ShowTestingTab();
void HideTestingTab();
}

View File

@@ -0,0 +1,36 @@
package Common.UI.Menus_2023.MainMenuBar;
import Common.UI.Menus.PassesSubMenu;
import Common.UI.Menus_2023.VisualiserMenu;
import Repository.Component.Sapfor.Sapfor;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
public class TransformationsMenu extends VisualiserMenu {
public TransformationsMenu() {
super("Преобразования", "/icons/Transformations.png");
add(new PassesSubMenu("Циклы", "/icons/Menu/Loops.png",
Sapfor.getLoopsTransformationsCodes()));
addSeparator();
add(new PassesSubMenu("Приватные переменные", "/icons/Menu/Privates.png",
Sapfor.getPrivatesTransformationsCodes()));
addSeparator();
add(new PassesSubMenu("Процедуры", "/icons/Menu/Functions.png",
Sapfor.getProceduresTransformationsCodes()));
addSeparator();
add(new PassesSubMenu("DVM директивы", "/icons/Menu/Dvm.png",
Sapfor.getDVMTransformationsCodes()));
addSeparator();
add(new PassesSubMenu("Интервалы", "/icons/Menu/Intervals.png",
Sapfor.getIntervalsTransformationsCodes()
));
addSeparator();
add(new PassesSubMenu("Области распараллеливания", "/icons/Menu/Regions.png",
Sapfor.getRegionsTransformationsCodes()
));
addSeparator();
add(new PassesSubMenu("Предобработка проекта", "/icons/Menu/Preprocessing.png",
Sapfor.getPreparationTransformationsCodes()
)
);
add(Pass_2021.passes.get(PassCode_2021.SPF_SharedMemoryParallelization).createMenuItem());
}
}

View File

@@ -0,0 +1,47 @@
package Common.UI.Menus_2023.MainMenuBar;
import Common.Global;
import Common.UI.Menus.PropertiesSubmenu;
import Common.UI.Menus_2023.SettingsSubmenu;
import Common.UI.Menus_2023.VisualiserMenu;
import GlobalData.Settings.SettingName;
public class VisualiserSettingsMenu extends VisualiserMenu {
public VisualiserSettingsMenu() {
super("Настройки визуализатора", "/icons/Settings.png");
//-
add(new PropertiesSubmenu("Подтверждения и уведомления", null,
"ShowPassesDone",
"ConfirmPassesStart",
"FocusPassesResult"
));
add(new SettingsSubmenu("Компактность отображения", null,
SettingName.SmallScreen,
SettingName.ShowFullTabsNames,
SettingName.ShowFullArraysDeclarations,
SettingName.FastAccessPassesCount,
SettingName.LastOpenedProjectsCount
));
if (Global.isWindows) {
add(new SettingsSubmenu("Компиляция на локальной машине", null,
SettingName.LocalMakePathWindows,
SettingName.Kernels
));
} else {
add(new SettingsSubmenu("Компиляция на локальной машине", null,
SettingName.Kernels
));
}
add(new SettingsSubmenu("Синхронизация", null,
SettingName.AutoBugReportsLoad,
SettingName.AutoTestsLoad
));
add(new SettingsSubmenu("Сравнение", null,
SettingName.ExtensionsOn,
SettingName.RegisterOn,
SettingName.SpacesOn,
SettingName.EmptyLinesOn,
SettingName.FortranWrapsOn,
SettingName.ComparsionDiffMergeOn
));
add(Global.db.settings.get(SettingName.Workspace).getMenuItem());
}
}