2024-10-09 22:15:56 +03:00
|
|
|
|
package _VisualDVM.Visual.Windows;
|
2024-10-14 21:55:58 +03:00
|
|
|
|
import Common.MainModule_;
|
2024-10-11 00:00:30 +03:00
|
|
|
|
import Common.Utils.Utils_;
|
2024-10-14 15:30:52 +03:00
|
|
|
|
import Common.Visual.Controls.TabToolBar;
|
2024-10-08 22:33:49 +03:00
|
|
|
|
import Common.Visual.Windows.Form;
|
2024-10-14 15:19:13 +03:00
|
|
|
|
import _VisualDVM.Global;
|
|
|
|
|
|
import _VisualDVM.Passes.PassCode;
|
2024-10-09 22:21:57 +03:00
|
|
|
|
import _VisualDVM.TestingSystem.Common.Group.Group;
|
|
|
|
|
|
import _VisualDVM.TestingSystem.Common.Test.Test;
|
2024-10-09 22:01:19 +03:00
|
|
|
|
import _VisualDVM.Visual.Interface.*;
|
2024-10-14 21:55:58 +03:00
|
|
|
|
import _VisualDVM.Visual.Menus.MainMenuBar.MainMenuBar;
|
2024-10-14 15:19:13 +03:00
|
|
|
|
import _VisualDVM.Visual.Menus.MainMenuBar.MainWindow;
|
|
|
|
|
|
import _VisualDVM.Visual.UI;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
|
|
import java.awt.*;
|
2023-10-11 01:31:38 +03:00
|
|
|
|
import java.util.Vector;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
public class MainForm extends Form implements MainWindow {
|
|
|
|
|
|
private final WelcomeForm welcomeForm = new WelcomeForm(); //заглушка когда проекта нет.
|
|
|
|
|
|
int global_index = 0;
|
|
|
|
|
|
//-----------------
|
|
|
|
|
|
private ProjectForm projectForm;
|
|
|
|
|
|
private CallbackForm callbackForm;
|
2023-10-10 23:33:23 +03:00
|
|
|
|
private TestsForm testsForm;
|
2023-10-10 20:14:48 +03:00
|
|
|
|
//---
|
2023-09-17 22:13:42 +03:00
|
|
|
|
private TestingForm testingForm;
|
|
|
|
|
|
//-----------------
|
|
|
|
|
|
private JPanel Content;
|
|
|
|
|
|
private JTabbedPane globalTabs;
|
|
|
|
|
|
private JPanel mainPanel;
|
2024-10-14 21:55:58 +03:00
|
|
|
|
MainMenuBar mainMenuBar;
|
2024-10-14 15:19:13 +03:00
|
|
|
|
public MainForm() {
|
2024-10-14 21:55:58 +03:00
|
|
|
|
mainPanel.add( mainMenuBar = new MainMenuBar(), BorderLayout.NORTH);
|
2024-10-14 15:19:13 +03:00
|
|
|
|
InstallWelcomePanel();
|
|
|
|
|
|
InstallCallbackPanel();
|
|
|
|
|
|
InstallTestsPanel();
|
|
|
|
|
|
InstallTestingPanel();
|
|
|
|
|
|
ShowUpdatesIcon();
|
|
|
|
|
|
//----------------------
|
|
|
|
|
|
}
|
2023-09-17 22:13:42 +03:00
|
|
|
|
@Override
|
|
|
|
|
|
protected JPanel getMainPanel() {
|
|
|
|
|
|
return Content;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2024-10-08 22:33:49 +03:00
|
|
|
|
protected String getFormKey() {
|
2024-10-08 23:21:47 +03:00
|
|
|
|
return "Main"; //можно было бы через имя класса
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2024-10-08 22:33:49 +03:00
|
|
|
|
public String getIconPath() {
|
|
|
|
|
|
return "/icons/Sapfor.png";
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public String getWTitleText() {
|
|
|
|
|
|
return "Visual Sapfor 3.0";
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public String getUTitleText() {
|
|
|
|
|
|
return "Visual Sapfor 3.0";
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void AfterClose() {
|
2024-10-13 23:55:03 +03:00
|
|
|
|
Global.mainModule.getPass(PassCode.CloseCurrentProject).Do();
|
2024-10-15 02:32:52 +03:00
|
|
|
|
if (Global.mainModule.getUI().getVersionsWindow() != null)
|
|
|
|
|
|
((FormWithSplitters)Global.mainModule.getUI().getVersionsWindow()).SaveSplitters();
|
2023-09-17 22:13:42 +03:00
|
|
|
|
SaveCallbackPanel();
|
2023-10-10 23:33:23 +03:00
|
|
|
|
SaveTestsPanel();
|
2023-09-17 22:13:42 +03:00
|
|
|
|
SaveTestingPanel();
|
2023-10-11 18:44:16 +03:00
|
|
|
|
//--
|
2024-10-15 02:32:52 +03:00
|
|
|
|
if (Global.mainModule.getUI().getDebugWindow() != null)
|
|
|
|
|
|
((FormWithSplitters) Global.mainModule.getUI().getDebugWindow()).SaveSplitters();
|
2023-10-11 18:44:16 +03:00
|
|
|
|
//--
|
2024-10-12 00:17:51 +03:00
|
|
|
|
Global.mainModule.getDb().SaveCredentials();
|
2023-12-05 00:40:08 +03:00
|
|
|
|
//--
|
2023-09-17 22:13:42 +03:00
|
|
|
|
Global.FinishApplication();
|
|
|
|
|
|
}
|
|
|
|
|
|
private void InstallWelcomePanel() {
|
|
|
|
|
|
globalTabs.insertTab("Начало работы",
|
|
|
|
|
|
null,
|
|
|
|
|
|
welcomeForm.content,
|
2023-10-10 20:14:48 +03:00
|
|
|
|
"Для начала работы откройте проект с помощью верхней панели инструментов, или перетащите его сюда", 0
|
2023-09-17 22:13:42 +03:00
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void InstallProjectPanel() {
|
|
|
|
|
|
globalTabs.insertTab("", null,
|
2024-10-14 15:19:13 +03:00
|
|
|
|
(projectForm = new ProjectForm()).content, Global.mainModule.getProject().description, 0);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
globalTabs.setTabComponentAt(0,
|
2024-10-13 22:08:13 +03:00
|
|
|
|
new TabToolBar("Проект: " + Global.mainModule.getProject().name, PassCode.CloseCurrentProject) {
|
2023-09-17 22:13:42 +03:00
|
|
|
|
@Override
|
|
|
|
|
|
public void leftMouseAction() {
|
|
|
|
|
|
globalTabs.setSelectedIndex(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
private void RemoveProjectPanel() {
|
|
|
|
|
|
globalTabs.removeTabAt(0);
|
|
|
|
|
|
if (projectForm != null) {
|
|
|
|
|
|
projectForm.SaveSplitters();
|
|
|
|
|
|
projectForm = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void InstallCallbackPanel() {
|
|
|
|
|
|
globalTabs.insertTab("Обратная связь",
|
2024-10-11 00:00:30 +03:00
|
|
|
|
Utils_.getIcon("/icons/Bug.png"),
|
2023-09-17 22:13:42 +03:00
|
|
|
|
(callbackForm = new CallbackForm()).getContent(),
|
|
|
|
|
|
"Журнал ошибок и связь с разработчиками", 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void SaveCallbackPanel() {
|
|
|
|
|
|
if (callbackForm != null) {
|
|
|
|
|
|
callbackForm.SaveSplitters();
|
|
|
|
|
|
callbackForm = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-10-10 23:33:23 +03:00
|
|
|
|
private void InstallTestsPanel() {
|
|
|
|
|
|
globalTabs.insertTab("Тесты",
|
2024-10-11 00:00:30 +03:00
|
|
|
|
Utils_.getIcon("/icons/Library.PNG"),
|
2023-10-10 23:33:23 +03:00
|
|
|
|
(testsForm = new TestsForm()).getContent(),
|
2024-03-13 19:19:32 +03:00
|
|
|
|
"Библиотека тестов на сервере", 2);
|
2023-10-10 23:33:23 +03:00
|
|
|
|
}
|
|
|
|
|
|
private void SaveTestsPanel() {
|
|
|
|
|
|
if (testsForm != null) {
|
|
|
|
|
|
testsForm.SaveSplitters();
|
|
|
|
|
|
testsForm = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-09-17 22:13:42 +03:00
|
|
|
|
private void InstallTestingPanel() {
|
|
|
|
|
|
testingForm = new TestingForm();
|
2023-11-20 22:59:55 +03:00
|
|
|
|
globalTabs.insertTab("Тестирование",
|
2024-10-11 00:00:30 +03:00
|
|
|
|
Utils_.getIcon("/icons/Session.png"),
|
2023-11-20 22:59:55 +03:00
|
|
|
|
testingForm.getContent(),
|
2024-03-13 19:19:32 +03:00
|
|
|
|
"Система тестирования", 3);
|
2023-10-10 20:14:48 +03:00
|
|
|
|
}
|
2024-10-14 15:19:13 +03:00
|
|
|
|
/*
|
|
|
|
|
|
public void ShowCurrentCompiler() {
|
|
|
|
|
|
String res = "";
|
|
|
|
|
|
if (Current.HasMachine()) {
|
|
|
|
|
|
res += "@" + Current.getMachine().getURL();
|
|
|
|
|
|
if (Current.HasUser()) {
|
|
|
|
|
|
res = Current.getUser().login + res;
|
|
|
|
|
|
} else res = "?" + res;
|
2023-11-20 22:59:55 +03:00
|
|
|
|
|
2024-10-14 15:19:13 +03:00
|
|
|
|
if (Current.HasCompiler() && Current.getCompiler().type.equals(CompilerType.dvm)) {
|
|
|
|
|
|
res += "DVM система: " + Current.getCompiler().description;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
res += "DVM система: ?";
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
res += "?@?";
|
|
|
|
|
|
}
|
|
|
|
|
|
globalTabs.setTitleAt(2, res);
|
|
|
|
|
|
}
|
|
|
|
|
|
*/
|
2023-10-11 01:31:38 +03:00
|
|
|
|
@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()) {
|
2023-11-20 22:59:55 +03:00
|
|
|
|
if (test.group_id == group.id) {
|
2023-10-11 01:31:38 +03:00
|
|
|
|
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();
|
|
|
|
|
|
}
|
|
|
|
|
|
//--
|
2024-03-21 19:02:08 +03:00
|
|
|
|
globalTabs.setTitleAt(2, "Тесты: " + res);
|
2023-10-11 01:31:38 +03:00
|
|
|
|
}
|
2023-09-17 22:13:42 +03:00
|
|
|
|
private void SaveTestingPanel() {
|
|
|
|
|
|
if (testingForm != null) {
|
|
|
|
|
|
testingForm.SaveSplitters();
|
|
|
|
|
|
testingForm = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void saveGlobalTab() {
|
|
|
|
|
|
global_index = globalTabs.getSelectedIndex();
|
|
|
|
|
|
}
|
|
|
|
|
|
private void restoreGlobalTab() {
|
|
|
|
|
|
globalTabs.setSelectedIndex(global_index);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public ProjectWindow getProjectWindow() {
|
|
|
|
|
|
return projectForm;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public CallbackWindow getCallbackWindow() {
|
|
|
|
|
|
return callbackForm;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2023-10-10 23:33:23 +03:00
|
|
|
|
public TestsWindow getTestsWindow() {
|
|
|
|
|
|
return testsForm;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2023-09-17 22:13:42 +03:00
|
|
|
|
public void ShowUpdatesIcon() {
|
2024-10-14 21:55:58 +03:00
|
|
|
|
mainMenuBar.ShowUpdatesIcon();
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void FocusProject() {
|
|
|
|
|
|
globalTabs.setSelectedIndex(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void FocusCallback() {
|
|
|
|
|
|
globalTabs.setSelectedIndex(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2023-11-20 00:15:22 +03:00
|
|
|
|
public void FocusTests() {
|
2024-03-13 19:19:32 +03:00
|
|
|
|
globalTabs.setSelectedIndex(2);
|
2023-11-20 00:15:22 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2023-09-17 22:13:42 +03:00
|
|
|
|
public void FocusTesting() {
|
2024-03-13 19:19:32 +03:00
|
|
|
|
globalTabs.setSelectedIndex(3);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2023-11-20 22:59:55 +03:00
|
|
|
|
public void SwitchTestingTabs(boolean flag) {
|
|
|
|
|
|
globalTabs.setEnabledAt(2, flag);
|
|
|
|
|
|
globalTabs.setEnabledAt(3, flag);
|
2024-10-14 15:19:13 +03:00
|
|
|
|
// globalTabs.setEnabledAt(4, flag);
|
2023-11-20 22:59:55 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2023-09-17 22:13:42 +03:00
|
|
|
|
public TestingWindow getTestingWindow() {
|
|
|
|
|
|
return testingForm;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void Show() {
|
|
|
|
|
|
//приходится идти на это только ПОСЛЕ создания главного окна.
|
|
|
|
|
|
// иначе ссылка на главное окно в методах пустая.
|
|
|
|
|
|
getCallbackWindow().ShowAll();
|
2023-10-10 23:33:23 +03:00
|
|
|
|
getTestsWindow().ShowAll();
|
2023-09-17 22:13:42 +03:00
|
|
|
|
if (getTestingWindow() != null)
|
|
|
|
|
|
getTestingWindow().ShowAll();
|
2024-10-14 21:55:58 +03:00
|
|
|
|
MainModule_.instance.getUI().windowsStack.push(this);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
super.Show();
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void ShowProject() {
|
|
|
|
|
|
//-
|
|
|
|
|
|
saveGlobalTab();
|
|
|
|
|
|
RemoveProjectPanel();
|
|
|
|
|
|
InstallProjectPanel();
|
|
|
|
|
|
restoreGlobalTab();
|
2024-10-15 02:32:52 +03:00
|
|
|
|
Global.mainModule.getUI().getDebugWindow().DropCompilationTasksComparison();
|
2024-10-14 21:55:58 +03:00
|
|
|
|
mainMenuBar.ShowProject(true);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void ShowNoProject() {
|
|
|
|
|
|
//-
|
|
|
|
|
|
saveGlobalTab();
|
|
|
|
|
|
RemoveProjectPanel();
|
|
|
|
|
|
InstallWelcomePanel();
|
|
|
|
|
|
restoreGlobalTab();
|
2024-10-14 21:55:58 +03:00
|
|
|
|
mainMenuBar.ShowProject(false);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|