Files
VisualSapfor/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java

170 lines
5.6 KiB
Java
Raw Normal View History

2024-10-09 22:21:57 +03:00
package _VisualDVM.TestingSystem.DVM.DVMTasks;
import Common.Database.Tables.DataSet;
2024-10-14 15:19:13 +03:00
import Common.Visual.DBObjectFilter;
import Common.Visual.DataSetControlForm;
2024-10-14 15:19:13 +03:00
import Common.Visual.DataSetFilter;
import _VisualDVM.Current;
2024-10-09 22:21:57 +03:00
import _VisualDVM.GlobalData.Tasks.TaskState;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
2023-09-17 22:13:42 +03:00
import java.util.Comparator;
2024-10-09 20:35:18 +03:00
import static Common.Visual.Tables.TableRenderers.RendererProgress;
import static Common.Visual.Tables.TableRenderers.RendererStatusEnum;
public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
//todo обобщить бы наличие фильтров для всех таблиц.
DVMPackage target;
2024-10-14 15:19:13 +03:00
public DVMRunTasksSet() {
super(Integer.class, DVMRunTask.class);
}
@Override
protected void createFilters() {
filters.add(new DataSetFilter<DVMRunTask>("Компиляция", this) {
@Override
public void fill() {
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
@Override
protected boolean validate(DVMRunTask object) {
return object.compilation_state.equals(state);
}
});
}
}
}
});
filters.add(new DataSetFilter<DVMRunTask>("Запуск", this) {
@Override
public void fill() {
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
@Override
protected boolean validate(DVMRunTask object) {
return object.state.equals(state);
}
});
}
}
}
});
}
2023-09-17 22:13:42 +03:00
@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);
2023-09-17 22:13:42 +03:00
columns.get(6).setRenderer(RendererStatusEnum);
columns.get(13).setRenderer(RendererProgress);
2023-09-17 22:13:42 +03:00
}
};
}
@Override
public String[] getUIColumnNames() {
return new String[]{
"Тест",
"Язык",
"Флаги",
"Компиляция",
2023-09-17 22:13:42 +03:00
"Запуск",
"Матрица",
"Окружение",
"usr.par",
"Время компиляции (с)",
"Время запуска (с)",
2023-09-17 22:13:42 +03:00
"Чистое время (с)",
"Прогресс",
};
}
@Override
public Object getFieldAt(DVMRunTask object, int columnIndex) {
2023-09-17 22:13:42 +03:00
switch (columnIndex) {
case 2:
return object.test_description;
case 3:
2023-09-17 22:13:42 +03:00
return object.language;
case 4:
2023-09-17 22:13:42 +03:00
return object.flags;
case 5:
2023-09-17 22:13:42 +03:00
return object.compilation_state;
case 6:
2023-09-17 22:13:42 +03:00
return object.state;
case 7:
return object.matrix;
2023-09-17 22:13:42 +03:00
case 8:
return object.getEnvironments();
2023-09-17 22:13:42 +03:00
case 9:
return object.getUsrPar();
2023-09-17 22:13:42 +03:00
case 10:
return object.compilation_time;
2023-09-17 22:13:42 +03:00
case 11:
return object.Time;
case 12:
2023-09-17 22:13:42 +03:00
return object.CleanTime;
case 13:
2023-09-17 22:13:42 +03:00
return object.progress;
default:
return null;
}
}
@Override
public Current CurrentName() {
return Current.DVMRunTask;
2023-09-17 22:13:42 +03:00
}
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();
}
2023-09-17 22:13:42 +03:00
}
public void ShowNoPackage() {
ClearUI();
Data.clear();
target = null;
2023-09-17 22:13:42 +03:00
}
@Override
public Comparator<DVMRunTask> getComparator() {
return new Comparator<DVMRunTask>() {
@Override
public int compare(DVMRunTask o1, DVMRunTask o2) {
return o1.state.ordinal() - o2.state.ordinal();
}
};
// return Comparator.comparingInt(o -> o.).reversed();
}
@Override
public Class getMenuBarClass() {
return DVMRunTasksBar.class;
}
2023-09-17 22:13:42 +03:00
}