Files
VisualSapfor/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackageDBTable.java

175 lines
6.5 KiB
Java

package _VisualDVM.TestingSystem.DVM.DVMPackage;
import Common.Database.Tables.iDBTable;
import Common.Utils.Utils_;
import Common.Visual.Controls.MenuBarButton;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Tables.RendererDate;
import Common.Visual.Tables.RendererMultiline;
import Common.Visual.Tables.RendererProgressBar;
import Common.Visual.Tables.RendererStatusEnum;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ServerObjectsCache.PackageCache;
import _VisualDVM.ServerObjectsCache.VisualCaches;
import javax.swing.*;
import java.util.Comparator;
import java.util.Date;
public class DVMPackageDBTable extends iDBTable<DVMPackage> {
public static boolean filterMyOnly = false;
public static boolean filterActive = false;
public DVMPackageDBTable() {
super(DVMPackage.class);
}
@Override
public Current CurrentName() {
return Current.DVMPackage;
}
@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(6).setRendererClass(RendererMultiline.class);
columns.get(9).setRendererClass(RendererProgressBar.class);
columns.get(10).setRendererClass(RendererDate.class);
columns.get(11).setRendererClass(RendererDate.class);
columns.get(12).setRendererClass(RendererStatusEnum.class);
}
@Override
public void ShowCurrentObject() throws Exception {
super.ShowCurrentObject();
//--
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(getCurrent());
Global.mainModule.getUI().getMainWindow().getTestingWindow().DropTestRunTasksComparison();
//--
}
@Override
public void ShowNoCurrentObject() throws Exception {
super.ShowNoCurrentObject();
Global.testingServer.db.dvmRunTasks.ShowNoPackage();
Global.mainModule.getUI().getMainWindow().getTestingWindow().DropTestRunTasksComparison();
}
@Override
public void MouseAction2() throws Exception {
Global.mainModule.getPass(PassCode.DownloadDVMPackage).Do();
}
};
}
@Override
public String[] getUIColumnNames() {
return new String[]{
"Автор",
"Машина",
"Пользователь",
"DVM",
"Конфигурации",
"Задач",
"Ядер",
"Прогресс",
"Начало",
"Изменено",
"Статус"
};
}
@Override
public Object getFieldAt(DVMPackage object, int columnIndex) {
PackageCache cache = (PackageCache) VisualCaches.GetCache(object);
switch (columnIndex) {
case 2:
return object.sender_name;
case 3:
return object.machine_address + ":" + object.machine_port;
case 4:
return object.user_name;
case 5:
return object.version;
case 6:
return cache.getConfigurationsDescriptions();
case 7:
return object.tasksCount;
case 8:
return object.kernels;
case 9:
return object.progress;
case 10:
return new Date(object.StartDate);
case 11:
return new Date(object.ChangeDate);
case 12:
return object.state;
default:
return null;
}
}
@Override
public Comparator<DVMPackage> getComparator() {
return new Comparator<DVMPackage>() {
@Override
public int compare(DVMPackage o1, DVMPackage o2) {
return o2.id - o1.id;
}
};
// return Comparator.comparingInt(o -> o.).reversed();
}
@Override
public DataMenuBar createMenuBar() {
return new DataMenuBar(getPluralDescription()){
{
addPasses(PassCode.SynchronizeTests);
addSeparator();
addPasses(PassCode.AbortDVMPackage);
addSeparator();
addPasses(PassCode.DownloadDVMPackage,
PassCode.ExportDVMPackageToExcel,
PassCode.DeleteDVMPackage);
add(new JSeparator());
add(new MenuBarButton() {
{
setText("Свои");
setToolTipText("Отображать только пакеты тестов авторства пользователя");
Mark();
addActionListener(e -> {
DVMPackageDBTable.filterMyOnly = !DVMPackageDBTable.filterMyOnly;
Mark();
Global.testingServer.db.dvmPackages.ShowUI();
});
}
public void Mark() {
setIcon(Utils_.getIcon(DVMPackageDBTable.filterMyOnly ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
}
});
add(new MenuBarButton() {
{
setText("Активные");
setToolTipText("Отображать только активные пакеты тестов");
Mark();
addActionListener(e -> {
DVMPackageDBTable.filterActive = !DVMPackageDBTable.filterActive;
Mark();
Global.testingServer.db.dvmPackages.ShowUI();
});
}
public void Mark() {
setIcon(Utils_.getIcon(DVMPackageDBTable.filterActive ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
}
});
}
};
}
}