diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 257ff99b..d50be1c6 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -9,49 +9,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
-
-
-
-
-
diff --git a/src/Common/Database/Tables/DataSet.java b/src/Common/Database/Tables/DataSet.java
index e74d666a..9a5b255f 100644
--- a/src/Common/Database/Tables/DataSet.java
+++ b/src/Common/Database/Tables/DataSet.java
@@ -5,8 +5,7 @@ import Common.MainModule_;
import Common.Passes.PassCode_;
import Common.Utils.TextLog;
import Common.Visual.DataSetControlForm;
-import Common.Visual.DataSetFilter;
-import Common.Visual.Menus.DataMenuBar;
+import Common.Visual.DataSetFiltersMenu;
import Common.Visual.Tables.ColumnFilter;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
@@ -30,8 +29,6 @@ public class DataSet extends DataSetAnchestor {
//-
protected DataSetControlForm ui = null;
//--
- protected Vector> filters = new Vector<>();
- //--
public DataSet(Class k_in, Class d_in) {
k = k_in;
d = d_in;
@@ -45,12 +42,6 @@ public class DataSet extends DataSetAnchestor {
public void mountUI(JPanel mountPanel_in) {
UI.Clear(mountPanel_in);
ui = createUI(mountPanel_in);
- createFilters();
- if (!filters.isEmpty()) {
- DataMenuBar menuBar = MainModule_.instance.getUI().menuBars.get(getClass());
- for (DataSetFilter filter : filters)
- menuBar.addMenus(filter.menu);
- }
}
public void ClearUI() {
if ((ui != null) && ui.isShown()) {
@@ -192,33 +183,14 @@ public class DataSet extends DataSetAnchestor {
}
//--
public void ShowUI() {
- for (DataSetFilter filter : filters)
- filter.Drop();
- //--
if (ui != null) {
ui.Show();
}
- //--
- for (DataSetFilter filter : filters)
- filter.Refresh();
}
public void ShowUI(Object key) {
- for (DataSetFilter filter : filters)
- filter.Drop();
- //--
if (ui != null) {
ui.Show(key);
}
- //--
- for (DataSetFilter filter : filters)
- filter.Refresh();
- }
- public boolean applyFilters(D object) {
- for (DataSetFilter filter : filters) {
- if (!filter.Validate(object))
- return false;
- }
- return true;
}
//------------------------------------------------------------------------------------
public Current_ CurrentName() {
diff --git a/src/Common/Visual/DataSetControlForm.java b/src/Common/Visual/DataSetControlForm.java
index 3400f99c..99b5782b 100644
--- a/src/Common/Visual/DataSetControlForm.java
+++ b/src/Common/Visual/DataSetControlForm.java
@@ -33,7 +33,9 @@ public class DataSetControlForm extends ControlForm {
protected boolean events_on = true;
protected String colNamesAndSizes = "";
protected Vector columns = new Vector<>(); //информация о столбцах и их оформлении
- FilterInterface f_ui; // отображение количества объектов ( todo слить с баром ?)
+ //фильтры и подсчеты. todo слить с баром (?)
+ MatchesCounter f_ui = null;
+ protected Vector filters = new Vector<>();
public DataSetControlForm(DataSet dataSource_in, JPanel mountPanel_in) {
super(DataTable.class, mountPanel_in);
dataSource = dataSource_in;
@@ -52,6 +54,11 @@ public class DataSetControlForm extends ControlForm {
//--
f_ui = (count -> bar.countLabel.setText(String.valueOf(count)));
//--
+ createFilters();
+ if (!filters.isEmpty()) {
+ for (DataSetFiltersMenu filter : filters)
+ bar.addMenus(filter.getMenu());
+ }
} catch (Exception ex) {
ex.printStackTrace();
}
@@ -275,14 +282,28 @@ public class DataSetControlForm extends ControlForm {
protected DataMenuBar createMenuBar() {
return new DataMenuBar(dataSource.getPluralDescription());
}
+ protected void createFilters() {}
+ protected boolean applyFiltersMenus(DBObject object){
+ for (DataSetFiltersMenu filterMenu : filters) {
+ if (!filterMenu.Validate(object))
+ return false;
+ }
+ return true;
+ }
+ public boolean ApplyFilters(DBObject object) {
+ //могут быть и другие фильтры ( например свои/активные). перенести их сюда и обобщить
+ return applyFiltersMenus(object);
+ }
@Override
protected void redrawControl() {
control.CorrectSizes();
}
@Override
public void Show() {
+ for (DataSetFiltersMenu filterMenu : filters) filterMenu.Drop();
super.Show();
if (f_ui != null) f_ui.ShowMatchesCount(getRowCount());
+ for (DataSetFiltersMenu filterMenu : filters) filterMenu.Refresh();
}
public void Show(Object pk) {
Show();
diff --git a/src/Common/Visual/DataSetFilter.java b/src/Common/Visual/DataSetFiltersMenu.java
similarity index 92%
rename from src/Common/Visual/DataSetFilter.java
rename to src/Common/Visual/DataSetFiltersMenu.java
index fea676ae..20f878c6 100644
--- a/src/Common/Visual/DataSetFilter.java
+++ b/src/Common/Visual/DataSetFiltersMenu.java
@@ -7,12 +7,13 @@ import Common.Visual.Menus.VisualiserMenu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
-public abstract class DataSetFilter {
- public VisualiserMenu menu;
+public abstract class DataSetFiltersMenu {
+ VisualiserMenu menu= null;
+ public VisualiserMenu getMenu(){return menu;}
//--
protected DataSet, D> dataSet;
protected Vector> field_filters;
- public DataSetFilter(String name, DataSet dataSet_in) {
+ public DataSetFiltersMenu(String name, DataSet dataSet_in) {
dataSet = dataSet_in;
menu = new VisualiserMenu(name, "/Common/icons/Filter.png", true);
field_filters = new Vector<>();
diff --git a/src/Common/Visual/FilterInterface.java b/src/Common/Visual/MatchesCounter.java
similarity index 79%
rename from src/Common/Visual/FilterInterface.java
rename to src/Common/Visual/MatchesCounter.java
index b8cc619b..a2111e23 100644
--- a/src/Common/Visual/FilterInterface.java
+++ b/src/Common/Visual/MatchesCounter.java
@@ -1,5 +1,5 @@
package Common.Visual;
-public interface FilterInterface {
+public interface MatchesCounter {
void ShowMatchesCount(int count);
default void ShowNoMatches() {
ShowMatchesCount(0);
diff --git a/src/_VisualDVM/TestingSystem/Common/Group/Group.java b/src/_VisualDVM/TestingSystem/Common/Group/Group.java
index 343ccb51..5773d06f 100644
--- a/src/_VisualDVM/TestingSystem/Common/Group/Group.java
+++ b/src/_VisualDVM/TestingSystem/Common/Group/Group.java
@@ -72,7 +72,7 @@ public class Group extends riDBObject {
@Override
public boolean isVisible() {
return (!GroupsDBTable.filterMyOnly || Global.mainModule.getAccount().email.equals(sender_address)) &&
- Global.testingServer.db.groups.applyFilters(this);
+ Global.testingServer.db.groups.getUI().ApplyFilters(this);
}
public String getSummary() {
return description + " " + language.getDescription();
diff --git a/src/_VisualDVM/TestingSystem/Common/Group/GroupsDBTable.java b/src/_VisualDVM/TestingSystem/Common/Group/GroupsDBTable.java
index c836fe44..8bedfd0e 100644
--- a/src/_VisualDVM/TestingSystem/Common/Group/GroupsDBTable.java
+++ b/src/_VisualDVM/TestingSystem/Common/Group/GroupsDBTable.java
@@ -9,7 +9,7 @@ import Common.Utils.Utils_;
import Common.Visual.Controls.MenuBarButton;
import Common.Visual.DBObjectFilter;
import Common.Visual.DataSetControlForm;
-import Common.Visual.DataSetFilter;
+import Common.Visual.DataSetFiltersMenu;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
@@ -33,34 +33,6 @@ public class GroupsDBTable extends iDBTable {
}
//------------------------------------------------>>>
@Override
- protected void createFilters() {
- filters.add(new Common.Visual.DataSetFilter("Тип", this) {
- @Override
- public void fill() {
- for (TestType type : TestType.values())
- field_filters.add(new Common.Visual.DBObjectFilter(dataSet, type.getDescription()) {
- @Override
- protected boolean validate(Group object) {
- return object.type.equals(type);
- }
- });
- }
- });
- filters.add(new DataSetFilter("Язык", this) {
- @Override
- public void fill() {
- for (LanguageName languageName : LanguageName.values()) {
- field_filters.add(new DBObjectFilter(dataSet, languageName.getDescription()) {
- @Override
- protected boolean validate(Group object) {
- return object.language.equals(languageName);
- }
- });
- }
- }
- });
- }
- @Override
public String getSingleDescription() {
return "группа тестов";
}
@@ -108,6 +80,34 @@ public class GroupsDBTable extends iDBTable {
}
};
}
+ @Override
+ protected void createFilters() {
+ filters.add(new DataSetFiltersMenu("Тип", dataSource) {
+ @Override
+ public void fill() {
+ for (TestType type : TestType.values())
+ field_filters.add(new Common.Visual.DBObjectFilter(dataSet, type.getDescription()) {
+ @Override
+ protected boolean validate(Group object) {
+ return object.type.equals(type);
+ }
+ });
+ }
+ });
+ filters.add(new DataSetFiltersMenu("Язык", dataSource) {
+ @Override
+ public void fill() {
+ for (LanguageName languageName : LanguageName.values()) {
+ field_filters.add(new DBObjectFilter(dataSet, languageName.getDescription()) {
+ @Override
+ protected boolean validate(Group object) {
+ return object.language.equals(languageName);
+ }
+ });
+ }
+ }
+ });
+ }
};
}
@Override
diff --git a/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTask.java b/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTask.java
index a451499b..51570853 100644
--- a/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTask.java
+++ b/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTask.java
@@ -113,7 +113,7 @@ public class DVMRunTask extends DVMTask {
}
@Override
public boolean isVisible() {
- return Global.testingServer.db.dvmRunTasks.applyFilters(this);
+ return Global.testingServer.db.dvmRunTasks.getUI().ApplyFilters(this);
}
public File getCompilationTaskWorkspace() {
return Paths.get(
diff --git a/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java b/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java
index 48533478..fc9e3a3a 100644
--- a/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java
+++ b/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java
@@ -2,7 +2,7 @@ package _VisualDVM.TestingSystem.DVM.DVMTasks;
import Common.Database.Tables.DataSet;
import Common.Visual.DBObjectFilter;
import Common.Visual.DataSetControlForm;
-import Common.Visual.DataSetFilter;
+import Common.Visual.DataSetFiltersMenu;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Tables.RendererProgressBar;
import Common.Visual.Tables.RendererStatusEnum;
@@ -20,39 +20,6 @@ public class DVMRunTasksSet extends DataSet {
super(Integer.class, DVMRunTask.class);
}
@Override
- protected void createFilters() {
- filters.add(new DataSetFilter("Компиляция", this) {
- @Override
- public void fill() {
- for (TaskState state : TaskState.values()) {
- if (state.isVisible()) {
- field_filters.add(new DBObjectFilter(dataSet, state.getDescription()) {
- @Override
- protected boolean validate(DVMRunTask object) {
- return object.compilation_state.equals(state);
- }
- });
- }
- }
- }
- });
- filters.add(new DataSetFilter("Запуск", this) {
- @Override
- public void fill() {
- for (TaskState state : TaskState.values()) {
- if (state.isVisible()) {
- field_filters.add(new DBObjectFilter(dataSet, state.getDescription()) {
- @Override
- protected boolean validate(DVMRunTask object) {
- return object.state.equals(state);
- }
- });
- }
- }
- }
- });
- }
- @Override
public String getSingleDescription() {
return "задача";
}
@@ -77,6 +44,39 @@ public class DVMRunTasksSet extends DataSet {
public DataMenuBar createMenuBar() {
return new DataMenuBar(getPluralDescription(), PassCode.CompareDVMRunTasks, PassCode.DownloadTaskTest);
}
+ @Override
+ protected void createFilters() {
+ filters.add(new DataSetFiltersMenu("Компиляция", dataSource) {
+ @Override
+ public void fill() {
+ for (TaskState state : TaskState.values()) {
+ if (state.isVisible()) {
+ field_filters.add(new DBObjectFilter(dataSet, state.getDescription()) {
+ @Override
+ protected boolean validate(DVMRunTask object) {
+ return object.compilation_state.equals(state);
+ }
+ });
+ }
+ }
+ }
+ });
+ filters.add(new DataSetFiltersMenu("Запуск", dataSource) {
+ @Override
+ public void fill() {
+ for (TaskState state : TaskState.values()) {
+ if (state.isVisible()) {
+ field_filters.add(new DBObjectFilter(dataSet, state.getDescription()) {
+ @Override
+ protected boolean validate(DVMRunTask object) {
+ return object.state.equals(state);
+ }
+ });
+ }
+ }
+ }
+ });
+ }
};
}
@Override