Commit eb96280a authored by Ondřej Hrdlička's avatar Ondřej Hrdlička
Browse files

Moved ListDataListener to inner class

parent 8afc437a
Loading
Loading
Loading
Loading
+25 −16
Original line number Diff line number Diff line
@@ -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;
@@ -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
@@ -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;
    }
}
+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);

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