no message

This commit is contained in:
2024-10-17 22:18:10 +03:00
parent 6b7ed74c60
commit b871d2673b
10 changed files with 32 additions and 67 deletions

View File

@@ -5,7 +5,6 @@ import Common.MainModule_;
import Common.Passes.PassCode_;
import Common.Utils.TextLog;
import Common.Visual.DataSetControlForm;
import Common.Visual.Tables.ColumnFilter;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import Common.Visual.Windows.Dialog.DialogFields;
@@ -24,8 +23,6 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
public Class<D> d; //класс объектов.
public LinkedHashMap<K, D> Data = new LinkedHashMap<>(); //наполнение
//-
public LinkedHashMap<Integer, ColumnFilter> columnsFilters = new LinkedHashMap<>(); //текстовые фильтры столбцов
//-
protected DataSetControlForm ui = null;
//--
public DataSet(Class<K> k_in, Class<D> d_in) {

View File

@@ -9,10 +9,7 @@ import Common.MainModule_;
import Common.Utils.Utils_;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Menus.TableMenu;
import Common.Visual.Tables.ColumnInfo;
import Common.Visual.Tables.DBObjectSelectionRenderer;
import Common.Visual.Tables.DBObjectSelector;
import Common.Visual.Tables.DataTable;
import Common.Visual.Tables.*;
import Common.Visual.Tables.Grid.GridAnchestor;
import javax.swing.*;
@@ -23,6 +20,7 @@ import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Vector;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -33,12 +31,10 @@ public class DataSetControlForm extends ControlForm<DataTable> {
protected boolean events_on = true;
protected String colNamesAndSizes = "";
protected Vector<ColumnInfo> columns = new Vector<>(); //информация о столбцах и их оформлении
protected String[] getUIColumnNames() {
return new String[]{};
}
protected Vector<DataSetFiltersMenu> filtersMenus = new Vector<>();
public LinkedHashMap<Integer, HeaderTextFilter> headersTextFilters = new LinkedHashMap<>(); //текстовые фильтры столбцов
//фильтры и подсчеты. 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;
@@ -58,8 +54,8 @@ public class DataSetControlForm extends ControlForm<DataTable> {
f_ui = (count -> bar.countLabel.setText(String.valueOf(count)));
//--
createFilters();
if (!filters.isEmpty()) {
for (DataSetFiltersMenu filter : filters)
if (!filtersMenus.isEmpty()) {
for (DataSetFiltersMenu filter : filtersMenus)
bar.addMenus(filter.getMenu());
}
} catch (Exception ex) {
@@ -67,6 +63,9 @@ public class DataSetControlForm extends ControlForm<DataTable> {
}
}
}
protected String[] getUIColumnNames() {
return new String[]{};
}
public void SaveColumns() {
if (MainModule_.instance.getDb() != null) {
try {
@@ -285,17 +284,18 @@ 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) {
protected void createFilters() {
}
protected boolean applyFiltersMenus(DBObject object) {
for (DataSetFiltersMenu filterMenu : filtersMenus) {
if (!filterMenu.Validate(object))
return false;
}
return true;
}
public boolean ApplyFilters(DBObject object) {
//могут быть и другие фильтры ( например свои/активные). перенести их сюда и обобщить
return applyFiltersMenus(object);
//могут быть и другие фильтры ( например свои/активные). перенести их сюда и обобщить
return applyFiltersMenus(object);
}
@Override
protected void redrawControl() {
@@ -303,10 +303,10 @@ public class DataSetControlForm extends ControlForm<DataTable> {
}
@Override
public void Show() {
for (DataSetFiltersMenu filterMenu : filters) filterMenu.Drop();
for (DataSetFiltersMenu filterMenu : filtersMenus) filterMenu.Drop();
super.Show();
if (f_ui != null) f_ui.ShowMatchesCount(getRowCount());
for (DataSetFiltersMenu filterMenu : filters) filterMenu.Refresh();
for (DataSetFiltersMenu filterMenu : filtersMenus) filterMenu.Refresh();
}
public void Show(Object pk) {
Show();

View File

@@ -8,11 +8,10 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
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;
VisualiserMenu menu = null;
public DataSetFiltersMenu(String name, DataSet dataSet_in) {
dataSet = dataSet_in;
menu = new VisualiserMenu(name, "/Common/icons/Filter.png", true);
@@ -45,6 +44,9 @@ public abstract class DataSetFiltersMenu<D extends DBObject> {
}
});
}
public VisualiserMenu getMenu() {
return menu;
}
void selectAll(boolean flag) {
for (DBObjectFilter filter : field_filters)
filter.setActive(flag);

View File

@@ -10,10 +10,10 @@ import javax.swing.event.DocumentListener;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class ColumnFilter {
public class HeaderTextFilter {
public JTextField textField;
public JPopupMenu popup;
public ColumnFilter(DataSet dataSet, int columnIndex) {
public HeaderTextFilter(DataSet dataSet, int columnIndex) {
textField = new StyledTextField() {
{
setBorder(null);
@@ -61,7 +61,7 @@ public class ColumnFilter {
public void mouseClicked(MouseEvent event) {
if (event.getClickCount() == 1) {
int columnIndex = dataSet.getUI().getControl().getTableHeader().columnAtPoint(event.getPoint());
if (dataSet.columnsFilters.containsKey(columnIndex)) {
if (dataSet.getUI().headersTextFilters.containsKey(columnIndex)) {
Rectangle columnRectangle = dataSet.getUI().getControl().getTableHeader().getHeaderRect(columnIndex);
Dimension d = new Dimension(columnRectangle.width - 72, columnRectangle.height - 1);
popup.setPreferredSize(d);