v++
рефактиринг фильтров завершен.
This commit is contained in:
4
.idea/workspace.xml
generated
4
.idea/workspace.xml
generated
@@ -7,9 +7,11 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/Database/DataSetFilter.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/DataSetFilter.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsDBTable.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsMenuBar.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTasksBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTasksBar.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
package Common.Database;
|
||||
import Common.UI.Menus.VisualiserMenuItem;
|
||||
import Common.UI.Menus_2023.StableMenuItem;
|
||||
import Common.UI.Menus_2023.VisualiserMenu;
|
||||
|
||||
@@ -14,14 +13,14 @@ public abstract class DataSetFilter<D extends DBObject> {
|
||||
//JMenuItem bSelectAll;
|
||||
//JMenuItem bUnSelectAll;
|
||||
//--
|
||||
protected Vector<DBObjectFilter<D>> filters;
|
||||
protected Vector<DBObjectFilter<D>> field_filters;
|
||||
public DataSetFilter(String name, DataSet dataSet_in) {
|
||||
dataSet = dataSet_in;
|
||||
menu = new VisualiserMenu(name, "/icons/Filter.png", true);
|
||||
filters = new Vector<>();
|
||||
field_filters = new Vector<>();
|
||||
fill();
|
||||
//-
|
||||
for (DBObjectFilter<D> filter : filters)
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
menu.add(filter.menuItem);
|
||||
menu.addSeparator();
|
||||
menu.add(new StableMenuItem("Выбрать всё", "/icons/SelectAll.png") {
|
||||
@@ -48,20 +47,20 @@ public abstract class DataSetFilter<D extends DBObject> {
|
||||
});
|
||||
}
|
||||
void selectAll(boolean flag) {
|
||||
for (DBObjectFilter filter : filters)
|
||||
for (DBObjectFilter filter : field_filters)
|
||||
filter.setActive(flag);
|
||||
}
|
||||
public abstract void fill();
|
||||
public void Drop() {
|
||||
for (DBObjectFilter<D> filter : filters)
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
filter.Drop();
|
||||
}
|
||||
public void Refresh() {
|
||||
for (DBObjectFilter<D> filter : filters)
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
filter.Refresh();
|
||||
}
|
||||
public boolean isActive() {
|
||||
for (DBObjectFilter<D> filter : filters) {
|
||||
for (DBObjectFilter<D> filter : field_filters) {
|
||||
if (filter.isActive())
|
||||
return true;
|
||||
}
|
||||
@@ -70,12 +69,12 @@ public abstract class DataSetFilter<D extends DBObject> {
|
||||
public boolean Validate(D object) {
|
||||
if (!isActive()) {
|
||||
//считаем без учета результатов
|
||||
for (DBObjectFilter<D> filter : filters)
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
filter.Validate(object);
|
||||
return true;
|
||||
}
|
||||
boolean res = false;
|
||||
for (DBObjectFilter<D> filter : filters)
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
if (filter.Validate(object))
|
||||
res |= true;
|
||||
return res;
|
||||
|
||||
@@ -62,7 +62,7 @@ public class Visualiser extends Component {
|
||||
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
|
||||
@Override
|
||||
public void GetVersionInfo() {
|
||||
version = 1058;
|
||||
version = 1059;
|
||||
String pattern = "MMM dd yyyy HH:mm:ss";
|
||||
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
||||
date_text = df.format(getClassBuildTime());
|
||||
|
||||
@@ -2,7 +2,6 @@ package TestingSystem.Common.Group;
|
||||
import Common.Current;
|
||||
import Common.Database.*;
|
||||
import Common.UI.DataSetControlForm;
|
||||
import Common.UI.Menus_2023.DataMenuBar;
|
||||
import Common.UI.UI;
|
||||
import Common.UI.Windows.Dialog.DBObjectDialog;
|
||||
import ProjectData.LanguageName;
|
||||
@@ -10,9 +9,7 @@ import TestingSystem.Common.Group.UI.GroupFields;
|
||||
import TestingSystem.Common.Test.Test;
|
||||
import TestingSystem.Common.Test.TestType;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Vector;
|
||||
//-
|
||||
public class GroupsDBTable extends iDBTable<Group> {
|
||||
public static boolean filterMyOnly = false;
|
||||
@@ -26,7 +23,7 @@ public class GroupsDBTable extends iDBTable<Group> {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (TestType type : TestType.values())
|
||||
filters.add(new DBObjectFilter<Group>(dataSet, type.getDescription()) {
|
||||
field_filters.add(new DBObjectFilter<Group>(dataSet, type.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(Group object) {
|
||||
return object.type.equals(type);
|
||||
@@ -38,7 +35,7 @@ public class GroupsDBTable extends iDBTable<Group> {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (LanguageName languageName : LanguageName.values()) {
|
||||
filters.add(new DBObjectFilter<Group>(dataSet, languageName.getDescription()) {
|
||||
field_filters.add(new DBObjectFilter<Group>(dataSet, languageName.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(Group object) {
|
||||
return object.language.equals(languageName);
|
||||
|
||||
@@ -35,18 +35,4 @@ public class GroupsMenuBar extends DataMenuBar {
|
||||
}
|
||||
});
|
||||
}
|
||||
/*
|
||||
public void addFilters(JMenu typesFilterMenu, JMenu languagesFilterMenu) {
|
||||
filters = addMenus(typesFilterMenu, languagesFilterMenu);
|
||||
}
|
||||
JMenuBar filters= null;
|
||||
public void DropFilters() {
|
||||
if (filters != null) {
|
||||
remove(filters);
|
||||
filters = null;
|
||||
}
|
||||
revalidate();
|
||||
repaint();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -5,18 +5,6 @@ import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
|
||||
import javax.swing.*;
|
||||
public class DVMRunTasksBar extends DataMenuBar {
|
||||
JMenuBar filters= null;
|
||||
public void DropFilters() {
|
||||
if (filters != null) {
|
||||
remove(filters);
|
||||
filters = null;
|
||||
}
|
||||
revalidate();
|
||||
repaint();
|
||||
}
|
||||
public void addFilters(JMenu cFilterMenu, JMenu rFilterMenu) {
|
||||
filters= addMenus(cFilterMenu, rFilterMenu);
|
||||
}
|
||||
public DVMRunTasksBar() {
|
||||
super("задачи", PassCode_2021.DownloadTaskTest);
|
||||
}
|
||||
|
||||
@@ -1,116 +1,52 @@
|
||||
package TestingSystem.DVM.DVMTasks;
|
||||
import Common.Current;
|
||||
import Common.Database.DataSet;
|
||||
import Common.Database.DBObjectFilter;
|
||||
import Common.Database.DataSet;
|
||||
import Common.Database.DataSetFilter;
|
||||
import Common.UI.DataSetControlForm;
|
||||
import Common.UI.Menus_2023.VisualiserMenu;
|
||||
import Common.UI.UI;
|
||||
import GlobalData.Tasks.TaskState;
|
||||
import TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Vector;
|
||||
|
||||
import static Common.UI.Tables.TableRenderers.RendererProgress;
|
||||
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
|
||||
public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
|
||||
//todo обобщить бы наличие фильтров для всех таблиц.
|
||||
public Vector<DBObjectFilter<DVMRunTask>> compilationFilters;
|
||||
public Vector<DBObjectFilter<DVMRunTask>> runFilters;
|
||||
DVMPackage target;
|
||||
@Override
|
||||
protected void createFilters() {
|
||||
filters.add(new DataSetFilter<DVMRunTask>("Компиляция", this) {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (TaskState state : TaskState.values()) {
|
||||
if (state.isVisible()) {
|
||||
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(DVMRunTask object) {
|
||||
return object.compilation_state.equals(state);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
filters.add(new DataSetFilter<DVMRunTask>("Запуск", this) {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (TaskState state : TaskState.values()) {
|
||||
if (state.isVisible()) {
|
||||
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(DVMRunTask object) {
|
||||
return object.state.equals(state);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
public DVMRunTasksSet() {
|
||||
super(Integer.class, DVMRunTask.class);
|
||||
//todo обобщить бы наличие фильтров для всех таблиц.
|
||||
if (Current.hasUI()) {
|
||||
compilationFilters = new Vector<>();
|
||||
runFilters = new Vector<>();
|
||||
//--
|
||||
for (TaskState state : TaskState.values()) {
|
||||
if (state.isVisible()) {
|
||||
compilationFilters.add(new DBObjectFilter<DVMRunTask>(this, state.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(DVMRunTask object) {
|
||||
return object.compilation_state.equals(state);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
//--
|
||||
for (TaskState state : TaskState.values()) {
|
||||
if (state.isVisible()) {
|
||||
runFilters.add(new DBObjectFilter<DVMRunTask>(this, state.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(DVMRunTask object) {
|
||||
return object.state.equals(state);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void ResetFiltersCount() {
|
||||
for (DBObjectFilter<DVMRunTask> filter : compilationFilters)
|
||||
filter.Drop();
|
||||
for (DBObjectFilter<DVMRunTask> filter : runFilters)
|
||||
filter.Drop();
|
||||
}
|
||||
public void ShowFiltersCount() {
|
||||
for (DBObjectFilter<DVMRunTask> filter : compilationFilters) {
|
||||
filter.Refresh();
|
||||
}
|
||||
for (DBObjectFilter<DVMRunTask> filter : runFilters) {
|
||||
filter.Refresh();
|
||||
}
|
||||
}
|
||||
public boolean applyFilters(DVMRunTask object) {
|
||||
boolean compilation = false;
|
||||
//возвращать сразу нельзя. иначе количество не посчитает.
|
||||
for (DBObjectFilter filter : compilationFilters) {
|
||||
if (filter.Validate(object)) {
|
||||
compilation |= true;
|
||||
}
|
||||
}
|
||||
boolean run = false;
|
||||
for (DBObjectFilter filter : runFilters) {
|
||||
if (filter.Validate(object)) {
|
||||
run |= true;
|
||||
}
|
||||
}
|
||||
return compilation && run;
|
||||
}
|
||||
@Override
|
||||
public void mountUI(JPanel content_in) {
|
||||
super.mountUI(content_in);
|
||||
//-
|
||||
DVMRunTasksBar menuBar = (DVMRunTasksBar) UI.menuBars.get(getClass());
|
||||
menuBar.DropFilters();
|
||||
//----
|
||||
menuBar.addFilters(
|
||||
new VisualiserMenu("Компиляция", "/icons/Filter.png", true) {
|
||||
{
|
||||
for (DBObjectFilter filter : compilationFilters)
|
||||
add(filter.menuItem);
|
||||
}
|
||||
},
|
||||
new VisualiserMenu("Запуск", "/icons/Filter.png", true) {
|
||||
{
|
||||
for (DBObjectFilter filter : runFilters)
|
||||
add(filter.menuItem);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void ShowUI() {
|
||||
ResetFiltersCount();
|
||||
super.ShowUI();
|
||||
ShowFiltersCount();
|
||||
}
|
||||
@Override
|
||||
public void ShowUI(Object key) {
|
||||
ResetFiltersCount();
|
||||
super.ShowUI(key);
|
||||
ShowFiltersCount();
|
||||
}
|
||||
@Override
|
||||
public String getSingleDescription() {
|
||||
|
||||
Reference in New Issue
Block a user