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)) {
effected.add(value);
for (Observer o : value) {
for (Observer o : value.getObservers()) {
if ((o instanceof NodeInterface)) {
ObservableValues outputs = ((NodeInterface) o).getOutputs();
for (ObservableValue co : outputs)

View File

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

View File

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