приведение фильтров к объекту интерфейса таблицы
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user