From 20044315fb4bf19db9090968f894ba7f4a89f79e Mon Sep 17 00:00:00 2001 From: 02090095 Date: Mon, 21 Oct 2024 15:12:41 +0300 Subject: [PATCH] no message --- .idea/workspace.xml | 8 +-- ...bjectFilter_.java => DBObjectFilter_.java} | 2 +- src/Common/Visual/DataSetControlForm.java | 14 ++--- src/Common/Visual/DataSetFiltersMenu.java | 4 +- src/Common/Visual/FilterFlag.java | 59 +++++++++++++++++++ src/Common/Visual/FilterFlagMenuItem.java | 57 +----------------- src/Common/Visual/MenuButtonFilterFlag.java | 9 +++ .../Visual/Tables/HeaderTextFilter.java | 4 +- .../Common/Group/UI/GroupsForm.java | 7 +-- .../DVM/DVMTasks/UI/DVMRunTasksForm.java | 8 +-- 10 files changed, 92 insertions(+), 80 deletions(-) rename src/Common/Visual/{DBbjectFilter_.java => DBObjectFilter_.java} (77%) create mode 100644 src/Common/Visual/FilterFlag.java create mode 100644 src/Common/Visual/MenuButtonFilterFlag.java 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 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 dataSet = null; ///источник данных + protected String getNotActiveIconPath() { + return "/Common/icons/NotPick.png"; + } + protected String getActiveIconPath() { + return "/Common/icons/Pick.png"; + } + public FilterFlag(DataSet 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); - } }