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