окончательное разделение таблицы и функционала видимой ее формы

This commit is contained in:
2024-10-22 15:25:06 +03:00
parent 319e6575c8
commit 38b2896e4a
102 changed files with 738 additions and 709 deletions

View File

@@ -2,7 +2,6 @@ package _VisualDVM.TestingSystem.SAPFOR.SapforPackage;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Visual.DataSetControlForm;
import _VisualDVM.Current;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.UI.SapforPackagesForm;
@@ -12,18 +11,6 @@ public class SapforPackageDBTable extends iDBTable<SapforPackage> {
super(SapforPackage.class);
}
@Override
public Current CurrentName() {
return Current.SapforPackage;
}
@Override
public String getSingleDescription() {
return "пакет";
}
@Override
public String getPluralDescription() {
return "пакеты";
}
@Override
protected DataSetControlForm createUI(JPanel mountPanel) {
return new SapforPackagesForm(this, mountPanel);
}

View File

@@ -1,13 +1,14 @@
package _VisualDVM.TestingSystem.SAPFOR.SapforPackage.UI;
import Common.Database.Tables.DataSet;
import Common.Utils.Utils_;
import Common.Visual.Controls.MenuBarButton;
import Common.Visual.DataSetControlForm;
import Common.Visual.FilterFlag;
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;
@@ -18,12 +19,22 @@ import javax.swing.*;
import java.util.Comparator;
import java.util.Date;
public class SapforPackagesForm extends DataSetControlForm<SapforPackage> {
public static boolean filterMyOnly = false;
public static boolean filterActive = false;
public SapforPackagesForm(DataSet<?, SapforPackage> dataSource_in, JPanel mountPanel_in) {
super(dataSource_in, mountPanel_in);
}
@Override
public Current CurrentName() {
return Current.SapforPackage;
}
@Override
public String getSingleDescription() {
return "пакет";
}
@Override
public String getPluralDescription() {
return "пакеты";
}
@Override
public boolean hasCheckBox() {
return true;
}
@@ -81,7 +92,7 @@ public class SapforPackagesForm extends DataSetControlForm<SapforPackage> {
}
@Override
public DataMenuBar createMenuBar() {
return new DataMenuBar(dataSource.getPluralDescription(), PassCode.SynchronizeTests) {
return new DataMenuBar(getPluralDescription(), PassCode.SynchronizeTests) {
{
addSeparator();
addPasses(PassCode.AbortSapforPackage);
@@ -89,37 +100,6 @@ public class SapforPackagesForm extends DataSetControlForm<SapforPackage> {
addPasses(PassCode.CompareSapforPackages);
addSeparator();
addPasses(PassCode.DeleteSapforPackage);
add(new JSeparator());
add(new MenuBarButton() {
{
setText("Свои");
setToolTipText("Отображать только пакеты тестов авторства пользователя");
Mark();
addActionListener(e -> {
filterMyOnly = !filterMyOnly;
Mark();
Global.testingServer.db.sapforPackages.ShowUI();
});
}
public void Mark() {
setIcon(Utils_.getIcon(filterMyOnly ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
}
});
add(new MenuBarButton() {
{
setText("Активные");
setToolTipText("Отображать только активные пакеты тестов");
Mark();
addActionListener(e -> {
filterActive = !filterActive;
Mark();
Global.testingServer.db.sapforPackages.ShowUI();
});
}
public void Mark() {
setIcon(Utils_.getIcon(filterActive ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
}
});
}
};
}
@@ -133,9 +113,28 @@ public class SapforPackagesForm extends DataSetControlForm<SapforPackage> {
};
}
@Override
public boolean isObjectVisible(SapforPackage object) {
return super.isObjectVisible(object) &&
(!filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address)) &&
(!filterActive || object.state.isActive());
protected void createFilters() {
AddFilter(new FilterFlag<SapforPackage>(dataSource, new MenuBarButton() {
{
setText("Свои");
setToolTipText("Отображать только пакеты тестов авторства пользователя");
}
}, false) {
@Override
protected boolean validate(SapforPackage object) {
return Global.mainModule.getAccount().email.equals(object.sender_address);
}
});
AddFilter(new FilterFlag<SapforPackage>(dataSource, new MenuBarButton() {
{
setText("Активные");
setToolTipText("Отображать только активные пакеты тестов");
}
}, false) {
@Override
protected boolean validate(SapforPackage object) {
return object.state.isActive();
}
});
}
}