diff --git a/src/main/java/de/neemann/digital/draw/shapes/MissingShape.java b/src/main/java/de/neemann/digital/draw/shapes/MissingShape.java
index b57bbfbdf..093dee09a 100644
--- a/src/main/java/de/neemann/digital/draw/shapes/MissingShape.java
+++ b/src/main/java/de/neemann/digital/draw/shapes/MissingShape.java
@@ -28,14 +28,7 @@ public class MissingShape implements Shape {
*/
public MissingShape(String elementName, Exception cause) {
this.message = Lang.get("msg_missingShape_N", elementName);
- this.cause = getMessage(cause);
- }
-
- private String getMessage(Throwable e) {
- String message = e.getMessage();
- if (e.getCause() != null)
- message += "; " + getMessage(e.getCause());
- return message;
+ this.cause = cause.getMessage();
}
@Override
diff --git a/src/main/java/de/neemann/digital/gui/components/EditorFactory.java b/src/main/java/de/neemann/digital/gui/components/EditorFactory.java
index 00bab2b26..6bedfc126 100644
--- a/src/main/java/de/neemann/digital/gui/components/EditorFactory.java
+++ b/src/main/java/de/neemann/digital/gui/components/EditorFactory.java
@@ -13,10 +13,7 @@ import de.neemann.digital.gui.components.testing.TestDataEditor;
import de.neemann.digital.gui.sync.NoSync;
import de.neemann.digital.lang.Lang;
import de.neemann.digital.testing.TestData;
-import de.neemann.gui.ErrorMessage;
-import de.neemann.gui.LineBreaker;
-import de.neemann.gui.MyFileChooser;
-import de.neemann.gui.ToolTipAction;
+import de.neemann.gui.*;
import de.neemann.gui.language.Bundle;
import de.neemann.gui.language.Language;
@@ -242,7 +239,15 @@ public final class EditorFactory {
button.setBackground(color);
}
}
- });
+ }) {
+ @Override
+ protected void paintComponent(Graphics graphics) {
+ graphics.setColor(Color.WHITE);
+ graphics.fillRect(0, 0, getWidth(), getHeight());
+ super.paintComponent(graphics);
+ }
+ };
+ button.setPreferredSize(new Dimension(10, Screen.getInstance().getFontSize() * 3 / 2));
button.setBackground(color);
}
diff --git a/src/main/java/de/neemann/digital/testing/TestData.java b/src/main/java/de/neemann/digital/testing/TestData.java
index 7f0801dc2..5143fa5d7 100644
--- a/src/main/java/de/neemann/digital/testing/TestData.java
+++ b/src/main/java/de/neemann/digital/testing/TestData.java
@@ -1,5 +1,6 @@
package de.neemann.digital.testing;
+import de.neemann.digital.lang.Lang;
import de.neemann.digital.testing.parser.LineEmitter;
import de.neemann.digital.testing.parser.Parser;
import de.neemann.digital.testing.parser.ParserException;
@@ -66,7 +67,7 @@ public class TestData {
lines = tdp.getLines();
names = tdp.getNames();
} catch (ParserException | IOException e) {
- throw new TestingDataException(e);
+ throw new TestingDataException(Lang.get("err_errorParsingTestdata"), e);
}
}
}
diff --git a/src/main/java/de/neemann/digital/testing/TestResult.java b/src/main/java/de/neemann/digital/testing/TestResult.java
index 6cb370a5a..8ed3e1e9a 100644
--- a/src/main/java/de/neemann/digital/testing/TestResult.java
+++ b/src/main/java/de/neemann/digital/testing/TestResult.java
@@ -96,7 +96,7 @@ public class TestResult {
try {
lines.emitLines(new LineListenerResolveDontCare(values -> checkRow(model, values), inputs), new Context());
} catch (ParserException e) {
- throw new TestingDataException(e);
+ throw new TestingDataException(Lang.get("err_errorParsingTestdata"), e);
} catch (RuntimeException e) {
if (allPassed) {
allPassed = false;
diff --git a/src/main/java/de/neemann/digital/testing/TestingDataException.java b/src/main/java/de/neemann/digital/testing/TestingDataException.java
index db24f5f1e..ad1558960 100644
--- a/src/main/java/de/neemann/digital/testing/TestingDataException.java
+++ b/src/main/java/de/neemann/digital/testing/TestingDataException.java
@@ -7,10 +7,11 @@ public class TestingDataException extends Exception {
/**
* creates a new instance
*
- * @param cause the cause
+ * @param message the error message
+ * @param cause the cause
*/
- public TestingDataException(Exception cause) {
- super(cause);
+ public TestingDataException(String message, Exception cause) {
+ super(message, cause);
}
/**
diff --git a/src/main/java/de/neemann/gui/ErrorMessage.java b/src/main/java/de/neemann/gui/ErrorMessage.java
index f1cdb7d9f..b396c2816 100644
--- a/src/main/java/de/neemann/gui/ErrorMessage.java
+++ b/src/main/java/de/neemann/gui/ErrorMessage.java
@@ -61,7 +61,7 @@ public class ErrorMessage implements Runnable {
message.append(e.getClass().getSimpleName());
e = e.getCause();
if (e != null)
- message.append("\ncaused by: ");
+ message.append("\n").append(Lang.get("msg_errCausedBy")).append(": ");
}
}
diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml
index d8cbae9bf..232c2af78 100644
--- a/src/main/resources/lang/lang_de.xml
+++ b/src/main/resources/lang/lang_de.xml
@@ -529,6 +529,7 @@ Sind evtl. die Namen der Variablen nicht eindeutig?
Es sind keine Flipflops mit mehr als einem Bit erlaubt!
Die Steuereingänge eines Transmission-Gates müssen invertiert beschaltet werden!
Signal {0} wurde mehrfach verwendet!
+ Fehler beim Einlesen der Testdaten.
Adress-Bits
Anzahl der Adress-Bits die verwendet werden.
@@ -870,6 +871,7 @@ Die Icons stammen aus dem Tango Desktop Project.
Fertig
Die GIF-Datei wird abgeschlossen.
GIF-Export
+ verursacht durch
Ok
0°
diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml
index 2e0a20781..7901d6ddc 100644
--- a/src/main/resources/lang/lang_en.xml
+++ b/src/main/resources/lang/lang_en.xml
@@ -429,8 +429,8 @@
Error
Pin {0} in component {1} is not a input or output
A single clock component is necessary. All flip-flops must use this clock signal.
- The circuit has no Inputs
- The circuit has no outputs
+ The circuit has no labeled inputs
+ The circuit has no labeled outputs
Break timeout after {0} cycles
Expression {0} not supported
Operation {0} not supported
@@ -519,6 +519,7 @@ The names of the variables may not be unique.
Flipflops with more then one bits are not allowed!
The two control inputs of a transmission gate must be inverted!
Signal {0} is used twice!
+ Error parsing the test data.
Address Bits
Number of address bits used.
@@ -858,6 +859,7 @@ The icons are taken from the Tango Desktop Project.
Ready
The GIF file is finalized and closed.
GIF Export
+ caused by
Ok
0°