промежуточный. выкинул старые объекты и функционал. Осталось восстановить эксель, и отображение пакетов Сапфор

This commit is contained in:
2023-12-16 16:52:17 +03:00
parent 94ff786ed6
commit 0c513cec5e
57 changed files with 276 additions and 3460 deletions

View File

@@ -1,20 +1,14 @@
package TestingSystem.DVM.DVMTasks;
import Common.Constants;
import Common.Current;
import Common.Database.DBObject;
import Common.Global;
import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
import ProjectData.LanguageName;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.Common.Test.TestType;
import TestingSystem.DVM.Configuration.Configuration;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.Tasks.TestRunTask;
import TestingSystem.DVM.Tasks.TestTask;
import com.google.gson.annotations.Expose;
import com.sun.org.glassfish.gmbal.Description;
import java.util.Vector;
public class DVMRunTask extends DVMTask {
@@ -114,5 +108,24 @@ public class DVMRunTask extends DVMTask {
public String getUsrPar() {
return usr_par.replace("\n", ";");
}
@Override
public boolean isVisible() {
return Global.testingServer.db.dvmRunTasks.applyFilters(this);
}
public String getCompilationOutput() {
return "?";
}
public String getCompilationErrors() {
return "?";
}
public String getOutput() {
return "?";
}
public String getErrors() {
return "?";
}
public String getStatistic() {
return "?";
}
}
//--

View File

@@ -0,0 +1,23 @@
package TestingSystem.DVM.DVMTasks;
import Common.Database.DataSet;
import Common.UI.Menus_2023.DataMenuBar;
import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*;
public class DVMRunTasksBar extends DataMenuBar {
JMenuBar filters= null;
public void DropFilters() {
if (filters != null) {
remove(filters);
filters = null;
}
revalidate();
repaint();
}
public void addFilters(JMenu cFilterMenu, JMenu rFilterMenu) {
filters= addMenus(cFilterMenu, rFilterMenu);
}
public DVMRunTasksBar() {
super("задачи", PassCode_2021.DownloadTaskTest);
}
}

View File

@@ -0,0 +1,220 @@
package TestingSystem.DVM.DVMTasks;
import Common.Current;
import Common.Database.DataSet;
import Common.Database.TableFilter;
import Common.UI.DataSetControlForm;
import Common.UI.Menus_2023.VisualiserMenu;
import Common.UI.UI;
import GlobalData.Tasks.TaskState;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import javax.swing.*;
import java.util.Vector;
import static Common.UI.Tables.TableRenderers.RendererProgress;
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
//todo обобщить бы наличие фильтров для всех таблиц.
public Vector<TableFilter<DVMRunTask>> compilationFilters;
public Vector<TableFilter<DVMRunTask>> runFilters;
DVMPackage target;
public DVMRunTasksSet() {
super(Integer.class, DVMRunTask.class);
//todo обобщить бы наличие фильтров для всех таблиц.
if (Current.hasUI()) {
compilationFilters = new Vector<>();
runFilters = new Vector<>();
//--
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
compilationFilters.add(new TableFilter<DVMRunTask>(this, state.getDescription()) {
@Override
protected boolean validate(DVMRunTask object) {
return object.compilation_state.equals(state);
}
});
}
}
//--
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
runFilters.add(new TableFilter<DVMRunTask>(this, state.getDescription()) {
@Override
protected boolean validate(DVMRunTask object) {
return object.state.equals(state);
}
});
}
}
}
}
public void ResetFiltersCount() {
for (TableFilter<DVMRunTask> filter : compilationFilters)
filter.count = 0;
for (TableFilter<DVMRunTask> filter : runFilters)
filter.count = 0;
}
public void ShowFiltersCount() {
for (TableFilter<DVMRunTask> filter : compilationFilters) {
filter.ShowDescriptionAndCount();
}
for (TableFilter<DVMRunTask> filter : runFilters) {
filter.ShowDescriptionAndCount();
}
}
public boolean applyFilters(DVMRunTask object) {
boolean compilation = false;
//возвращать сразу нельзя. иначе количество не посчитает.
for (TableFilter filter : compilationFilters) {
if (filter.Validate(object)) {
compilation |= true;
}
}
boolean run = false;
for (TableFilter filter : runFilters) {
if (filter.Validate(object)) {
run |= true;
}
}
return compilation && run;
}
@Override
public void mountUI(JPanel content_in) {
super.mountUI(content_in);
//-
DVMRunTasksBar menuBar = (DVMRunTasksBar) UI.menuBars.get(getClass());
menuBar.DropFilters();
//----
menuBar.addFilters(
new VisualiserMenu("Компиляция", "/icons/Filter.png", true) {
{
for (TableFilter filter : compilationFilters)
add(filter.menuItem);
}
},
new VisualiserMenu("Запуск", "/icons/Filter.png", true) {
{
for (TableFilter filter : runFilters)
add(filter.menuItem);
}
}
);
}
@Override
public void ShowUI() {
ResetFiltersCount();
super.ShowUI();
ShowFiltersCount();
}
@Override
public void ShowUI(Object key) {
ResetFiltersCount();
super.ShowUI(key);
ShowFiltersCount();
}
@Override
public String getSingleDescription() {
return "задача";
}
@Override
public String getPluralDescription() {
return "задачи";
}
@Override
protected DataSetControlForm createUI() {
return new DataSetControlForm(this) {
@Override
public boolean hasCheckBox() {
return true;
}
@Override
protected void AdditionalInitColumns() {
columns.get(5).setRenderer(RendererStatusEnum);
columns.get(6).setRenderer(RendererStatusEnum);
columns.get(13).setRenderer(RendererProgress);
}
};
}
@Override
public String[] getUIColumnNames() {
return new String[]{
"Тест",
"Язык",
"Флаги",
"Компиляция",
"Запуск",
"Матрица",
"Окружение",
"usr.par",
"Время компиляции (с)",
"Время запуска (с)",
"Чистое время (с)",
"Прогресс",
};
}
@Override
public Object getFieldAt(DVMRunTask object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.test_description;
case 3:
return object.language;
case 4:
return object.flags;
case 5:
return object.compilation_state;
case 6:
return object.state;
case 7:
return object.matrix;
case 8:
return object.getEnvironments();
case 9:
return object.getUsrPar();
case 10:
return object.compilation_time;
case 11:
return object.Time;
case 12:
return object.CleanTime;
case 13:
return object.progress;
default:
return null;
}
}
@Override
public Current CurrentName() {
return Current.DVMRunTask;
}
public void ShowDVMPackage(DVMPackage dvmPackage) {
target = dvmPackage;
ClearUI();
Data.clear();
if (dvmPackage.package_json == null) {
if (dvmPackage.getJsonFile().exists()) {
try {
dvmPackage.readJson();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
if (dvmPackage.package_json != null) {
for (DVMCompilationTask compilationTask : dvmPackage.package_json.compilationTasks) {
for (DVMRunTask runTask : compilationTask.runTasks) {
Data.put(runTask.id, runTask);
}
}
ShowUI();
}
}
public void ShowNoPackage() {
ClearUI();
Data.clear();
if (target != null) {
target.destructor();
target = null;
}
}
}