no message
This commit is contained in:
@@ -27,7 +27,7 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
|
||||
d = d_in;
|
||||
Name = d.getSimpleName();
|
||||
}
|
||||
public DataSetControlForm getUI() {
|
||||
public DataSetControlForm<D> getUI() {
|
||||
return ui;
|
||||
}
|
||||
public void mountUI(JPanel mountPanel_in) {
|
||||
@@ -114,9 +114,6 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
|
||||
public D get(Object key) {
|
||||
return Data.get(key);
|
||||
}
|
||||
//public Object getFieldAt(D object, int columnIndex) {
|
||||
// return null;
|
||||
// }
|
||||
public void clear() {
|
||||
Data.clear();
|
||||
}
|
||||
|
||||
6
src/Common/Visual/DBObjectFilterInterface.java
Normal file
6
src/Common/Visual/DBObjectFilterInterface.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package Common.Visual;
|
||||
import Common.Database.Objects.DBObject;
|
||||
public interface DBObjectFilterInterface<D extends DBObject> {
|
||||
boolean Validate(D dbObject);
|
||||
//-------
|
||||
}
|
||||
@@ -34,6 +34,8 @@ public class DataSetControlForm<D extends DBObject> extends ControlForm<DataTabl
|
||||
protected Vector<ColumnInfo> columns = new Vector<>(); //информация о столбцах и их оформлении
|
||||
protected Vector<DataSetFiltersMenu> filtersMenus = new Vector<>(); //выпадающие меню фильтрации
|
||||
protected LinkedHashMap<Integer, HeaderTextFilter> headersTextFilters = new LinkedHashMap<>(); //текстовые фильтры столбцов
|
||||
|
||||
|
||||
//фильтры и подсчеты. todo слить с баром (?)
|
||||
MatchesCounter f_ui = null;
|
||||
//--
|
||||
@@ -60,7 +62,7 @@ public class DataSetControlForm<D extends DBObject> extends ControlForm<DataTabl
|
||||
//--
|
||||
if (!filtersMenus.isEmpty()) {
|
||||
for (DataSetFiltersMenu filter : filtersMenus)
|
||||
bar.addMenus(filter.getMenu());
|
||||
bar.addMenus(filter);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
|
||||
@@ -7,21 +7,20 @@ import Common.Visual.Menus.VisualiserMenu;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.Vector;
|
||||
public abstract class DataSetFiltersMenu<D extends DBObject> {
|
||||
public abstract class DataSetFiltersMenu<D extends DBObject> extends VisualiserMenu implements DBObjectFilterInterface<D> {
|
||||
//--
|
||||
protected DataSet<?, D> dataSet;
|
||||
protected Vector<DBObjectFilter<D>> field_filters;
|
||||
VisualiserMenu menu = null;
|
||||
protected Vector<FilterFlagMenuItem<D>> field_filters;
|
||||
public DataSetFiltersMenu(String name, DataSet dataSet_in) {
|
||||
super(name, "/Common/icons/Filter.png", true);
|
||||
dataSet = dataSet_in;
|
||||
menu = new VisualiserMenu(name, "/Common/icons/Filter.png", true);
|
||||
field_filters = new Vector<>();
|
||||
fill();
|
||||
//-
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
menu.add(filter.menuItem);
|
||||
menu.addSeparator();
|
||||
menu.add(new StableMenuItem("Выбрать всё", "/Common/icons/SelectAll.png") {
|
||||
for (FilterFlagMenuItem<D> filter : field_filters)
|
||||
add(filter.menuItem);
|
||||
addSeparator();
|
||||
add(new StableMenuItem("Выбрать всё", "/Common/icons/SelectAll.png") {
|
||||
{
|
||||
addActionListener(new ActionListener() {
|
||||
@Override
|
||||
@@ -32,7 +31,7 @@ public abstract class DataSetFiltersMenu<D extends DBObject> {
|
||||
});
|
||||
}
|
||||
});
|
||||
menu.add(new StableMenuItem("Отменить всё", "/Common/icons/UnselectAll.png") {
|
||||
add(new StableMenuItem("Отменить всё", "/Common/icons/UnselectAll.png") {
|
||||
{
|
||||
addActionListener(new ActionListener() {
|
||||
@Override
|
||||
@@ -44,38 +43,36 @@ public abstract class DataSetFiltersMenu<D extends DBObject> {
|
||||
}
|
||||
});
|
||||
}
|
||||
public VisualiserMenu getMenu() {
|
||||
return menu;
|
||||
}
|
||||
void selectAll(boolean flag) {
|
||||
for (DBObjectFilter filter : field_filters)
|
||||
for (FilterFlagMenuItem filter : field_filters)
|
||||
filter.setActive(flag);
|
||||
}
|
||||
public abstract void fill();
|
||||
public void Drop() {
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
for (FilterFlagMenuItem<D> filter : field_filters)
|
||||
filter.Drop();
|
||||
}
|
||||
public void Refresh() {
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
for (FilterFlagMenuItem<D> filter : field_filters)
|
||||
filter.Refresh();
|
||||
}
|
||||
public boolean isActive() {
|
||||
for (DBObjectFilter<D> filter : field_filters) {
|
||||
for (FilterFlagMenuItem<D> filter : field_filters) {
|
||||
if (filter.isActive())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean Validate(D object) {
|
||||
if (!isActive()) {
|
||||
//считаем без учета результатов
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
for (FilterFlagMenuItem<D> filter : field_filters)
|
||||
filter.Validate(object);
|
||||
return true;
|
||||
}
|
||||
boolean res = false;
|
||||
for (DBObjectFilter<D> filter : field_filters)
|
||||
for (FilterFlagMenuItem<D> filter : field_filters)
|
||||
if (filter.Validate(object))
|
||||
res |= true;
|
||||
return res;
|
||||
|
||||
@@ -6,13 +6,13 @@ import Common.Visual.Controls.StableMenuItem;
|
||||
|
||||
import javax.swing.*;
|
||||
//одиночный фильтр, пункт фильтрационного меню.
|
||||
public abstract class DBObjectFilter<D extends DBObject> {
|
||||
public abstract class FilterFlagMenuItem<D extends DBObject> implements DBObjectFilterInterface<D>{
|
||||
public JMenuItem menuItem; //пункт меню фильтра. ( возможно потом сделать и кнопку)
|
||||
//--
|
||||
String description;
|
||||
boolean active = true; //включен ли фильтр
|
||||
int count = 0;
|
||||
public DBObjectFilter(DataSet dataSet, String description_in, boolean active_in) {
|
||||
public FilterFlagMenuItem(DataSet dataSet, String description_in, boolean active_in) {
|
||||
menuItem = new StableMenuItem((description = description_in) + " (0)");
|
||||
active = active_in;
|
||||
menuItem.addActionListener(e -> {
|
||||
@@ -22,7 +22,7 @@ public abstract class DBObjectFilter<D extends DBObject> {
|
||||
});
|
||||
Mark();
|
||||
}
|
||||
public DBObjectFilter(DataSet dataSet, String description_in) {
|
||||
public FilterFlagMenuItem(DataSet dataSet, String description_in) {
|
||||
this(dataSet, description_in, true);
|
||||
}
|
||||
//--
|
||||
@@ -36,6 +36,7 @@ public abstract class DBObjectFilter<D extends DBObject> {
|
||||
menuItem.setIcon(Utils_.getIcon(active ? getActiveIconPath() : getNotActiveIconPath()));
|
||||
}
|
||||
//-------
|
||||
@Override
|
||||
public boolean Validate(D object) {
|
||||
boolean valid = validate(object);
|
||||
if (valid)
|
||||
@@ -20,7 +20,6 @@ import javax.swing.*;
|
||||
import java.util.LinkedHashMap;
|
||||
//-
|
||||
public class GroupsDBTable extends iDBTable<Group> {
|
||||
public static boolean filterMyOnly = false;
|
||||
public GroupsDBTable() {
|
||||
super(Group.class);
|
||||
}
|
||||
|
||||
@@ -2,20 +2,19 @@ package _VisualDVM.TestingSystem.Common.Group.UI;
|
||||
import Common.Database.Tables.DataSet;
|
||||
import Common.Utils.Utils_;
|
||||
import Common.Visual.Controls.MenuBarButton;
|
||||
import Common.Visual.DBObjectFilter;
|
||||
import Common.Visual.FilterFlagMenuItem;
|
||||
import Common.Visual.DataSetControlForm;
|
||||
import Common.Visual.DataSetFiltersMenu;
|
||||
import Common.Visual.Menus.DataMenuBar;
|
||||
import Common.Visual.Tables.HeaderTextFilter;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.ProjectData.LanguageName;
|
||||
import _VisualDVM.TestingSystem.Common.Group.Group;
|
||||
import _VisualDVM.TestingSystem.Common.Group.GroupsDBTable;
|
||||
import _VisualDVM.TestingSystem.Common.Test.TestType;
|
||||
|
||||
import javax.swing.*;
|
||||
public class GroupsForm extends DataSetControlForm<Group> {
|
||||
public static boolean filterMyOnly = false;
|
||||
public GroupsForm(DataSet<?, Group> dataSource_in, JPanel mountPanel_in) {
|
||||
super(dataSource_in, mountPanel_in);
|
||||
}
|
||||
@@ -50,7 +49,7 @@ public class GroupsForm extends DataSetControlForm<Group> {
|
||||
@Override
|
||||
public boolean isObjectVisible(Group object) {
|
||||
return super.isObjectVisible(object) &&
|
||||
(!GroupsDBTable.filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address)) &&
|
||||
(!filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address)) &&
|
||||
Global.testingServer.db.groups.getUI().ApplyFilters(object);
|
||||
}
|
||||
@Override
|
||||
@@ -68,13 +67,13 @@ public class GroupsForm extends DataSetControlForm<Group> {
|
||||
setToolTipText("Отображать только группы тестов авторства пользователя");
|
||||
Mark();
|
||||
addActionListener(e -> {
|
||||
GroupsDBTable.filterMyOnly = !GroupsDBTable.filterMyOnly;
|
||||
filterMyOnly = !filterMyOnly;
|
||||
Mark();
|
||||
Global.testingServer.db.groups.ShowUI();
|
||||
});
|
||||
}
|
||||
public void Mark() {
|
||||
setIcon(Utils_.getIcon(GroupsDBTable.filterMyOnly ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
setIcon(Utils_.getIcon(filterMyOnly ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -86,7 +85,7 @@ public class GroupsForm extends DataSetControlForm<Group> {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (TestType type : TestType.values())
|
||||
field_filters.add(new Common.Visual.DBObjectFilter<Group>(dataSet, type.getDescription()) {
|
||||
field_filters.add(new FilterFlagMenuItem<Group>(dataSet, type.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(Group object) {
|
||||
return object.type.equals(type);
|
||||
@@ -98,7 +97,7 @@ public class GroupsForm extends DataSetControlForm<Group> {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (LanguageName languageName : LanguageName.values()) {
|
||||
field_filters.add(new DBObjectFilter<Group>(dataSet, languageName.getDescription()) {
|
||||
field_filters.add(new FilterFlagMenuItem<Group>(dataSet, languageName.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(Group object) {
|
||||
return object.language.equals(languageName);
|
||||
|
||||
@@ -8,8 +8,6 @@ import _VisualDVM.TestingSystem.DVM.DVMPackage.UI.DVMPackagesForm;
|
||||
|
||||
import javax.swing.*;
|
||||
public class DVMPackageDBTable extends iDBTable<DVMPackage> {
|
||||
public static boolean filterMyOnly = false;
|
||||
public static boolean filterActive = false;
|
||||
public DVMPackageDBTable() {
|
||||
super(DVMPackage.class);
|
||||
}
|
||||
|
||||
@@ -13,12 +13,13 @@ import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.ServerObjectsCache.PackageCache;
|
||||
import _VisualDVM.ServerObjectsCache.VisualCaches;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackageDBTable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
public class DVMPackagesForm extends DataSetControlForm<DVMPackage> {
|
||||
public static boolean filterMyOnly = false;
|
||||
public static boolean filterActive = false;
|
||||
public DVMPackagesForm(DataSet<?, DVMPackage> dataSource_in, JPanel mountPanel_in) {
|
||||
super(dataSource_in, mountPanel_in);
|
||||
}
|
||||
@@ -116,13 +117,13 @@ public class DVMPackagesForm extends DataSetControlForm<DVMPackage> {
|
||||
setToolTipText("Отображать только пакеты тестов авторства пользователя");
|
||||
Mark();
|
||||
addActionListener(e -> {
|
||||
DVMPackageDBTable.filterMyOnly = !DVMPackageDBTable.filterMyOnly;
|
||||
filterMyOnly = !filterMyOnly;
|
||||
Mark();
|
||||
Global.testingServer.db.dvmPackages.ShowUI();
|
||||
});
|
||||
}
|
||||
public void Mark() {
|
||||
setIcon(Utils_.getIcon(DVMPackageDBTable.filterMyOnly ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
setIcon(Utils_.getIcon(filterMyOnly ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
}
|
||||
});
|
||||
add(new MenuBarButton() {
|
||||
@@ -131,13 +132,13 @@ public class DVMPackagesForm extends DataSetControlForm<DVMPackage> {
|
||||
setToolTipText("Отображать только активные пакеты тестов");
|
||||
Mark();
|
||||
addActionListener(e -> {
|
||||
DVMPackageDBTable.filterActive = !DVMPackageDBTable.filterActive;
|
||||
filterActive = !filterActive;
|
||||
Mark();
|
||||
Global.testingServer.db.dvmPackages.ShowUI();
|
||||
});
|
||||
}
|
||||
public void Mark() {
|
||||
setIcon(Utils_.getIcon(DVMPackageDBTable.filterActive ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
setIcon(Utils_.getIcon(filterActive ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -154,7 +155,7 @@ public class DVMPackagesForm extends DataSetControlForm<DVMPackage> {
|
||||
}
|
||||
@Override
|
||||
public boolean isObjectVisible(DVMPackage object) {
|
||||
return super.isObjectVisible(object) && (!DVMPackageDBTable.filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address)) &&
|
||||
(!DVMPackageDBTable.filterActive || object.state.isActive());
|
||||
return super.isObjectVisible(object) && (!filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address)) &&
|
||||
(!filterActive || object.state.isActive());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package _VisualDVM.TestingSystem.DVM.DVMTasks.UI;
|
||||
import Common.Database.Tables.DataSet;
|
||||
import Common.Visual.DBObjectFilter;
|
||||
import Common.Visual.FilterFlagMenuItem;
|
||||
import Common.Visual.DataSetControlForm;
|
||||
import Common.Visual.DataSetFiltersMenu;
|
||||
import Common.Visual.Menus.DataMenuBar;
|
||||
@@ -86,7 +86,7 @@ public class DVMRunTasksForm extends DataSetControlForm<DVMRunTask> {
|
||||
public void fill() {
|
||||
for (TaskState state : TaskState.values()) {
|
||||
if (state.isVisible()) {
|
||||
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
|
||||
field_filters.add(new FilterFlagMenuItem<DVMRunTask>(dataSet, state.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(DVMRunTask object) {
|
||||
return object.compilation_state.equals(state);
|
||||
@@ -101,7 +101,7 @@ public class DVMRunTasksForm extends DataSetControlForm<DVMRunTask> {
|
||||
public void fill() {
|
||||
for (TaskState state : TaskState.values()) {
|
||||
if (state.isVisible()) {
|
||||
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
|
||||
field_filters.add(new FilterFlagMenuItem<DVMRunTask>(dataSet, state.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(DVMRunTask object) {
|
||||
return object.state.equals(state);
|
||||
|
||||
@@ -8,8 +8,6 @@ import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.UI.SapforPackagesForm;
|
||||
|
||||
import javax.swing.*;
|
||||
public class SapforPackageDBTable extends iDBTable<SapforPackage> {
|
||||
public static boolean filterMyOnly = false;
|
||||
public static boolean filterActive = false;
|
||||
public SapforPackageDBTable() {
|
||||
super(SapforPackage.class);
|
||||
}
|
||||
|
||||
@@ -13,12 +13,13 @@ import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.ServerObjectsCache.PackageCache;
|
||||
import _VisualDVM.ServerObjectsCache.VisualCaches;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackage;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
public class SapforPackagesForm extends DataSetControlForm<SapforPackage> {
|
||||
public static boolean filterMyOnly = false;
|
||||
public static boolean filterActive = false;
|
||||
public SapforPackagesForm(DataSet<?, SapforPackage> dataSource_in, JPanel mountPanel_in) {
|
||||
super(dataSource_in, mountPanel_in);
|
||||
}
|
||||
@@ -95,13 +96,13 @@ public class SapforPackagesForm extends DataSetControlForm<SapforPackage> {
|
||||
setToolTipText("Отображать только пакеты тестов авторства пользователя");
|
||||
Mark();
|
||||
addActionListener(e -> {
|
||||
SapforPackageDBTable.filterMyOnly = !SapforPackageDBTable.filterMyOnly;
|
||||
filterMyOnly = !filterMyOnly;
|
||||
Mark();
|
||||
Global.testingServer.db.sapforPackages.ShowUI();
|
||||
});
|
||||
}
|
||||
public void Mark() {
|
||||
setIcon(Utils_.getIcon(SapforPackageDBTable.filterMyOnly ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
setIcon(Utils_.getIcon(filterMyOnly ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
}
|
||||
});
|
||||
add(new MenuBarButton() {
|
||||
@@ -110,13 +111,13 @@ public class SapforPackagesForm extends DataSetControlForm<SapforPackage> {
|
||||
setToolTipText("Отображать только активные пакеты тестов");
|
||||
Mark();
|
||||
addActionListener(e -> {
|
||||
SapforPackageDBTable.filterActive = !SapforPackageDBTable.filterActive;
|
||||
filterActive = !filterActive;
|
||||
Mark();
|
||||
Global.testingServer.db.sapforPackages.ShowUI();
|
||||
});
|
||||
}
|
||||
public void Mark() {
|
||||
setIcon(Utils_.getIcon(SapforPackageDBTable.filterActive ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
setIcon(Utils_.getIcon(filterActive ? "/Common/icons/Pick.png" : "/Common/icons/NotPick.png"));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -134,7 +135,7 @@ public class SapforPackagesForm extends DataSetControlForm<SapforPackage> {
|
||||
@Override
|
||||
public boolean isObjectVisible(SapforPackage object) {
|
||||
return super.isObjectVisible(object) &&
|
||||
(!SapforPackageDBTable.filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address)) &&
|
||||
(!SapforPackageDBTable.filterActive || object.state.isActive());
|
||||
(!filterMyOnly || Global.mainModule.getAccount().email.equals(object.sender_address)) &&
|
||||
(!filterActive || object.state.isActive());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user