Промежуточный. Рефактиринг фильтров

This commit is contained in:
2023-12-26 19:12:30 +03:00
parent 05ec4871a1
commit ce31d5dae2
7 changed files with 143 additions and 138 deletions

View File

@@ -24,12 +24,15 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
public Class<D> d; //класс объектов.
public LinkedHashMap<K, D> Data = new LinkedHashMap<>(); //наполнение
//-
//<editor-fold desc="UI таблица">
public DataSetControlForm ui_;
protected FilterWindow f_ui;
//</editor-fold>
protected FilterWindow f_ui; // отображение количества объектов
//-
public LinkedHashMap<Integer, ColumnFilter> columnsFilters = new LinkedHashMap<>();
public LinkedHashMap<Integer, ColumnFilter> columnsFilters = new LinkedHashMap<>(); //текстовые фильтры столбцов
//--
protected Vector<DataSetFilter<D>> filters = new Vector<>();
protected void createFilters() {
}
//--
public DataSet(Class<K> k_in, Class<D> d_in) {
k = k_in;
d = d_in;
@@ -49,6 +52,13 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
bar.createSelectionButtons(this);
}
content_in.add(ui_.getDataPanel(), BorderLayout.CENTER);
//----
createFilters();
if (!filters.isEmpty()) {
DataMenuBar menuBar = UI.menuBars.get(getClass());
for (DataSetFilter<D> filter : filters)
menuBar.addMenus(filter.menu);
}
}
public DataSetControlForm getUi() {
return ui_;
@@ -56,20 +66,6 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
public void setFilterUI(FilterWindow ui_in) {
f_ui = ui_in;
}
public void ShowUI() {
if (ui_ != null) {
ui_.Show();
if (f_ui != null)
f_ui.ShowMatchesCount(getRowCountUI());
}
}
public void ShowUI(Object key) {
if (ui_ != null) {
ui_.Show(key);
if (f_ui != null)
f_ui.ShowMatchesCount(getRowCountUI());
}
}
public void ClearUI() {
if ((ui_ != null) && ui_.isShown()) {
ui_.ClearSelection();
@@ -250,4 +246,39 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
public Object getColumnFilterValue(int columnIndex) {
return "";
}
//--
public void ShowUI() {
for (DataSetFilter<D> filter : filters)
filter.Drop();
//--
if (ui_ != null) {
ui_.Show();
if (f_ui != null)
f_ui.ShowMatchesCount(getRowCountUI());
}
//--
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);
if (f_ui != null)
f_ui.ShowMatchesCount(getRowCountUI());
}
//--
for (DataSetFilter<D> filter : filters)
filter.Refresh();
}
public boolean applyFilters(D object) {
//todo добавить ситуацию когда все фильтры отменены
for (DataSetFilter<D> filter : filters) {
if (!filter.Validate(object))
return false;
}
return true;
}
}