приведение фильтров к объекту интерфейса таблицы
This commit is contained in:
@@ -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<K, D extends DBObject> extends DataSetAnchestor {
|
||||
//-
|
||||
protected DataSetControlForm ui = null;
|
||||
//--
|
||||
protected Vector<DataSetFilter<D>> filters = new Vector<>();
|
||||
//--
|
||||
public DataSet(Class<K> k_in, Class<D> d_in) {
|
||||
k = k_in;
|
||||
d = d_in;
|
||||
@@ -45,12 +42,6 @@ public class DataSet<K, D extends DBObject> 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<D> filter : filters)
|
||||
menuBar.addMenus(filter.menu);
|
||||
}
|
||||
}
|
||||
public void ClearUI() {
|
||||
if ((ui != null) && ui.isShown()) {
|
||||
@@ -192,33 +183,14 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
|
||||
}
|
||||
//--
|
||||
public void ShowUI() {
|
||||
for (DataSetFilter<D> filter : filters)
|
||||
filter.Drop();
|
||||
//--
|
||||
if (ui != null) {
|
||||
ui.Show();
|
||||
}
|
||||
//--
|
||||
for (DataSetFilter<D> filter : filters)
|
||||
filter.Refresh();
|
||||
}
|
||||
public void ShowUI(Object key) {
|
||||
for (DataSetFilter<D> filter : filters)
|
||||
filter.Drop();
|
||||
//--
|
||||
if (ui != null) {
|
||||
ui.Show(key);
|
||||
}
|
||||
//--
|
||||
for (DataSetFilter<D> filter : filters)
|
||||
filter.Refresh();
|
||||
}
|
||||
public boolean applyFilters(D object) {
|
||||
for (DataSetFilter<D> filter : filters) {
|
||||
if (!filter.Validate(object))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------------------------
|
||||
public Current_ CurrentName() {
|
||||
|
||||
@@ -33,7 +33,9 @@ public class DataSetControlForm extends ControlForm<DataTable> {
|
||||
protected boolean events_on = true;
|
||||
protected String colNamesAndSizes = "";
|
||||
protected Vector<ColumnInfo> columns = new Vector<>(); //информация о столбцах и их оформлении
|
||||
FilterInterface f_ui; // отображение количества объектов ( todo слить с баром ?)
|
||||
//фильтры и подсчеты. todo слить с баром (?)
|
||||
MatchesCounter f_ui = null;
|
||||
protected Vector<DataSetFiltersMenu> 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<DataTable> {
|
||||
//--
|
||||
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<DataTable> {
|
||||
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();
|
||||
|
||||
@@ -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<D extends DBObject> {
|
||||
public VisualiserMenu menu;
|
||||
public abstract class DataSetFiltersMenu<D extends DBObject> {
|
||||
VisualiserMenu menu= null;
|
||||
public VisualiserMenu getMenu(){return menu;}
|
||||
//--
|
||||
protected DataSet<?, D> dataSet;
|
||||
protected Vector<DBObjectFilter<D>> 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<>();
|
||||
@@ -1,5 +1,5 @@
|
||||
package Common.Visual;
|
||||
public interface FilterInterface {
|
||||
public interface MatchesCounter {
|
||||
void ShowMatchesCount(int count);
|
||||
default void ShowNoMatches() {
|
||||
ShowMatchesCount(0);
|
||||
@@ -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();
|
||||
|
||||
@@ -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<Group> {
|
||||
}
|
||||
//------------------------------------------------>>>
|
||||
@Override
|
||||
protected void createFilters() {
|
||||
filters.add(new Common.Visual.DataSetFilter<Group>("Тип", this) {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (TestType type : TestType.values())
|
||||
field_filters.add(new Common.Visual.DBObjectFilter<Group>(dataSet, type.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(Group object) {
|
||||
return object.type.equals(type);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
filters.add(new DataSetFilter<Group>("Язык", this) {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (LanguageName languageName : LanguageName.values()) {
|
||||
field_filters.add(new DBObjectFilter<Group>(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<Group> {
|
||||
}
|
||||
};
|
||||
}
|
||||
@Override
|
||||
protected void createFilters() {
|
||||
filters.add(new DataSetFiltersMenu<Group>("Тип", dataSource) {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (TestType type : TestType.values())
|
||||
field_filters.add(new Common.Visual.DBObjectFilter<Group>(dataSet, type.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(Group object) {
|
||||
return object.type.equals(type);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
filters.add(new DataSetFiltersMenu<Group>("Язык", dataSource) {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (LanguageName languageName : LanguageName.values()) {
|
||||
field_filters.add(new DBObjectFilter<Group>(dataSet, languageName.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(Group object) {
|
||||
return object.language.equals(languageName);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
@Override
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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<Integer, DVMRunTask> {
|
||||
super(Integer.class, DVMRunTask.class);
|
||||
}
|
||||
@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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public String getSingleDescription() {
|
||||
return "задача";
|
||||
}
|
||||
@@ -77,6 +44,39 @@ public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
|
||||
public DataMenuBar createMenuBar() {
|
||||
return new DataMenuBar(getPluralDescription(), PassCode.CompareDVMRunTasks, PassCode.DownloadTaskTest);
|
||||
}
|
||||
@Override
|
||||
protected void createFilters() {
|
||||
filters.add(new DataSetFiltersMenu<DVMRunTask>("Компиляция", dataSource) {
|
||||
@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 DataSetFiltersMenu<DVMRunTask>("Запуск", dataSource) {
|
||||
@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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user