рефакторинг фильтра по заголовку столбца. начало.

This commit is contained in:
2024-10-20 12:09:59 +03:00
parent 96df1c3a18
commit dc53ecd6c8
7 changed files with 80 additions and 49 deletions

View File

@@ -31,8 +31,11 @@ public class DataSetControlForm extends ControlForm<DataTable> {
protected boolean events_on = true;
protected String colNamesAndSizes = "";
protected Vector<ColumnInfo> columns = new Vector<>(); //информация о столбцах и их оформлении
public ColumnInfo getColumnInfo(int i) {
return columns.get(i);
}
protected Vector<DataSetFiltersMenu> filtersMenus = new Vector<>();
public LinkedHashMap<Integer, HeaderTextFilter> headersTextFilters = new LinkedHashMap<>(); //текстовые фильтры столбцов
protected LinkedHashMap<Integer, HeaderTextFilter> headersTextFilters = new LinkedHashMap<>(); //текстовые фильтры столбцов
//фильтры и подсчеты. todo слить с баром (?)
MatchesCounter f_ui = null;
//--
@@ -42,7 +45,7 @@ public class DataSetControlForm extends ControlForm<DataTable> {
public DataSetControlForm(DataSet dataSource_in, JPanel mountPanel_in) {
super(DataTable.class, mountPanel_in);
dataSource = dataSource_in;
//--
createFilters();
if (hasMenuBar()) {
try {
if (!MainModule_.instance.getUI().menuBars.containsKey(dataSource.getClass())) {
@@ -57,7 +60,6 @@ public class DataSetControlForm extends ControlForm<DataTable> {
//--
f_ui = (count -> bar.countLabel.setText(String.valueOf(count)));
//--
createFilters();
if (!filtersMenus.isEmpty()) {
for (DataSetFiltersMenu filter : filtersMenus)
bar.addMenus(filter.getMenu());
@@ -284,6 +286,9 @@ public class DataSetControlForm extends ControlForm<DataTable> {
Utils_.MainLog.PrintException(e);
}
}
for (HeaderTextFilter filter : headersTextFilters.values()) {
filter.Mount(getControl());
}
}
protected DataMenuBar createMenuBar() {
return new DataMenuBar(dataSource.getPluralDescription());
@@ -301,6 +306,7 @@ public class DataSetControlForm extends ControlForm<DataTable> {
//могут быть и другие фильтры ( например свои/активные). перенести их сюда и обобщить
return applyFiltersMenus(object);
}
//todo упразднить.
// применить значение фильтра к фильру объекта напирмер Message.filterValue = text;
public void changeHeaderFilterValue(int columnIndex, String text) {
}
@@ -386,13 +392,21 @@ public class DataSetControlForm extends ControlForm<DataTable> {
savedSelectedKeys = dataSource.getSelectedKeys();
}
public void RestoreLastCurrent() {
for (Object key: savedSelectedKeys){
for (Object key : savedSelectedKeys) {
if (dataSource.containsKey(key))
dataSource.get(key).Select(true);
}
if ((savedCurrentKey!=null)&&(dataSource.containsKey(savedCurrentKey))){
if ((savedCurrentKey != null) && (dataSource.containsKey(savedCurrentKey))) {
SetCurrentByPK(savedCurrentKey);
}
}
/*
List<RowSorter.SortKey> sortKeys = new ArrayList<>();
for (int i = 0; i < 6; ++i)
sorter.setSortable(i, false);
sortKeys.add(new RowSorter.SortKey(6, SortOrder.DESCENDING));
sortKeys.add(new RowSorter.SortKey(7, SortOrder.DESCENDING));
// sorter.setSortKeys(sortKeys);
// sorter.sort();
*/
}