no message

This commit is contained in:
2024-10-21 12:32:20 +03:00
parent 4999e1587f
commit 6af0df7835
13 changed files with 71 additions and 68 deletions

View File

@@ -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();
}

View File

@@ -0,0 +1,6 @@
package Common.Visual;
import Common.Database.Objects.DBObject;
public interface DBObjectFilterInterface<D extends DBObject> {
boolean Validate(D dbObject);
//-------
}

View File

@@ -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();

View File

@@ -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;

View File

@@ -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)