diff --git a/src/main/java/de/neemann/digital/core/Model.java b/src/main/java/de/neemann/digital/core/Model.java index 82f321340..22a035656 100644 --- a/src/main/java/de/neemann/digital/core/Model.java +++ b/src/main/java/de/neemann/digital/core/Model.java @@ -131,6 +131,13 @@ public class Model implements Iterable, SyncAccess { return windowPosManager; } + /** + * @return true if this model runs in the main frame + */ + public boolean runningInMainFrame() { + return getWindowPosManager().getMainFrame() != null; + } + /** * Returns the actual step counter. * This counter is incremented by every micro step diff --git a/src/main/java/de/neemann/digital/gui/components/terminal/Terminal.java b/src/main/java/de/neemann/digital/gui/components/terminal/Terminal.java index 7878736b9..a24ba2cdc 100644 --- a/src/main/java/de/neemann/digital/gui/components/terminal/Terminal.java +++ b/src/main/java/de/neemann/digital/gui/components/terminal/Terminal.java @@ -22,7 +22,6 @@ import static de.neemann.digital.core.element.PinInfo.input; * Component which represents a text terminal. */ public class Terminal extends Node implements Element { - private static final boolean HIDE_DIALOG = GraphicsEnvironment.isHeadless() || System.getProperty("testdata") != null; /** * The terminal description @@ -72,10 +71,10 @@ public class Terminal extends Node implements Element { long value = data.getValue(); if (value != 0) { if (terminal == null) { - if (HIDE_DIALOG) { - terminal = new ConsoleTerminal(); - } else { + if (getModel().runningInMainFrame()) { terminal = TerminalDialog.getTerminal(getModel(), attr); + } else { + terminal = new ConsoleTerminal(); } } terminal.addChar((char) value); @@ -89,9 +88,9 @@ public class Terminal extends Node implements Element { } /** - * @return the terminal dialog + * @return the terminal interface */ - public TerminalInterface getTerminalDialog() { + public TerminalInterface getTerminalInterface() { return terminal; } } diff --git a/src/test/java/de/neemann/digital/integration/TestInGUI.java b/src/test/java/de/neemann/digital/integration/TestInGUI.java index 3d4d87dae..2f04145cb 100644 --- a/src/test/java/de/neemann/digital/integration/TestInGUI.java +++ b/src/test/java/de/neemann/digital/integration/TestInGUI.java @@ -530,7 +530,7 @@ public class TestInGUI extends TestCase { List n = main.getModel().findNode(Terminal.class); assertEquals(1, n.size()); Terminal t = n.get(0); - assertEquals("\nHello World!", t.getTerminalDialog().getText()); + assertEquals("\nHello World!", t.getTerminalInterface().getText()); })) .execute(); }