diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index d3ed87c8..8616af4d 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,14 +7,14 @@
+
+
-
+
-
-
@@ -38,8 +38,8 @@
-
+
diff --git a/src/Common/Visual/DBbjectFilter_.java b/src/Common/Visual/DBObjectFilter_.java
similarity index 77%
rename from src/Common/Visual/DBbjectFilter_.java
rename to src/Common/Visual/DBObjectFilter_.java
index 30ae54f0..eaab85d3 100644
--- a/src/Common/Visual/DBbjectFilter_.java
+++ b/src/Common/Visual/DBObjectFilter_.java
@@ -1,6 +1,6 @@
package Common.Visual;
import Common.Database.Objects.DBObject;
-public interface DBbjectFilter_ {
+public interface DBObjectFilter_ {
boolean Validate(D dbObject);
default void DropMatchesCount(){}
default void ShowMatchesCount(){}
diff --git a/src/Common/Visual/DataSetControlForm.java b/src/Common/Visual/DataSetControlForm.java
index 15f6c17a..6f3f821c 100644
--- a/src/Common/Visual/DataSetControlForm.java
+++ b/src/Common/Visual/DataSetControlForm.java
@@ -32,10 +32,10 @@ public class DataSetControlForm extends ControlForm columns = new Vector<>(); //информация о столбцах и их оформлении
//-
- protected Vector> allFilters = new Vector<>();
+ protected Vector> allFilters = new Vector<>();
Vector getFilters(Class f){
Vector res = new Vector<>();
- for (DBbjectFilter_ filter_: allFilters){
+ for (DBObjectFilter_ filter_: allFilters){
//либо М, либо наследует от М
if (filter_.getClass().equals(f)||filter_.getClass().getSuperclass().equals(f)){
res.add((M) filter_);
@@ -43,7 +43,7 @@ public class DataSetControlForm extends ControlForm extends ControlForm extends ControlForm extends VisualiserMenu implements DBbjectFilter_ {
+public abstract class DataSetFiltersMenu extends VisualiserMenu implements DBObjectFilter_ {
//--
protected DataSet, D> dataSet;
protected Vector> field_filters;
@@ -18,7 +18,7 @@ public abstract class DataSetFiltersMenu extends VisualiserM
fill();
//-
for (FilterFlagMenuItem filter : field_filters)
- add(filter.menuItem);
+ add(filter.getControl());
addSeparator();
add(new StableMenuItem("Выбрать всё", "/Common/icons/SelectAll.png") {
{
diff --git a/src/Common/Visual/FilterFlag.java b/src/Common/Visual/FilterFlag.java
new file mode 100644
index 00000000..a3193518
--- /dev/null
+++ b/src/Common/Visual/FilterFlag.java
@@ -0,0 +1,59 @@
+package Common.Visual;
+import Common.Database.Objects.DBObject;
+import Common.Database.Tables.DataSet;
+import Common.Utils.Utils_;
+
+import javax.swing.*;
+//фильтр флаг. либо в меню, либо на баре. текста нет.
+public abstract class FilterFlag implements DBObjectFilter_ {
+ protected AbstractButton control = null;
+ String description; //описание фильтра
+ protected boolean active = true; //включен ли фильтр
+ int count = 0;
+ protected DataSet, D> dataSet = null; ///источник данных
+ protected String getNotActiveIconPath() {
+ return "/Common/icons/NotPick.png";
+ }
+ protected String getActiveIconPath() {
+ return "/Common/icons/Pick.png";
+ }
+ public FilterFlag(DataSet, D> dataSet_in, AbstractButton control_in, boolean active_in) {
+ dataSet = dataSet_in;
+ active = active_in;
+ control = control_in;
+ description = control.getText();
+ control.addActionListener(e -> {
+ active = !active;
+ Mark();
+ dataSet.ShowUI();
+ });
+ Mark();
+ }
+ public AbstractButton getControl(){return control;}
+ public void Mark() {
+ control.setIcon(Utils_.getIcon(active ? getActiveIconPath() : getNotActiveIconPath()));
+ }
+ public boolean isActive() {
+ return active;
+ }
+ public void setActive(boolean flag) {
+ active = flag;
+ Mark();
+ }
+ protected abstract boolean validate(D object);
+ @Override
+ public boolean Validate(D object) {
+ boolean valid = validate(object);
+ if (valid)
+ count++;
+ return valid & active;
+ }
+ @Override
+ public void DropMatchesCount() {
+ count = 0;
+ }
+ @Override
+ public void ShowMatchesCount() {
+ control.setText(description + " " + Utils_.RBrackets(count));
+ }
+}
diff --git a/src/Common/Visual/FilterFlagMenuItem.java b/src/Common/Visual/FilterFlagMenuItem.java
index 4c616827..2330c259 100644
--- a/src/Common/Visual/FilterFlagMenuItem.java
+++ b/src/Common/Visual/FilterFlagMenuItem.java
@@ -6,59 +6,8 @@ import Common.Visual.Controls.StableMenuItem;
import javax.swing.*;
//одиночный фильтр, пункт фильтрационного меню.
-public abstract class FilterFlagMenuItem implements DBbjectFilter_ {
- public JMenuItem menuItem; //пункт меню фильтра. ( возможно потом сделать и кнопку)
- //--
- String description;
- boolean active = true; //включен ли фильтр
- int count = 0;
- public FilterFlagMenuItem(DataSet dataSet, String description_in, boolean active_in) {
- menuItem = new StableMenuItem((description = description_in) + " (0)");
- active = active_in;
- menuItem.addActionListener(e -> {
- active = !active;
- Mark();
- dataSet.ShowUI();
- });
- Mark();
+public abstract class FilterFlagMenuItem extends FilterFlag {
+ public FilterFlagMenuItem(DataSet dataSet_in, String description_in, boolean active_in) {
+ super(dataSet_in, new StableMenuItem(description_in), active_in);
}
- public FilterFlagMenuItem(DataSet dataSet, String description_in) {
- this(dataSet, description_in, true);
- }
- @Override
- public boolean Validate(D object) {
- boolean valid = validate(object);
- if (valid)
- count++;
- return valid & active;
- }
- //-----------------------
- static String getNotActiveIconPath() {
- return "/Common/icons/NotPick.png";
- }
- static String getActiveIconPath() {
- return "/Common/icons/Pick.png";
- }
- void Mark() {
- menuItem.setIcon(Utils_.getIcon(active ? getActiveIconPath() : getNotActiveIconPath()));
- }
- //-------
- protected abstract boolean validate(D object);
- //--
- @Override
- public void DropMatchesCount() {
- count = 0;
- }
- @Override
- public void ShowMatchesCount() {
- menuItem.setText(description + " " + Utils_.RBrackets(count));
- }
- public boolean isActive() {
- return active;
- }
- public void setActive(boolean flag) {
- active = flag;
- Mark();
- }
- //--
}
diff --git a/src/Common/Visual/MenuButtonFilterFlag.java b/src/Common/Visual/MenuButtonFilterFlag.java
new file mode 100644
index 00000000..56c37cf5
--- /dev/null
+++ b/src/Common/Visual/MenuButtonFilterFlag.java
@@ -0,0 +1,9 @@
+package Common.Visual;
+import Common.Database.Objects.DBObject;
+public class MenuButtonFilterFlag implements DBObjectFilter_ {
+ boolean active = true; //включен ли фильтр
+ @Override
+ public boolean Validate(D dbObject) {
+ return false;
+ }
+}
diff --git a/src/Common/Visual/Tables/HeaderTextFilter.java b/src/Common/Visual/Tables/HeaderTextFilter.java
index d505a710..f7c52765 100644
--- a/src/Common/Visual/Tables/HeaderTextFilter.java
+++ b/src/Common/Visual/Tables/HeaderTextFilter.java
@@ -3,7 +3,7 @@ import Common.CommonConstants;
import Common.Database.Objects.DBObject;
import Common.Database.Tables.DataSet;
import Common.Utils.Utils_;
-import Common.Visual.DBbjectFilter_;
+import Common.Visual.DBObjectFilter_;
import Common.Visual.TextField.StyledTextField;
import javax.swing.*;
@@ -13,7 +13,7 @@ import javax.swing.event.DocumentListener;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-public class HeaderTextFilter implements DBbjectFilter_ {
+public class HeaderTextFilter implements DBObjectFilter_ {
DataSet dataSet = null; //таблица к интерфейсу которой относится фильтр.
int columnIndex = CommonConstants.Nan; //номер столбца к которому привязан фильтр.
JTextField textField = null;
diff --git a/src/_VisualDVM/TestingSystem/Common/Group/UI/GroupsForm.java b/src/_VisualDVM/TestingSystem/Common/Group/UI/GroupsForm.java
index 58939935..95708983 100644
--- a/src/_VisualDVM/TestingSystem/Common/Group/UI/GroupsForm.java
+++ b/src/_VisualDVM/TestingSystem/Common/Group/UI/GroupsForm.java
@@ -49,8 +49,7 @@ public class GroupsForm extends DataSetControlForm {
@Override
public boolean isObjectVisible(Group object) {
return super.isObjectVisible(object) &&
- (!filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address)) &&
- Global.testingServer.db.groups.getUI().ApplyFilters(object);
+ (!filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address));
}
@Override
public DataMenuBar createMenuBar() {
@@ -85,7 +84,7 @@ public class GroupsForm extends DataSetControlForm {
@Override
public void fill() {
for (TestType type : TestType.values())
- field_filters.add(new FilterFlagMenuItem(dataSet, type.getDescription()) {
+ field_filters.add(new FilterFlagMenuItem(dataSet, type.getDescription(), true) {
@Override
protected boolean validate(Group object) {
return object.type.equals(type);
@@ -97,7 +96,7 @@ public class GroupsForm extends DataSetControlForm {
@Override
public void fill() {
for (LanguageName languageName : LanguageName.values()) {
- field_filters.add(new FilterFlagMenuItem(dataSet, languageName.getDescription()) {
+ field_filters.add(new FilterFlagMenuItem(dataSet, languageName.getDescription(), true) {
@Override
protected boolean validate(Group object) {
return object.language.equals(languageName);
diff --git a/src/_VisualDVM/TestingSystem/DVM/DVMTasks/UI/DVMRunTasksForm.java b/src/_VisualDVM/TestingSystem/DVM/DVMTasks/UI/DVMRunTasksForm.java
index a92a65e5..2f47ce8e 100644
--- a/src/_VisualDVM/TestingSystem/DVM/DVMTasks/UI/DVMRunTasksForm.java
+++ b/src/_VisualDVM/TestingSystem/DVM/DVMTasks/UI/DVMRunTasksForm.java
@@ -86,7 +86,7 @@ public class DVMRunTasksForm extends DataSetControlForm {
public void fill() {
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
- field_filters.add(new FilterFlagMenuItem(dataSet, state.getDescription()) {
+ field_filters.add(new FilterFlagMenuItem(dataSet, state.getDescription(), true) {
@Override
protected boolean validate(DVMRunTask object) {
return object.compilation_state.equals(state);
@@ -101,7 +101,7 @@ public class DVMRunTasksForm extends DataSetControlForm {
public void fill() {
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
- field_filters.add(new FilterFlagMenuItem(dataSet, state.getDescription()) {
+ field_filters.add(new FilterFlagMenuItem(dataSet, state.getDescription(), true) {
@Override
protected boolean validate(DVMRunTask object) {
return object.state.equals(state);
@@ -121,8 +121,4 @@ public class DVMRunTasksForm extends DataSetControlForm {
}
};
}
- @Override
- public boolean isObjectVisible(DVMRunTask object) {
- return super.isObjectVisible(object) && Global.testingServer.db.dvmRunTasks.getUI().ApplyFilters(object);
- }
}