diff --git a/src/main/java/de/neemann/digital/core/element/Key.java b/src/main/java/de/neemann/digital/core/element/Key.java index a23ae4e54..59f6dfceb 100644 --- a/src/main/java/de/neemann/digital/core/element/Key.java +++ b/src/main/java/de/neemann/digital/core/element/Key.java @@ -160,4 +160,18 @@ public class Key { return names; } } + + /** + * A special string key to flag long multi line strings. + */ + public static final class LongString extends Key { + /** + * Creates a new Key + * + * @param key the key + */ + public LongString(String key) { + super(key, ""); + } + } } diff --git a/src/main/java/de/neemann/digital/core/element/Keys.java b/src/main/java/de/neemann/digital/core/element/Keys.java index 30edb9307..61b58f9f1 100644 --- a/src/main/java/de/neemann/digital/core/element/Keys.java +++ b/src/main/java/de/neemann/digital/core/element/Keys.java @@ -158,7 +158,7 @@ public final class Keys { = new Key<>("showList", false); /** - * flag to set a ROM as programm memory + * flag to set a ROM as program memory */ public static final Key IS_PROGRAM_MEMORY = new Key<>("isProgramMemory", false); @@ -213,8 +213,8 @@ public final class Keys { /** * the description of an element */ - public static final Key DESCRIPTION - = new Key<>("Description", ""); + public static final Key.LongString DESCRIPTION + = new Key.LongString("Description"); /** * A net name 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 ddfcd898c..1b6b0e1c9 100644 --- a/src/main/java/de/neemann/digital/gui/components/EditorFactory.java +++ b/src/main/java/de/neemann/digital/gui/components/EditorFactory.java @@ -18,6 +18,7 @@ import de.neemann.gui.language.Language; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; +import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.event.ActionEvent; import java.io.IOException; @@ -110,16 +111,23 @@ public final class EditorFactory { private final static class StringEditor extends LabelEditor { - private final JTextField text; + private final JTextComponent text; + private final JComponent compToAdd; public StringEditor(String value, Key key) { - text = new JTextField(10); + if (key instanceof Key.LongString) { + text = new JTextArea(6, 30); + compToAdd = new JScrollPane(text); + } else { + text = new JTextField(10); + compToAdd = text; + } text.setText(value); } @Override public JComponent getComponent(ElementAttributes attr) { - return text; + return compToAdd; } @Override