From 120fb03215cd0a4fd5d55af5ddd95b4d95c1a7e9 Mon Sep 17 00:00:00 2001 From: hneemann Date: Tue, 4 Jul 2017 07:57:01 +0200 Subject: [PATCH] the ValueTableModel observes the ValueTable --- .../neemann/digital/data/ValueTableModel.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/neemann/digital/data/ValueTableModel.java b/src/main/java/de/neemann/digital/data/ValueTableModel.java index d1255c559..6a2d1e39b 100644 --- a/src/main/java/de/neemann/digital/data/ValueTableModel.java +++ b/src/main/java/de/neemann/digital/data/ValueTableModel.java @@ -1,18 +1,23 @@ package de.neemann.digital.data; +import de.neemann.digital.core.Observer; import de.neemann.digital.lang.Lang; +import javax.swing.*; +import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; +import java.util.ArrayList; /** * The table model to represent a value table. *

* Created by hneemann on 24.08.16. */ -public class ValueTableModel implements TableModel { +public class ValueTableModel implements TableModel, Observer { private final ValueTable values; + private ArrayList listeners; /** * Creates a new table model @@ -21,6 +26,8 @@ public class ValueTableModel implements TableModel { */ public ValueTableModel(ValueTable values) { this.values = values; + listeners = new ArrayList<>(); + values.addObserver(this); } @Override @@ -69,10 +76,20 @@ public class ValueTableModel implements TableModel { @Override public void addTableModelListener(TableModelListener l) { + listeners.add(l); } @Override public void removeTableModelListener(TableModelListener l) { + listeners.remove(l); } + @Override + public void hasChanged() { + SwingUtilities.invokeLater(() -> { + TableModelEvent tme = new TableModelEvent(this); + for (TableModelListener l : listeners) + l.tableChanged(tme); + }); + } }