diff --git a/src/main/dig/sequential/conway/cellSettable.dig b/src/main/dig/sequential/conway/cellSettable.dig
index f303894fd..b7231f555 100644
--- a/src/main/dig/sequential/conway/cellSettable.dig
+++ b/src/main/dig/sequential/conway/cellSettable.dig
@@ -20,7 +20,7 @@
true
-
+
Comparator
@@ -30,7 +30,7 @@
4
-
+
Const
@@ -44,7 +44,7 @@
4
-
+
Comparator
@@ -54,7 +54,7 @@
4
-
+
Const
@@ -68,12 +68,12 @@
4
-
+
Or
-
+
BitCount
@@ -83,7 +83,7 @@
8
-
+
D_FF
@@ -112,7 +112,7 @@
8
-
+
Multiplexer
@@ -177,48 +177,48 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -229,8 +229,8 @@
-
-
+
+
@@ -241,49 +241,49 @@
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/main/java/de/neemann/digital/draw/elements/Circuit.java b/src/main/java/de/neemann/digital/draw/elements/Circuit.java
index a64a53833..34397e828 100644
--- a/src/main/java/de/neemann/digital/draw/elements/Circuit.java
+++ b/src/main/java/de/neemann/digital/draw/elements/Circuit.java
@@ -17,6 +17,7 @@ import de.neemann.digital.draw.graphics.Polygon;
import de.neemann.digital.draw.graphics.Style;
import de.neemann.digital.draw.graphics.Vector;
import de.neemann.digital.draw.shapes.Drawable;
+import de.neemann.digital.draw.shapes.InputShape;
import de.neemann.digital.draw.shapes.ShapeFactory;
import de.neemann.digital.gui.components.AttributeDialog;
import de.neemann.digital.gui.components.test.TestData;
@@ -574,6 +575,20 @@ public class Circuit {
this.measurementOrdering = measurementOrdering;
}
+ /**
+ * Makes actual input values to the default value
+ */
+ public void actualToDefault() {
+ for (VisualElement ve : visualElements)
+ if (ve.equalsDescription(In.DESCRIPTION)) {
+ ObservableValue ov = ((InputShape) ve.getShape()).getObservableValue();
+ if (ov != null) {
+ ve.getElementAttributes().set(Keys.DEFAULT, (int) ov.getValue());
+ modified=true;
+ }
+ }
+ }
+
/**
* Add a rectangle to the circuit.
* Only used to debug the {@link de.neemann.digital.builder.circuit.CircuitBuilder}.
diff --git a/src/main/java/de/neemann/digital/draw/shapes/InputShape.java b/src/main/java/de/neemann/digital/draw/shapes/InputShape.java
index ce64a3057..2ebfd390c 100644
--- a/src/main/java/de/neemann/digital/draw/shapes/InputShape.java
+++ b/src/main/java/de/neemann/digital/draw/shapes/InputShape.java
@@ -72,6 +72,16 @@ public class InputShape implements Shape {
};
}
+ /**
+ * @return the output connected to this shape
+ */
+ public ObservableValue getObservableValue() {
+ if (ioState == null)
+ return null;
+ else
+ return ioState.getOutput(0);
+ }
+
@Override
public void drawTo(Graphic graphic, boolean heighLight) {
Style style = Style.NORMAL;
diff --git a/src/main/java/de/neemann/digital/gui/Main.java b/src/main/java/de/neemann/digital/gui/Main.java
index 60898a385..db8cf12ba 100644
--- a/src/main/java/de/neemann/digital/gui/Main.java
+++ b/src/main/java/de/neemann/digital/gui/Main.java
@@ -411,7 +411,17 @@ public class Main extends JFrame implements ClosingWindowListener.ConfirmSave, E
}
}.setToolTip(Lang.get("menu_editSettings_tt"));
+
+ ToolTipAction actualToDefault = new ToolTipAction(Lang.get("menu_actualToDefault")) {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ circuitComponent.getCircuit().actualToDefault();
+ elementState.enter();
+ }
+ }.setToolTip(Lang.get("menu_actualToDefault_tt"));
+
edit.add(editAttributes.createJMenuItem());
+ edit.add(actualToDefault.createJMenuItem());
edit.addSeparator();
edit.add(elementStateAction.createJMenuItem());
edit.add(orderInputs.createJMenuItem());
diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml
index 9de3c83e5..f177a1461 100644
--- a/src/main/resources/lang/lang_de.xml
+++ b/src/main/resources/lang/lang_de.xml
@@ -352,6 +352,8 @@ Zur Analyse können Sie die Schaltung im Gatterschrittmodus ausführen.
Erzeugt eine Schaltung aus einem Ausdruck.
Tests ausführen
Führt alle Tests in der Schaltung aus!
+ Eingänge übernehmen
+ Aktuelle Eingangswerte als neue Vorgabewerte übernehmen.
Digital
Ein einfacher Simulator für digitale Schaltkreise.
diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml
index ecdcfac52..b4821e4ab 100644
--- a/src/main/resources/lang/lang_en.xml
+++ b/src/main/resources/lang/lang_en.xml
@@ -352,6 +352,8 @@ To analyse you can run the circuit in single gate step mode.
Create a circuit from an expression.
Run Tests
Runs all test cases in the circuit
+ Set Inputs
+ Use actual input values as new default values.
Digital