Loading src/main/java/cz/muni/fi/pv168/project/model/CategoryStatisticsTableModel.java +25 −16 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ import javax.swing.event.ListDataListener; import javax.swing.table.AbstractTableModel; import java.time.LocalDate; public class CategoryStatisticsTableModel extends AbstractTableModel implements ListDataListener { public class CategoryStatisticsTableModel extends AbstractTableModel { private final ListModel<Category> model; private LocalDate fromDate; private LocalDate toDate; Loading @@ -21,7 +21,7 @@ public class CategoryStatisticsTableModel extends AbstractTableModel implements toDate = LocalDate.now(); this.model = model; model.addListDataListener(this); model.addListDataListener(new ListModelListener(this)); } @Override Loading Loading @@ -64,23 +64,32 @@ public class CategoryStatisticsTableModel extends AbstractTableModel implements } } public void setFilter(LocalDate fromFilterDate, LocalDate toFilterDate) { this.fromDate = fromFilterDate; this.toDate = toFilterDate; } private static final class ListModelListener implements ListDataListener { private final AbstractTableModel model; private ListModelListener(AbstractTableModel model) { this.model = model; } @Override public void intervalAdded(ListDataEvent listDataEvent) { fireTableRowsInserted(listDataEvent.getIndex0(), listDataEvent.getIndex1()); model.fireTableRowsInserted(listDataEvent.getIndex0(), listDataEvent.getIndex1()); } @Override public void intervalRemoved(ListDataEvent listDataEvent) { fireTableRowsDeleted(listDataEvent.getIndex0(), listDataEvent.getIndex1()); model.fireTableRowsDeleted(listDataEvent.getIndex0(), listDataEvent.getIndex1()); } @Override public void contentsChanged(ListDataEvent listDataEvent) { fireTableDataChanged(); model.fireTableDataChanged(); } public void setFilter(LocalDate fromFilterDate, LocalDate toFilterDate) { this.fromDate = fromFilterDate; this.toDate = toFilterDate; } } src/main/java/cz/muni/fi/pv168/project/model/db/AbstractDataModel.java +7 −2 Original line number Diff line number Diff line package cz.muni.fi.pv168.project.model.db; import cz.muni.fi.pv168.project.model.EditableModel; import cz.muni.fi.pv168.project.ui.dialog.error.ErrorDialog; import cz.muni.fi.pv168.project.ui.i18n.I18N; import javax.swing.DefaultListModel; public abstract class AbstractDataModel<E> extends DefaultListModel<E> implements EditableModel<E> { public abstract class AbstractDataModel<E> extends DefaultListModel<E> { private static final I18N I18N = new I18N(AbstractDataModel.class); Loading Loading @@ -41,4 +40,10 @@ public abstract class AbstractDataModel<E> extends DefaultListModel<E> implement } return false; } protected abstract void update(E element); protected abstract void delete(E obj); protected abstract void add(E element); } Loading
src/main/java/cz/muni/fi/pv168/project/model/CategoryStatisticsTableModel.java +25 −16 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ import javax.swing.event.ListDataListener; import javax.swing.table.AbstractTableModel; import java.time.LocalDate; public class CategoryStatisticsTableModel extends AbstractTableModel implements ListDataListener { public class CategoryStatisticsTableModel extends AbstractTableModel { private final ListModel<Category> model; private LocalDate fromDate; private LocalDate toDate; Loading @@ -21,7 +21,7 @@ public class CategoryStatisticsTableModel extends AbstractTableModel implements toDate = LocalDate.now(); this.model = model; model.addListDataListener(this); model.addListDataListener(new ListModelListener(this)); } @Override Loading Loading @@ -64,23 +64,32 @@ public class CategoryStatisticsTableModel extends AbstractTableModel implements } } public void setFilter(LocalDate fromFilterDate, LocalDate toFilterDate) { this.fromDate = fromFilterDate; this.toDate = toFilterDate; } private static final class ListModelListener implements ListDataListener { private final AbstractTableModel model; private ListModelListener(AbstractTableModel model) { this.model = model; } @Override public void intervalAdded(ListDataEvent listDataEvent) { fireTableRowsInserted(listDataEvent.getIndex0(), listDataEvent.getIndex1()); model.fireTableRowsInserted(listDataEvent.getIndex0(), listDataEvent.getIndex1()); } @Override public void intervalRemoved(ListDataEvent listDataEvent) { fireTableRowsDeleted(listDataEvent.getIndex0(), listDataEvent.getIndex1()); model.fireTableRowsDeleted(listDataEvent.getIndex0(), listDataEvent.getIndex1()); } @Override public void contentsChanged(ListDataEvent listDataEvent) { fireTableDataChanged(); model.fireTableDataChanged(); } public void setFilter(LocalDate fromFilterDate, LocalDate toFilterDate) { this.fromDate = fromFilterDate; this.toDate = toFilterDate; } }
src/main/java/cz/muni/fi/pv168/project/model/db/AbstractDataModel.java +7 −2 Original line number Diff line number Diff line package cz.muni.fi.pv168.project.model.db; import cz.muni.fi.pv168.project.model.EditableModel; import cz.muni.fi.pv168.project.ui.dialog.error.ErrorDialog; import cz.muni.fi.pv168.project.ui.i18n.I18N; import javax.swing.DefaultListModel; public abstract class AbstractDataModel<E> extends DefaultListModel<E> implements EditableModel<E> { public abstract class AbstractDataModel<E> extends DefaultListModel<E> { private static final I18N I18N = new I18N(AbstractDataModel.class); Loading Loading @@ -41,4 +40,10 @@ public abstract class AbstractDataModel<E> extends DefaultListModel<E> implement } return false; } protected abstract void update(E element); protected abstract void delete(E obj); protected abstract void add(E element); }