made ValueTable observable

This commit is contained in:
hneemann 2017-07-04 07:50:29 +02:00
parent c23796bf5b
commit 87cf2f0942
3 changed files with 15 additions and 6 deletions

View File

@ -52,7 +52,7 @@ public class DependencyAnalyser {
if (!effected.contains(value)) { if (!effected.contains(value)) {
effected.add(value); effected.add(value);
for (Observer o : value) { for (Observer o : value.getObservers()) {
if ((o instanceof NodeInterface)) { if ((o instanceof NodeInterface)) {
ObservableValues outputs = ((NodeInterface) o).getOutputs(); ObservableValues outputs = ((NodeInterface) o).getOutputs();
for (ObservableValue co : outputs) for (ObservableValue co : outputs)

View File

@ -8,7 +8,7 @@ import java.util.Iterator;
* *
* @author hneemann * @author hneemann
*/ */
public class Observable implements Iterable<Observer> { public class Observable {
private final ArrayList<Observer> observers; private final ArrayList<Observer> observers;
/** /**
@ -76,8 +76,11 @@ public class Observable implements Iterable<Observer> {
return observers.contains(observer); return observers.contains(observer);
} }
@Override /**
public Iterator<Observer> iterator() { * @return tje list of observers
return observers.iterator(); */
public ArrayList<Observer> getObservers() {
return observers;
} }
} }

View File

@ -1,5 +1,7 @@
package de.neemann.digital.data; package de.neemann.digital.data;
import de.neemann.digital.core.Observable;
import java.io.*; import java.io.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -9,7 +11,7 @@ import java.util.Iterator;
* Stores values in a table * Stores values in a table
* Created by hneemann on 03.07.17. * Created by hneemann on 03.07.17.
*/ */
public class ValueTable implements Iterable<Value[]> { public class ValueTable extends Observable implements Iterable<Value[]> {
private final String[] names; private final String[] names;
private final ArrayList<Value[]> values; private final ArrayList<Value[]> values;
@ -59,6 +61,9 @@ public class ValueTable implements Iterable<Value[]> {
} }
values.add(row); values.add(row);
checkMax(row); checkMax(row);
fireHasChanged();
return this; return this;
} }
@ -151,6 +156,7 @@ public class ValueTable implements Iterable<Value[]> {
public void clear() { public void clear() {
values.clear(); values.clear();
Arrays.fill(max, 0); Arrays.fill(max, 0);
fireHasChanged();
} }
/** /**