Files
VisualSapfor/src/Visual_DVM_2021/UI/Main/TestingForm.java
2023-10-04 22:01:09 +03:00

489 lines
18 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package Visual_DVM_2021.UI.Main;
import Common.Constants;
import Common.Current;
import Common.Global;
import Common.UI.Menus_2023.TasksPackagesMenuBar.TasksPackagesMenuBar;
import Common.UI.TextField.StyledTextField;
import Common.UI.UI;
import GlobalData.Compiler.CompilerType;
import GlobalData.Credentials.Credentials;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import TestingSystem.Configuration.UI.ConfigurationDBTable;
import TestingSystem.Group.Group;
import TestingSystem.MachineMaxKernels.MachineMaxKernels;
import TestingSystem.TasksPackage.TasksPackageDBTable;
import TestingSystem.Test.Test;
import Visual_DVM_2021.UI.Interface.FormWithSplitters;
import Visual_DVM_2021.UI.Interface.TestingWindow;
import javax.swing.*;
import java.util.Vector;
public class TestingForm implements FormWithSplitters, TestingWindow {
private JPanel content;
@Override
public JPanel getContent() {
return content;
}
public JSplitPane SC18;
public JSplitPane SC20;
public JSplitPane SC21;
public JSplitPane SC35;
public JSplitPane SC40;
public JSplitPane SC41;
public JSplitPane SC42;
public JSplitPane SC43;
public JSplitPane SC45;
public JSplitPane SC50;
public JSplitPane SC51;
public JSplitPane SC52;
public JSplitPane SC48;
public JSplitPane SC49;
public JSplitPane SC46;
public JSplitPane SC53;
public JSplitPane SC56;
public JSplitPane SC57;
public JSplitPane SC58;
public JSplitPane SC19;
public JSplitPane SC62;
public JSplitPane SC63;
public JSplitPane SC59;
//-
//---
private JPanel machinesPanel;
private JPanel usersPanel;
private JPanel compilersPanel;
private JTabbedPane testingTabs;
private JTabbedPane debugTabs;
private JPanel makefilesPanel;
private JPanel modulesPanel;
private JPanel runConfigurationsPanel;
private JToolBar environmentsTools;
private JPanel environmentsPanel;
private JToolBar parametersTools;
private JPanel dvmParametersPanel;
private JPanel groupsPanel;
private JPanel testsPanel;
private JPanel testsRunTasksPanel;
private JToolBar testsResultsTools;
private JButton bChangeKernels;
private JTextField filterName;
private JLabel testsMatchesLabel;
private JPanel configurationsPanel;
private JLabel configurationsMatchesLabel;
private JLabel packagesMatchesLabel;
private JPanel packagesPanel;
private JButton bCompilationFilter;
private JPanel dvmTestingPanel;
private JPanel projectDebugPanel;
private JPanel runTasksPanel;
private JPanel compilationTasksPanel;
private JPanel sapforTestingPanel;
private JPanel packageVersionsPanel;
private JPanel sapforsPanel;
private JPanel sapforConfigurationsPanel;
private JLabel sapforConfigurationsLabel;
private JLabel sapforConfigurationsCommandsLabel;
private JPanel sapforConfigurationCommandsPanel;
private JPanel sapforPackagesPanel;
private JLabel sapforTasksPackagesLabel;
private JLabel sapforTasksLabel;
private JPanel groupsBackground;
private JPanel sapforScenariosPanel;
private JPanel serverSapforsPanel;
private JPanel testsRunTasksBackground;
private JCheckBox filterFinished;
private JButton bTest;
private JButton bDownloadTestProject;
private JToolBar compilationTasksTools;
private JToolBar runTasksTools;
//-
public RunTasksComparisonForm singleRunTaskMaster; // одиночные запуски
public RunTasksComparisonForm singleRunTaskSlave;
//
public CompilationTasksComparisonForm singleCompilationTaskMaster; // одиночная компиляция
public CompilationTasksComparisonForm singleCompilationTaskSlave;
//--
//-
private TestRunTasksComparisonForm dvmTestingRunMaster; //сравнение тестов двм системы.
private TestRunTasksComparisonForm dvmTestingRunSlave;
//-
//сравнение версий полученных в результате выполнения пакета.
public SapforPackagesComparisonForm sapforTestingMaster;
public SapforPackagesComparisonForm sapforTestingSlave;
//-
public TestingForm() {
LoadSplitters();
//-
singleCompilationTaskMaster = new CompilationTasksComparisonForm(singleCompilationTaskSlave = new CompilationTasksComparisonForm(null));
singleRunTaskMaster = new RunTasksComparisonForm(singleRunTaskSlave = new RunTasksComparisonForm(null));
dvmTestingRunMaster = new TestRunTasksComparisonForm(dvmTestingRunSlave = new TestRunTasksComparisonForm(null));
//-
Global.db.machines.mountUI(machinesPanel);
Global.db.users.mountUI(usersPanel);
Global.db.compilers.mountUI(compilersPanel);
Global.db.remoteSapfors.mountUI(sapforsPanel);
Global.db.makefiles.mountUI(makefilesPanel);
//-----------------------------------------------
Global.db.modules.mountUI(modulesPanel);
Global.db.runConfigurations.mountUI(runConfigurationsPanel);
Global.db.environmentValues.mountUI(environmentsPanel);
Global.db.dvmParameters.mountUI(dvmParametersPanel);
//-
Global.db.compilationTasks.mountUI(compilationTasksPanel);
Global.db.runTasks.mountUI(runTasksPanel);
//--->>>
RefreshTabsNames();
//-
SC41.setLeftComponent(singleCompilationTaskMaster.getContent());
SC41.setRightComponent(singleCompilationTaskSlave.getContent());
SC43.setLeftComponent(singleRunTaskMaster.getContent());
SC43.setRightComponent(singleRunTaskSlave.getContent());
//-
SC50.setLeftComponent(dvmTestingRunMaster.getContent());
SC50.setRightComponent(dvmTestingRunSlave.getContent());
ShowNoProject();
//-
Global.testingServer.db.configurations.mountUI(configurationsPanel);
Global.testingServer.db.groups.mountUI(groupsPanel);
Global.testingServer.db.tests.mountUI(testsPanel);
Global.testingServer.account_db.packages.mountUI(packagesPanel);
Global.testingServer.account_db.testRunTasks.mountUI(testsRunTasksPanel);
// Global.testingServer.account_db.testRunTasks.setFilterUI(count -> tasksMatchesLabel.setText(String.valueOf(count)));
//--
Global.testingServer.db.sapforConfigurations.mountUI(sapforConfigurationsPanel);
Global.testingServer.db.sapforConfigurationCommands.mountUI(sapforConfigurationCommandsPanel);
Global.testingServer.db.serverSapfors.mountUI(serverSapforsPanel);
Global.db.sapforScenarios.mountUI(sapforScenariosPanel);
Global.db.sapforTasksPackages.mountUI(sapforPackagesPanel);
//Global.db.sapforTasks.mountUI(sapforTasksPanel);
// Global.testingServer.account_db.sapforTasksPackages.mountUI(sapforPackagesPanel);
// Global.testingServer.account_db.sapforTasks.mountUI(sapforTasksPanel);
//--------------------------------------------------------------------->>>>
/*
filterName.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
TestRunTaskInterface.filterName = filterName.getText();
Global.testingServer.account_db.testRunTasks.ShowUI();
}
@Override
public void removeUpdate(DocumentEvent e) {
TestRunTaskInterface.filterName = filterName.getText();
Global.testingServer.account_db.testRunTasks.ShowUI();
}
@Override
public void changedUpdate(DocumentEvent e) {
}
});
*/
sapforTestingMaster = new SapforPackagesComparisonForm(sapforTestingSlave = new SapforPackagesComparisonForm(null));
SC57.setLeftComponent(sapforTestingMaster.getContent());
SC57.setRightComponent(sapforTestingSlave.getContent());
}
//-
@Override
public void ShowAll() {
Global.db.machines.ShowUI();
this.RestoreLastCredentials();
Global.testingServer.db.configurations.ShowUI();
Global.testingServer.db.groups.ShowUI();
Global.testingServer.account_db.packages.ShowUI();
Global.testingServer.db.serverSapfors.ShowUI();
Global.testingServer.db.sapforConfigurations.ShowUI();
Global.db.sapforScenarios.ShowUI();
}
//-
@Override
public void ShowProjectMaxCompilationTime() {
// mCompilationMaxtime.setText(Current.getProject().compilation_maxtime + " сек.");
}
@Override
public void ShowProjectMaxRunTime() {
//mRunMaxtime.setText(Current.getProject().run_maxtime + " сек.");
}
@Override
public void ShowCurrentTestsPackage() {
ShowCurrentTestRunTask();
}
@Override
public void DropTestRunTasksComparison() {
dvmTestingRunMaster.RemoveObject();
dvmTestingRunSlave.RemoveObject();
}
@Override
public void DropRunTasksComparison() {
singleRunTaskMaster.RemoveObject();
singleRunTaskSlave.RemoveObject();
}
@Override
public void DropCompilationTasksComparison() {
singleCompilationTaskMaster.RemoveObject();
singleCompilationTaskSlave.RemoveObject();
}
@Override
public void FocusCredentials() {
testingTabs.setSelectedIndex(0);
}
@Override
public void ShowProject() {
testingTabs.setEnabledAt(1, true);
// testingTabs.setSelectedIndex(0);
//-
ShowSession();
//-
Global.db.compilationTasks.ShowUI(); //их видимость зависит от текущего проекта.
Global.db.runTasks.ShowUI();
}
@Override
public void ShowNoProject() {
Global.db.compilationTasks.ClearUI();
Global.db.runTasks.ClearUI();
//-
if (testingTabs.getSelectedIndex() == 1)
testingTabs.setSelectedIndex(0);
testingTabs.setEnabledAt(1, false);
}
@Override
public void SaveSplitters() {
FormWithSplitters.super.SaveSplitters();
try {
Global.db.SaveCredentials();
} catch (Exception ex) {
Global.Log.PrintException(ex);
}
}
//-
@Override
public void ShowCurrentCompilationTask() {
// if (singleCompilationTaskMaster.isActive()) singleCompilationTaskMaster.ShowTask();
// else singleCompilationTaskSlave.ShowTask();
}
@Override
public void ShowNoCurrentCompilationTask() {
// if (singleCompilationTaskMaster.isActive()) singleCompilationTaskMaster.Clear();
// else singleCompilationTaskSlave.Clear();
}
@Override
public void ShowCurrentRunTask() {
// if (singleRunTaskMaster.isActive()) singleRunTaskMaster.ShowTask();
// else singleRunTaskSlave.ShowTask();
}
@Override
public void ShowNoCurrentRunTask() {
// if (singleRunTaskMaster.isActive()) singleRunTaskMaster.Clear();
// else singleRunTaskSlave.Clear();
}
@Override
public void ShowCurrentTestRunTask() {
// if (dvmTestingRunMaster.isActive()) dvmTestingRunMaster.ShowTask();
// else dvmTestingRunSlave.ShowTask();
}
@Override
public void ShowNoTestRunTask() {
// dvmTestingRunMaster.Clear();
// dvmTestingRunSlave.Clear();
}
@Override
public void RefreshTabsNames() {
}
@Override
public void ShowCurrentMachine() {
String url = Current.getMachine().getURL();
int kernelsNum = 0;
if (Global.testingServer.db.machinesMaxKernels.containsKey(url)) {
MachineMaxKernels kernels = Global.testingServer.db.machinesMaxKernels.get(url);
kernelsNum = kernels.limit;
} else kernelsNum = 4;
// bChangeKernels.setText("Ядра: " + kernelsNum);
}
@Override
public void ShowNoCurrentMachine() {
//bChangeKernels.setText("Ядра: ?");
}
private void createUIComponents() {
// TODO: place custom component creation code here
filterName = new StyledTextField();
}
@Override
public void FocusTestingSystem() {
testingTabs.setSelectedIndex(2);
}
@Override
public void ShowAutoActualizeTestsState() {
((TasksPackagesMenuBar) UI.menuBars.get(TasksPackageDBTable.class)).ShowAutorefresh();
}
@Override
public void FocusTestingTasks() {
}
@Override
public boolean isEmailTestingOn() {
return
ConfigurationDBTable.email;
}
@Override
public void RemountTestTable() {
UI.Clear(packagesPanel);
UI.Clear(testsRunTasksPanel);
Global.testingServer.account_db.packages.mountUI(packagesPanel);
Global.testingServer.account_db.testRunTasks.mountUI(testsRunTasksPanel);
}
@Override
public void setUserRights() {
// testingTabs.removeTabAt(2);
}
@Override
public void setAdminRights() {
/*
testingTabs.insertTab("DVM система",
Utils.getIcon("/icons/DVM.png"),
dvmTestingPanel,
"DVM система", 2);
*/
}
@Override
public void setDeveloperRights() {
/*
testingTabs.insertTab("DVM система",
Utils.getIcon("/icons/DVM.png"),
dvmTestingPanel,
"DVM система", 2);
*/
}
@Override
public void FocusScenarios() {
testingTabs.setSelectedIndex(3);
}
//-
@Override
public void RestoreLastCredentials() {
Credentials credentials = (Credentials) Current.get(Current.Credentials);
if (credentials.machine_id != Constants.Nan) {
if (Global.db.machines.containsKey(credentials.machine_id)) {
Global.db.machines.ShowUI(credentials.machine_id);
if (Global.db.users.containsKey(credentials.user_id)) {
Global.db.users.ShowUI(credentials.user_id);
} else {
credentials.user_id = Constants.Nan;
Global.db.UpdateCredentials();
}
if (Global.db.compilers.containsKey(credentials.compiler_id)) {
Global.db.compilers.ShowUI(credentials.compiler_id);
} else {
credentials.compiler_id = Constants.Nan;
Global.db.UpdateCredentials();
}
//-
if (Global.db.makefiles.containsKey(credentials.makefile_id)) {
Global.db.makefiles.ShowUI(credentials.makefile_id);
} else {
credentials.makefile_id = Constants.Nan;
Global.db.UpdateCredentials();
}
//-
if (Global.db.runConfigurations.containsKey(credentials.runconfiguration_id)) {
Global.db.runConfigurations.ShowUI(credentials.runconfiguration_id);
} else {
credentials.runconfiguration_id = Constants.Nan;
Global.db.UpdateCredentials();
}
if (Global.db.remoteSapfors.containsKey(credentials.remotesapfor_id)) {
Global.db.remoteSapfors.ShowUI(credentials.remotesapfor_id);
} else {
credentials.remotesapfor_id = Constants.Nan;
Global.db.UpdateCredentials();
}
} else {
credentials.machine_id = Constants.Nan;
credentials.user_id = Constants.Nan;
credentials.compiler_id = Constants.Nan;
credentials.remotesapfor_id = Constants.Nan;
credentials.makefile_id = Constants.Nan;
credentials.runconfiguration_id = Constants.Nan;
Global.db.UpdateCredentials();
}
}
}
// testingTabs.setTitleAt(4, "Cистема SAPFOR: " + Current.getRemoteSapfor().version);
@Override
public void ShowCredentials() {
String res = "";
if (Current.HasMachine()) {
res += "@" + Current.getMachine().getURL();
if (Current.HasUser()) {
res = Current.getUser().login + res;
} else res = "?" + res;
if (Current.HasCompiler() && Current.getCompiler().type.equals(CompilerType.dvm)) {
testingTabs.setTitleAt(3, "DVM система: " + Current.getCompiler().description);
} else {
testingTabs.setTitleAt(3, "DVM система: ?");
}
} else {
res += "?@?";
}
testingTabs.setTitleAt(0, res);
}
@Override
public void FocusSapforTasksPackages() {
}
@Override
public void ShowCurrentSapforTasksPackage() {
/*
UI.Clear(packageVersionsPanel);
if (Current.getSapforTasksPackage().root != null) {
PackageVersionsTree tree = new PackageVersionsTree();
packageVersionsPanel.add(new JScrollPane(tree));
packageVersionsPanel.revalidate();
packageVersionsPanel.repaint();
}
*/
}
@Override
public void ShowNoSapforTasksPackage() {
UI.Clear(packageVersionsPanel);
}
//--->>>
@Override
public void ShowCheckedTestsCount() {
int res = 0;
for (Group group : Global.testingServer.db.groups.getCheckedItems()) {
Vector<Test> selected_tests = new Vector<>();
Vector<Test> group_tests = new Vector<>();
for (Test test : Global.testingServer.db.tests.Data.values()) {
if (test.group_id.equals(group.id)) {
if (test.isSelected())
selected_tests.add(test);
else
group_tests.add(test);
}
}
//-
if (selected_tests.isEmpty())
res += group_tests.size();
else
res += selected_tests.size();
}
//--
testingTabs.setTitleAt(2, "Тесты: " + res);
}
@Override
public void ShowLastCompilationTask() {
singleCompilationTaskMaster.ApplyObject();
}
@Override
public void ShowLastRunTask() {
singleRunTaskMaster.ApplyObject();
}
@Override
public void RemoveSapforPackageFromComparison(SapforTasksPackage package_2023) {
sapforTestingMaster.CheckObject(package_2023);
sapforTestingSlave.CheckObject(package_2023);
}
@Override
public void DropSapforTasksComparison() {
sapforTestingMaster.RemoveObject();
sapforTestingSlave.RemoveObject();
}
}