package _VisualDVM.TestingSystem.DVM.DVMPackage; import Common.Database.Tables.iDBTable; import Common.Passes.PassCode_; 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 { 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(JPanel mountPanel) { return new DataSetControlForm(this, mountPanel) { @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 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")); } }); } }; } }; } @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 getComparator() { return new Comparator() { @Override public int compare(DVMPackage o1, DVMPackage o2) { return o2.id - o1.id; } }; // return Comparator.comparingInt(o -> o.).reversed(); } @Override public PassCode_ getDeletePassCode() { return PassCode.DeleteDVMPackage; } }