no message

This commit is contained in:
2023-12-26 16:18:23 +03:00
parent f604f94858
commit 05ec4871a1
5 changed files with 69 additions and 52 deletions

View File

@@ -3,15 +3,24 @@ import Common.UI.Menus_2023.StableMenuItem;
import Common.Utils.Utils;
import javax.swing.*;
public class TableFilter<D extends DBObject> {
DataSet table;
public JMenuItem menuItem; //пункт меню фильтра. ( возможно потом сделать и кнопку)
//одиночный фильтр, пункт фильтрационного меню.
public abstract class DBObjectFilter<D extends DBObject> {
String description;
public boolean active = true; //включен ли фильтр
public int count = 0;
protected boolean validate(D object) {
return true;
boolean active = true; //включен ли фильтр
int count = 0;
//--
public JMenuItem menuItem; //пункт меню фильтра. ( возможно потом сделать и кнопку)
//--
static String getNotActiveIconPath() {
return "/icons/NotPick.png";
}
static String getActiveIconPath() {
return "/icons/Pick.png";
}
void Mark() {
menuItem.setIcon(Utils.getIcon(active ? getActiveIconPath() : getNotActiveIconPath()));
}
//-------
public boolean Validate(D object) {
if (active) {
boolean valid = validate(object);
@@ -21,16 +30,12 @@ public class TableFilter<D extends DBObject> {
}
return false;
}
static String getNotActiveIconPath() {
return "/icons/NotPick.png";
public void ResetCount() {
count = 0;
}
static String getActiveIconPath() {
return "/icons/Pick.png";
}
public TableFilter(DataSet table_in, String description_in, boolean active_in) {
table = table_in;
menuItem = new StableMenuItem((description = description_in)+" (0)");
active=active_in;
public DBObjectFilter(DataSet table, String description_in, boolean active_in) {
menuItem = new StableMenuItem((description = description_in) + " (0)");
active = active_in;
menuItem.addActionListener(e -> {
active = !active;
Mark();
@@ -38,13 +43,12 @@ public class TableFilter<D extends DBObject> {
});
Mark();
}
public TableFilter(DataSet table_in, String description_in){
this(table_in,description_in,true);
}
public void Mark() {
menuItem.setIcon(Utils.getIcon(active ? getActiveIconPath() : getNotActiveIconPath()));
public DBObjectFilter(DataSet table_in, String description_in) {
this(table_in, description_in, true);
}
public void ShowDescriptionAndCount() {
menuItem.setText(description + " " + Utils.RBrackets(count));
}
//--
protected abstract boolean validate(D object);
}

View File

@@ -0,0 +1,10 @@
package Common.Database;
import TestingSystem.Common.Group.Group;
import java.util.Vector;
public class DataSetFilter {
public Vector<DBObjectFilter<Group>> filters;
public DataSetFilter(String name){
}
}

View File

@@ -16,8 +16,8 @@ import java.util.Vector;
//-
public class GroupsDBTable extends iDBTable<Group> {
public static boolean filterMyOnly = false;
public Vector<TableFilter<Group>> typeFilters;
public Vector<TableFilter<Group>> languageFilters;
public Vector<DBObjectFilter<Group>> typeFilters;
public Vector<DBObjectFilter<Group>> languageFilters;
//------------------------------------------------>>>
public GroupsDBTable() {
super(Group.class);
@@ -28,7 +28,7 @@ public class GroupsDBTable extends iDBTable<Group> {
//--
for (TestType type : TestType.values()) {
typeFilters.add(
new TableFilter<Group>(this, type.getDescription()) {
new DBObjectFilter<Group>(this, type.getDescription()) {
@Override
protected boolean validate(Group object) {
return object.type.equals(type);
@@ -37,7 +37,7 @@ public class GroupsDBTable extends iDBTable<Group> {
}
//--
for (LanguageName languageName : LanguageName.values()) {
languageFilters.add(new TableFilter<Group>(this, languageName.getDescription()) {
languageFilters.add(new DBObjectFilter<Group>(this, languageName.getDescription()) {
@Override
protected boolean validate(Group object) {
return object.language.equals(languageName);
@@ -56,45 +56,45 @@ public class GroupsDBTable extends iDBTable<Group> {
menuBar.addFilters(
new VisualiserMenu("Тип", "/icons/Filter.png", true) {
{
for (TableFilter filter : typeFilters)
for (DBObjectFilter filter : typeFilters)
add(filter.menuItem);
}
},
new VisualiserMenu("Язык", "/icons/Filter.png", true) {
{
for (TableFilter filter : languageFilters)
for (DBObjectFilter filter : languageFilters)
add(filter.menuItem);
}
}
);
}
public void ResetFiltersCount() {
for (TableFilter filter : typeFilters)
filter.count = 0;
for (TableFilter filter : languageFilters)
filter.count = 0;
for (DBObjectFilter filter : typeFilters)
filter.ResetCount();
for (DBObjectFilter filter : languageFilters)
filter.ResetCount();
}
public void ShowFiltersCount() {
for (TableFilter filter : typeFilters)
for (DBObjectFilter filter : typeFilters)
filter.ShowDescriptionAndCount();
for (TableFilter filter : languageFilters)
for (DBObjectFilter filter : languageFilters)
filter.ShowDescriptionAndCount();
}
public boolean applyFilters(Group object) {
boolean type = false;
//возвращать сразу нельзя. иначе количество не посчитает.
for (TableFilter filter : typeFilters) {
for (DBObjectFilter filter : typeFilters) {
if (filter.Validate(object)) {
type |= true;
}
}
boolean language = false;
for (TableFilter filter : languageFilters) {
for (DBObjectFilter filter : languageFilters) {
if (filter.Validate(object)) {
language |= true;
}
}
return type&&language;
return type && language;
}
@Override
public void ShowUI() {

View File

@@ -1,7 +1,7 @@
package TestingSystem.DVM.DVMTasks;
import Common.Current;
import Common.Database.DataSet;
import Common.Database.TableFilter;
import Common.Database.DBObjectFilter;
import Common.UI.DataSetControlForm;
import Common.UI.Menus_2023.VisualiserMenu;
import Common.UI.UI;
@@ -15,8 +15,8 @@ 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;
public Vector<DBObjectFilter<DVMRunTask>> compilationFilters;
public Vector<DBObjectFilter<DVMRunTask>> runFilters;
DVMPackage target;
public DVMRunTasksSet() {
super(Integer.class, DVMRunTask.class);
@@ -27,7 +27,7 @@ public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
//--
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
compilationFilters.add(new TableFilter<DVMRunTask>(this, state.getDescription()) {
compilationFilters.add(new DBObjectFilter<DVMRunTask>(this, state.getDescription()) {
@Override
protected boolean validate(DVMRunTask object) {
return object.compilation_state.equals(state);
@@ -38,7 +38,7 @@ public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
//--
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
runFilters.add(new TableFilter<DVMRunTask>(this, state.getDescription()) {
runFilters.add(new DBObjectFilter<DVMRunTask>(this, state.getDescription()) {
@Override
protected boolean validate(DVMRunTask object) {
return object.state.equals(state);
@@ -49,29 +49,29 @@ public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
}
}
public void ResetFiltersCount() {
for (TableFilter<DVMRunTask> filter : compilationFilters)
filter.count = 0;
for (TableFilter<DVMRunTask> filter : runFilters)
filter.count = 0;
for (DBObjectFilter<DVMRunTask> filter : compilationFilters)
filter.ResetCount();
for (DBObjectFilter<DVMRunTask> filter : runFilters)
filter.ResetCount();
}
public void ShowFiltersCount() {
for (TableFilter<DVMRunTask> filter : compilationFilters) {
for (DBObjectFilter<DVMRunTask> filter : compilationFilters) {
filter.ShowDescriptionAndCount();
}
for (TableFilter<DVMRunTask> filter : runFilters) {
for (DBObjectFilter<DVMRunTask> filter : runFilters) {
filter.ShowDescriptionAndCount();
}
}
public boolean applyFilters(DVMRunTask object) {
boolean compilation = false;
//возвращать сразу нельзя. иначе количество не посчитает.
for (TableFilter filter : compilationFilters) {
for (DBObjectFilter filter : compilationFilters) {
if (filter.Validate(object)) {
compilation |= true;
}
}
boolean run = false;
for (TableFilter filter : runFilters) {
for (DBObjectFilter filter : runFilters) {
if (filter.Validate(object)) {
run |= true;
}
@@ -88,13 +88,13 @@ public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
menuBar.addFilters(
new VisualiserMenu("Компиляция", "/icons/Filter.png", true) {
{
for (TableFilter filter : compilationFilters)
for (DBObjectFilter filter : compilationFilters)
add(filter.menuItem);
}
},
new VisualiserMenu("Запуск", "/icons/Filter.png", true) {
{
for (TableFilter filter : runFilters)
for (DBObjectFilter filter : runFilters)
add(filter.menuItem);
}
}