diff --git a/distribution/Assembly.xml b/distribution/Assembly.xml
index 296e7e295..d3c94bd69 100644
--- a/distribution/Assembly.xml
+++ b/distribution/Assembly.xml
@@ -35,6 +35,13 @@
${basedir}/src/main/dig/74xx
/examples/74xx/
+
+ *.dig
+
+
+
+ ${basedir}/src/main/dig/lib
+ /examples/lib/
**/*.dig
**/*.txt
diff --git a/src/main/dig/74xx/lib/7489.dig b/src/main/dig/lib/74xx/7489.dig
similarity index 100%
rename from src/main/dig/74xx/lib/7489.dig
rename to src/main/dig/lib/74xx/7489.dig
diff --git a/src/main/dig/74xx/lib/ReadMe.txt b/src/main/dig/lib/74xx/ReadMe.txt
similarity index 100%
rename from src/main/dig/74xx/lib/ReadMe.txt
rename to src/main/dig/lib/74xx/ReadMe.txt
diff --git a/src/main/dig/74xx/lib/arithmetic/74147.dig b/src/main/dig/lib/74xx/arithmetic/74147.dig
similarity index 100%
rename from src/main/dig/74xx/lib/arithmetic/74147.dig
rename to src/main/dig/lib/74xx/arithmetic/74147.dig
diff --git a/src/main/dig/74xx/lib/arithmetic/74148.dig b/src/main/dig/lib/74xx/arithmetic/74148.dig
similarity index 100%
rename from src/main/dig/74xx/lib/arithmetic/74148.dig
rename to src/main/dig/lib/74xx/arithmetic/74148.dig
diff --git a/src/main/dig/74xx/lib/arithmetic/74198.dig b/src/main/dig/lib/74xx/arithmetic/74198.dig
similarity index 100%
rename from src/main/dig/74xx/lib/arithmetic/74198.dig
rename to src/main/dig/lib/74xx/arithmetic/74198.dig
diff --git a/src/main/dig/74xx/lib/arithmetic/74682.dig b/src/main/dig/lib/74xx/arithmetic/74682.dig
similarity index 100%
rename from src/main/dig/74xx/lib/arithmetic/74682.dig
rename to src/main/dig/lib/74xx/arithmetic/74682.dig
diff --git a/src/main/dig/74xx/lib/arithmetic/7483.dig b/src/main/dig/lib/74xx/arithmetic/7483.dig
similarity index 100%
rename from src/main/dig/74xx/lib/arithmetic/7483.dig
rename to src/main/dig/lib/74xx/arithmetic/7483.dig
diff --git a/src/main/dig/74xx/lib/arithmetic/7483Real.dig b/src/main/dig/lib/74xx/arithmetic/7483Real.dig
similarity index 100%
rename from src/main/dig/74xx/lib/arithmetic/7483Real.dig
rename to src/main/dig/lib/74xx/arithmetic/7483Real.dig
diff --git a/src/main/dig/74xx/lib/arithmetic/7485.dig b/src/main/dig/lib/74xx/arithmetic/7485.dig
similarity index 100%
rename from src/main/dig/74xx/lib/arithmetic/7485.dig
rename to src/main/dig/lib/74xx/arithmetic/7485.dig
diff --git a/src/main/dig/74xx/lib/basic/7400.dig b/src/main/dig/lib/74xx/basic/7400.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7400.dig
rename to src/main/dig/lib/74xx/basic/7400.dig
diff --git a/src/main/dig/74xx/lib/basic/7402.dig b/src/main/dig/lib/74xx/basic/7402.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7402.dig
rename to src/main/dig/lib/74xx/basic/7402.dig
diff --git a/src/main/dig/74xx/lib/basic/7404.dig b/src/main/dig/lib/74xx/basic/7404.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7404.dig
rename to src/main/dig/lib/74xx/basic/7404.dig
diff --git a/src/main/dig/74xx/lib/basic/7408.dig b/src/main/dig/lib/74xx/basic/7408.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7408.dig
rename to src/main/dig/lib/74xx/basic/7408.dig
diff --git a/src/main/dig/74xx/lib/basic/7410.dig b/src/main/dig/lib/74xx/basic/7410.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7410.dig
rename to src/main/dig/lib/74xx/basic/7410.dig
diff --git a/src/main/dig/74xx/lib/basic/7411.dig b/src/main/dig/lib/74xx/basic/7411.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7411.dig
rename to src/main/dig/lib/74xx/basic/7411.dig
diff --git a/src/main/dig/74xx/lib/basic/7413.dig b/src/main/dig/lib/74xx/basic/7413.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7413.dig
rename to src/main/dig/lib/74xx/basic/7413.dig
diff --git a/src/main/dig/74xx/lib/basic/74133.dig b/src/main/dig/lib/74xx/basic/74133.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/74133.dig
rename to src/main/dig/lib/74xx/basic/74133.dig
diff --git a/src/main/dig/74xx/lib/basic/7414.dig b/src/main/dig/lib/74xx/basic/7414.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7414.dig
rename to src/main/dig/lib/74xx/basic/7414.dig
diff --git a/src/main/dig/74xx/lib/basic/7420.dig b/src/main/dig/lib/74xx/basic/7420.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7420.dig
rename to src/main/dig/lib/74xx/basic/7420.dig
diff --git a/src/main/dig/74xx/lib/basic/7421.dig b/src/main/dig/lib/74xx/basic/7421.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7421.dig
rename to src/main/dig/lib/74xx/basic/7421.dig
diff --git a/src/main/dig/74xx/lib/basic/7425.dig b/src/main/dig/lib/74xx/basic/7425.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7425.dig
rename to src/main/dig/lib/74xx/basic/7425.dig
diff --git a/src/main/dig/74xx/lib/basic/74260.dig b/src/main/dig/lib/74xx/basic/74260.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/74260.dig
rename to src/main/dig/lib/74xx/basic/74260.dig
diff --git a/src/main/dig/74xx/lib/basic/7427.dig b/src/main/dig/lib/74xx/basic/7427.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7427.dig
rename to src/main/dig/lib/74xx/basic/7427.dig
diff --git a/src/main/dig/74xx/lib/basic/7430.dig b/src/main/dig/lib/74xx/basic/7430.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7430.dig
rename to src/main/dig/lib/74xx/basic/7430.dig
diff --git a/src/main/dig/74xx/lib/basic/7432.dig b/src/main/dig/lib/74xx/basic/7432.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7432.dig
rename to src/main/dig/lib/74xx/basic/7432.dig
diff --git a/src/main/dig/74xx/lib/basic/744075.dig b/src/main/dig/lib/74xx/basic/744075.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/744075.dig
rename to src/main/dig/lib/74xx/basic/744075.dig
diff --git a/src/main/dig/74xx/lib/basic/7451.dig b/src/main/dig/lib/74xx/basic/7451.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7451.dig
rename to src/main/dig/lib/74xx/basic/7451.dig
diff --git a/src/main/dig/74xx/lib/basic/7454.dig b/src/main/dig/lib/74xx/basic/7454.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7454.dig
rename to src/main/dig/lib/74xx/basic/7454.dig
diff --git a/src/main/dig/74xx/lib/basic/7455.dig b/src/main/dig/lib/74xx/basic/7455.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7455.dig
rename to src/main/dig/lib/74xx/basic/7455.dig
diff --git a/src/main/dig/74xx/lib/basic/7458.dig b/src/main/dig/lib/74xx/basic/7458.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7458.dig
rename to src/main/dig/lib/74xx/basic/7458.dig
diff --git a/src/main/dig/74xx/lib/basic/7486.dig b/src/main/dig/lib/74xx/basic/7486.dig
similarity index 100%
rename from src/main/dig/74xx/lib/basic/7486.dig
rename to src/main/dig/lib/74xx/basic/7486.dig
diff --git a/src/main/dig/74xx/lib/counter/74160.dig b/src/main/dig/lib/74xx/counter/74160.dig
similarity index 100%
rename from src/main/dig/74xx/lib/counter/74160.dig
rename to src/main/dig/lib/74xx/counter/74160.dig
diff --git a/src/main/dig/74xx/lib/counter/74161.dig b/src/main/dig/lib/74xx/counter/74161.dig
similarity index 100%
rename from src/main/dig/74xx/lib/counter/74161.dig
rename to src/main/dig/lib/74xx/counter/74161.dig
diff --git a/src/main/dig/74xx/lib/counter/74162.dig b/src/main/dig/lib/74xx/counter/74162.dig
similarity index 100%
rename from src/main/dig/74xx/lib/counter/74162.dig
rename to src/main/dig/lib/74xx/counter/74162.dig
diff --git a/src/main/dig/74xx/lib/counter/74162Real.dig b/src/main/dig/lib/74xx/counter/74162Real.dig
similarity index 100%
rename from src/main/dig/74xx/lib/counter/74162Real.dig
rename to src/main/dig/lib/74xx/counter/74162Real.dig
diff --git a/src/main/dig/74xx/lib/counter/74163.dig b/src/main/dig/lib/74xx/counter/74163.dig
similarity index 100%
rename from src/main/dig/74xx/lib/counter/74163.dig
rename to src/main/dig/lib/74xx/counter/74163.dig
diff --git a/src/main/dig/74xx/lib/counter/74590.dig b/src/main/dig/lib/74xx/counter/74590.dig
similarity index 100%
rename from src/main/dig/74xx/lib/counter/74590.dig
rename to src/main/dig/lib/74xx/counter/74590.dig
diff --git a/src/main/dig/74xx/lib/display/7447.dig b/src/main/dig/lib/74xx/display/7447.dig
similarity index 100%
rename from src/main/dig/74xx/lib/display/7447.dig
rename to src/main/dig/lib/74xx/display/7447.dig
diff --git a/src/main/dig/74xx/lib/display/7448.dig b/src/main/dig/lib/74xx/display/7448.dig
similarity index 100%
rename from src/main/dig/74xx/lib/display/7448.dig
rename to src/main/dig/lib/74xx/display/7448.dig
diff --git a/src/main/dig/74xx/lib/driver/7407.dig b/src/main/dig/lib/74xx/driver/7407.dig
similarity index 100%
rename from src/main/dig/74xx/lib/driver/7407.dig
rename to src/main/dig/lib/74xx/driver/7407.dig
diff --git a/src/main/dig/74xx/lib/driver/74244.dig b/src/main/dig/lib/74xx/driver/74244.dig
similarity index 100%
rename from src/main/dig/74xx/lib/driver/74244.dig
rename to src/main/dig/lib/74xx/driver/74244.dig
diff --git a/src/main/dig/74xx/lib/driver/74540.dig b/src/main/dig/lib/74xx/driver/74540.dig
similarity index 100%
rename from src/main/dig/74xx/lib/driver/74540.dig
rename to src/main/dig/lib/74xx/driver/74540.dig
diff --git a/src/main/dig/74xx/lib/driver/74541.dig b/src/main/dig/lib/74xx/driver/74541.dig
similarity index 100%
rename from src/main/dig/74xx/lib/driver/74541.dig
rename to src/main/dig/lib/74xx/driver/74541.dig
diff --git a/src/main/dig/74xx/lib/flipflops/74107.dig b/src/main/dig/lib/74xx/flipflops/74107.dig
similarity index 100%
rename from src/main/dig/74xx/lib/flipflops/74107.dig
rename to src/main/dig/lib/74xx/flipflops/74107.dig
diff --git a/src/main/dig/74xx/lib/flipflops/74116.dig b/src/main/dig/lib/74xx/flipflops/74116.dig
similarity index 100%
rename from src/main/dig/74xx/lib/flipflops/74116.dig
rename to src/main/dig/lib/74xx/flipflops/74116.dig
diff --git a/src/main/dig/74xx/lib/flipflops/74174.dig b/src/main/dig/lib/74xx/flipflops/74174.dig
similarity index 100%
rename from src/main/dig/74xx/lib/flipflops/74174.dig
rename to src/main/dig/lib/74xx/flipflops/74174.dig
diff --git a/src/main/dig/74xx/lib/flipflops/7474.dig b/src/main/dig/lib/74xx/flipflops/7474.dig
similarity index 100%
rename from src/main/dig/74xx/lib/flipflops/7474.dig
rename to src/main/dig/lib/74xx/flipflops/7474.dig
diff --git a/src/main/dig/74xx/lib/flipflops/7476.dig b/src/main/dig/lib/74xx/flipflops/7476.dig
similarity index 100%
rename from src/main/dig/74xx/lib/flipflops/7476.dig
rename to src/main/dig/lib/74xx/flipflops/7476.dig
diff --git a/src/main/dig/74xx/lib/plexers/74138.dig b/src/main/dig/lib/74xx/plexers/74138.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74138.dig
rename to src/main/dig/lib/74xx/plexers/74138.dig
diff --git a/src/main/dig/74xx/lib/plexers/74139.dig b/src/main/dig/lib/74xx/plexers/74139.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74139.dig
rename to src/main/dig/lib/74xx/plexers/74139.dig
diff --git a/src/main/dig/74xx/lib/plexers/74150.dig b/src/main/dig/lib/74xx/plexers/74150.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74150.dig
rename to src/main/dig/lib/74xx/plexers/74150.dig
diff --git a/src/main/dig/74xx/lib/plexers/74151.dig b/src/main/dig/lib/74xx/plexers/74151.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74151.dig
rename to src/main/dig/lib/74xx/plexers/74151.dig
diff --git a/src/main/dig/74xx/lib/plexers/74153.dig b/src/main/dig/lib/74xx/plexers/74153.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74153.dig
rename to src/main/dig/lib/74xx/plexers/74153.dig
diff --git a/src/main/dig/74xx/lib/plexers/74154.dig b/src/main/dig/lib/74xx/plexers/74154.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74154.dig
rename to src/main/dig/lib/74xx/plexers/74154.dig
diff --git a/src/main/dig/74xx/lib/plexers/74157.dig b/src/main/dig/lib/74xx/plexers/74157.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74157.dig
rename to src/main/dig/lib/74xx/plexers/74157.dig
diff --git a/src/main/dig/74xx/lib/plexers/74238.dig b/src/main/dig/lib/74xx/plexers/74238.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74238.dig
rename to src/main/dig/lib/74xx/plexers/74238.dig
diff --git a/src/main/dig/74xx/lib/plexers/74253.dig b/src/main/dig/lib/74xx/plexers/74253.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/74253.dig
rename to src/main/dig/lib/74xx/plexers/74253.dig
diff --git a/src/main/dig/74xx/lib/plexers/7442.dig b/src/main/dig/lib/74xx/plexers/7442.dig
similarity index 100%
rename from src/main/dig/74xx/lib/plexers/7442.dig
rename to src/main/dig/lib/74xx/plexers/7442.dig
diff --git a/src/main/dig/74xx/lib/shift register/74164.dig b/src/main/dig/lib/74xx/shift register/74164.dig
similarity index 100%
rename from src/main/dig/74xx/lib/shift register/74164.dig
rename to src/main/dig/lib/74xx/shift register/74164.dig
diff --git a/src/main/java/de/neemann/digital/builder/tt2/StartATF1502Fitter.java b/src/main/java/de/neemann/digital/builder/tt2/StartATF1502Fitter.java
index 9ffa043d4..938d76004 100644
--- a/src/main/java/de/neemann/digital/builder/tt2/StartATF1502Fitter.java
+++ b/src/main/java/de/neemann/digital/builder/tt2/StartATF1502Fitter.java
@@ -23,7 +23,7 @@ public class StartATF1502Fitter implements ExpressionToFileExporter.PostProcess
private static File getFitterExe(String fitterName) {
File fitter = Settings.getInstance().get(Keys.SETTINGS_ATF1502_FITTER);
- return new File(fitter.getParentFile(), fitterName);
+ return new File(fitter, fitterName);
}
/**
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 471be05d3..f202b4b03 100644
--- a/src/main/java/de/neemann/digital/core/element/Key.java
+++ b/src/main/java/de/neemann/digital/core/element/Key.java
@@ -2,6 +2,8 @@ package de.neemann.digital.core.element;
import de.neemann.digital.lang.Lang;
+import java.io.File;
+
/**
* Class is used to define the keys used to access the models attributes
*
@@ -147,6 +149,38 @@ public class Key {
}
}
+ /**
+ * Stores a file
+ */
+ public static final class KeyFile extends Key {
+
+
+ private boolean directoryOnly;
+
+ KeyFile(String key, File def) {
+ super(key, def);
+ setDirectoryOnly(false);
+ }
+
+ /**
+ * Set the directory only mode
+ *
+ * @param directoryOnly if true you can select only directories
+ * @return this for chained calls
+ */
+ public KeyFile setDirectoryOnly(boolean directoryOnly) {
+ this.directoryOnly = directoryOnly;
+ return this;
+ }
+
+ /**
+ * @return true if you can select only directories
+ */
+ public boolean isDirectoryOnly() {
+ return directoryOnly;
+ }
+ }
+
/**
* Used to store enum values
*
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 e249f8d6b..d8f104c3e 100644
--- a/src/main/java/de/neemann/digital/core/element/Keys.java
+++ b/src/main/java/de/neemann/digital/core/element/Keys.java
@@ -6,6 +6,7 @@ import de.neemann.digital.core.arithmetic.LeftRightFormat;
import de.neemann.digital.core.io.InValue;
import de.neemann.digital.core.io.IntFormat;
import de.neemann.digital.core.memory.DataField;
+import de.neemann.digital.draw.library.ElementLibrary;
import de.neemann.digital.draw.model.InverterConfig;
import de.neemann.gui.Screen;
import de.neemann.gui.language.Language;
@@ -336,7 +337,7 @@ public final class Keys {
* Fitter for the atf1502
*/
public static final Key SETTINGS_ATF1502_FITTER
- = new Key<>("atf1502Fitter", new File("c:/Wincupl/WinCupl/Fitters/fit1502.exe"));
+ = new Key.KeyFile("atf1502Fitter", new File("c:/Wincupl/WinCupl/Fitters")).setDirectoryOnly(true);
/**
* A pin number, empty means no pin assigned
@@ -416,4 +417,9 @@ public final class Keys {
public static final Key ACTIVE_LOW
= new Key<>("activeLow", false);
+ /**
+ * Fitter for the atf1502
+ */
+ public static final Key SETTINGS_LIBRARY_PATH
+ = new Key.KeyFile("libraryPath", ElementLibrary.getLibPath()).setDirectoryOnly(true);
}
diff --git a/src/main/java/de/neemann/digital/draw/library/ElementLibrary.java b/src/main/java/de/neemann/digital/draw/library/ElementLibrary.java
index 81b02dae0..417357640 100644
--- a/src/main/java/de/neemann/digital/draw/library/ElementLibrary.java
+++ b/src/main/java/de/neemann/digital/draw/library/ElementLibrary.java
@@ -17,6 +17,7 @@ import de.neemann.digital.draw.elements.Circuit;
import de.neemann.digital.draw.elements.PinException;
import de.neemann.digital.draw.elements.Tunnel;
import de.neemann.digital.draw.shapes.ShapeFactory;
+import de.neemann.digital.gui.Settings;
import de.neemann.digital.gui.components.data.DummyElement;
import de.neemann.digital.gui.components.graphics.GraphicCard;
import de.neemann.digital.gui.components.graphics.LedMatrix;
@@ -48,16 +49,16 @@ public class ElementLibrary implements Iterable
/**
* @return the additional library path
*/
- public static String getLibPath() {
+ public static File getLibPath() {
String path = ElementLibrary.class.getProtectionDomain().getCodeSource().getLocation().getPath().replace('\\', '/');
if (path.endsWith("/target/classes/"))
- return path.substring(0, path.length() - 16) + "/src/main/dig/lib";
+ return new File(path.substring(0, path.length() - 16) + "/src/main/dig/lib");
if (path.endsWith("/target/Digital.jar"))
- return path.substring(0, path.length() - 19) + "/src/main/dig/lib";
+ return new File(path.substring(0, path.length() - 19) + "/src/main/dig/lib");
if (path.endsWith("Digital.jar"))
- return path.substring(0, path.length() - 12) + "/examples/lib";
+ return new File(path.substring(0, path.length() - 12) + "/examples/lib");
- return null;
+ return new File("noLibFound");
}
private final HashMap map = new HashMap<>();
@@ -291,9 +292,11 @@ public class ElementLibrary implements Iterable
private void rescanFolder() throws IOException {
LOGGER.debug("rescan folder");
- LOGGER.info("library " + getLibPath());
+ File libPath = Settings.getInstance().get(Keys.SETTINGS_LIBRARY_PATH);
+ if (libPath != null && !libPath.exists()) libPath = null;
+
LibraryNode changedNode = null;
- if (rootLibraryPath != null) {
+ if (rootLibraryPath != null || libPath != null) {
if (customNode == null) {
customNode = new LibraryNode(Lang.get("menu_custom"));
root.add(customNode);
@@ -302,8 +305,11 @@ public class ElementLibrary implements Iterable
customNode.removeAll();
changedNode = customNode;
}
-
- int num = scanFolder(rootLibraryPath, customNode);
+ int num = 0;
+ if (libPath != null)
+ num += scanFolder(libPath, customNode);
+ if (rootLibraryPath != null)
+ num += scanFolder(rootLibraryPath, customNode);
LOGGER.debug("found " + num + " files");
} else if (customNode != null) {
root.remove(customNode);
diff --git a/src/main/java/de/neemann/digital/gui/Settings.java b/src/main/java/de/neemann/digital/gui/Settings.java
index 6f07d8404..724529025 100644
--- a/src/main/java/de/neemann/digital/gui/Settings.java
+++ b/src/main/java/de/neemann/digital/gui/Settings.java
@@ -44,6 +44,7 @@ public final class Settings implements AttributeListener {
intList.add(Keys.SETTINGS_EXPRESSION_FORMAT);
intList.add(Keys.SETTINGS_DEFAULT_TREESELECT);
intList.add(Keys.SETTINGS_ATF1502_FITTER);
+ intList.add(Keys.SETTINGS_LIBRARY_PATH);
intList.add(Keys.SETTINGS_FONT_SCALING);
settingsKeys = Collections.unmodifiableList(intList);
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 374ea72b0..46a498d34 100644
--- a/src/main/java/de/neemann/digital/gui/components/EditorFactory.java
+++ b/src/main/java/de/neemann/digital/gui/components/EditorFactory.java
@@ -300,14 +300,22 @@ public final class EditorFactory {
private final JPanel panel;
private final JTextField textField;
+ private final boolean directoryOnly;
public FileEditor(File value, Key key) {
+ if (key instanceof Key.KeyFile)
+ directoryOnly = ((Key.KeyFile) key).isDirectoryOnly();
+ else
+ directoryOnly = false;
+
panel = new JPanel(new BorderLayout());
textField = new JTextField(value.getPath(), 20);
JButton button = new JButton(new AbstractAction("...") {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new MyFileChooser(FileEditor.this.getValue());
+ if (directoryOnly)
+ fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if (fc.showOpenDialog(panel) == JFileChooser.APPROVE_OPTION)
textField.setText(fc.getSelectedFile().getPath());
}
diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml
index b8a2d16de..184fb10b3 100644
--- a/src/main/resources/lang/lang_de.xml
+++ b/src/main/resources/lang/lang_de.xml
@@ -676,8 +676,8 @@ Sind evtl. die Namen der Variablen nicht eindeutig?
Die Schaltfrequenz in der Simulation kann nicht so hoch werden,
dass das menschliche Auge kein Flimmern mehr wahrnimmt. Um dennoch das Flackern zu unterdrücken, kann
bei den LEDs mit dieser Option ein "nachleuchten" eingeschaltet werden.
- ATF1502 Fitter
- Pfad zum Fitter für den ATF1502. Geben Sie hier den vollen Pfad zur Datei fit1502.exe an. Diese Datei wird von ATMEL zu Verfügung gestellt.
+ ATF15xx Fitter
+ Pfad zum Fitter für den ATF15xx. Geben Sie hier das Verzeichnis an, welches die Dateien fit15xx.exe enthält. Diese Datei wird von ATMEL zu Verfügung gestellt.
Pinnummer
Ist das Feld leer bedeutet das, dass dieses Signal keinem Pin zugewiesen ist.
Zeilen
@@ -710,6 +710,8 @@ Sind evtl. die Namen der Variablen nicht eindeutig?
Modus in manchen CMOS-Schaltungen erforderlich sein.
Active Low
Wenn gesetzt, ist der Ausgang im aktiven Zustand Low.
+ Bibliothek
+ Bibliothek mit vordefinierten Schaltungen. Enthält z.B. die ICs der 74xx Reihe.
Leitung eingefügt.
Aus Zwischenablage eingefügt.
diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml
index 3d0b0f9ca..cb795528a 100644
--- a/src/main/resources/lang/lang_en.xml
+++ b/src/main/resources/lang/lang_en.xml
@@ -664,8 +664,8 @@ The names of the variables may not be unique.
It is not possible to increase the frequency so much that the flickering disappears.
With this option you can stabilize the display by keeping the LEDs on until the common cathode goes down again.
This simulates a frequency above the critical flicker fusion frequency.
- ATF1502 Fitter
- Path to the fitter for the ATF1502. Enter the full path to the file fit1502.exe provided by ATMEL.
+ ATF15xx Fitter
+ Path to the fitter for the ATF15xx. Enter the directory which countains the fit15xx.exe files provided by ATMEL.
Pin number
An empty field means this signal is not assigned to a pin.
Rows
@@ -697,6 +697,8 @@ The names of the variables may not be unique.
simulate certain CMOS circuits.
Active Low
If selected the output is low if the component is active.
+ Library
+ Library with predefined subcircuits. Contains, for example, the components of the 74xx series.
Inserted wire.
Insert from clipboard.