diff --git a/diylc/diylc-core/lib/AppleJavaExtensions.jar b/diylc/diylc-core/lib/AppleJavaExtensions.jar
deleted file mode 100644
index 6659a81c..00000000
Binary files a/diylc/diylc-core/lib/AppleJavaExtensions.jar and /dev/null differ
diff --git a/diylc/diylc-core/lib/guava-31.1-jre.jar b/diylc/diylc-core/lib/guava-31.1-jre.jar
deleted file mode 100644
index 16819229..00000000
Binary files a/diylc/diylc-core/lib/guava-31.1-jre.jar and /dev/null differ
diff --git a/diylc/diylc-core/lib/jettison-1.0.1.jar b/diylc/diylc-core/lib/jettison-1.0.1.jar
deleted file mode 100644
index fed929fd..00000000
Binary files a/diylc/diylc-core/lib/jettison-1.0.1.jar and /dev/null differ
diff --git a/diylc/diylc-core/lib/junit-4.7.jar b/diylc/diylc-core/lib/junit-4.7.jar
deleted file mode 100644
index 700ad695..00000000
Binary files a/diylc/diylc-core/lib/junit-4.7.jar and /dev/null differ
diff --git a/diylc/diylc-core/lib/log4j-1.2.15.jar b/diylc/diylc-core/lib/log4j-1.2.15.jar
deleted file mode 100644
index c930a6ab..00000000
Binary files a/diylc/diylc-core/lib/log4j-1.2.15.jar and /dev/null differ
diff --git a/diylc/diylc-core/lib/xstream-1.4.19.jar b/diylc/diylc-core/lib/xstream-1.4.19.jar
deleted file mode 100644
index 95d1c6a6..00000000
Binary files a/diylc/diylc-core/lib/xstream-1.4.19.jar and /dev/null differ
diff --git a/diylc/diylc-core/pom.xml b/diylc/diylc-core/pom.xml
index dea8719d..33097b3a 100644
--- a/diylc/diylc-core/pom.xml
+++ b/diylc/diylc-core/pom.xml
@@ -47,6 +47,16 @@
guava
31.1-jre
+
+ org.codehaus.jettison
+ jettison
+ 1.5.4
+
+
+ org.reflections
+ reflections
+ 0.10.2
+
junit
junit
@@ -54,11 +64,6 @@
-
- org.diylc.local
- AppleJavaExtensions
- 1.0
-
org.diylc.local
app-framework
@@ -74,10 +79,5 @@
java-http-proxy
1.0
-
- org.diylc.local
- jettison-1.0.1
- 1.0
-
diff --git a/diylc/diylc-core/src/main/java/org/diylc/common/IPlugInPort.java b/diylc/diylc-core/src/main/java/org/diylc/common/IPlugInPort.java
index 16779e43..f5c69b3f 100644
--- a/diylc/diylc-core/src/main/java/org/diylc/common/IPlugInPort.java
+++ b/diylc/diylc-core/src/main/java/org/diylc/common/IPlugInPort.java
@@ -147,7 +147,7 @@ public interface IPlugInPort extends ISelectionProcessor, IMouseProcessor, IKeyP
*
* @param project
* @param freshStart
- * @param optional file name when loading from a file
+ * @param filename file name when loading from a file
*/
void loadProject(Project project, boolean freshStart, String filename);
diff --git a/diylc/diylc-core/src/main/java/org/diylc/lang/LangUtil.java b/diylc/diylc-core/src/main/java/org/diylc/lang/LangUtil.java
index 69d1762c..55b3824e 100644
--- a/diylc/diylc-core/src/main/java/org/diylc/lang/LangUtil.java
+++ b/diylc/diylc-core/src/main/java/org/diylc/lang/LangUtil.java
@@ -17,12 +17,12 @@
*/
package org.diylc.lang;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.PrintWriter;
+import java.io.*;
+import java.net.URISyntaxException;
+import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
@@ -34,7 +34,7 @@ import org.apache.log4j.Logger;
import org.diylc.appframework.miscutils.ConfigurationManager;
import org.diylc.common.IPlugInPort;
-import org.diylc.utils.ResourceLoader;
+import org.diylc.utils.ResourceUtils;
public class LangUtil {
@@ -89,21 +89,17 @@ public class LangUtil {
LOG.info("Loading translation for " + language);
dict = new HashMap();
try {
- String path = ResourceLoader.getFile(LANG_DIR + File.separator + language + ".txt").getAbsolutePath();
- LOG.debug("Loading language file: " + path);
- try (Stream stream = Files.lines(
- Paths.get(path), StandardCharsets.UTF_8)) {
- stream.forEach(s -> {
- if (s.contains("|")) {
- String[] parts = s.split("\\|");
- if (parts.length == 2)
- dict.put(parts[0].toLowerCase().trim(), parts[1].trim());
- } else {
- dict.put(s.toLowerCase(), s);
- }
- });
- } catch (IOException e) {
- LOG.error("Error loading language file", e);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(
+ (LangUtil.class.getResourceAsStream("/" + LANG_DIR + File.separator + language + ".txt"))));
+ while(reader.ready()) {
+ String s = reader.readLine();
+ if (s.contains("|")) {
+ String[] parts = s.split("\\|");
+ if (parts.length == 2)
+ dict.put(parts[0].toLowerCase().trim(), parts[1].trim());
+ } else {
+ dict.put(s.toLowerCase(), s);
+ }
}
} catch (Exception e) {
LOG.error("Error loading language file", e);
@@ -128,9 +124,8 @@ public class LangUtil {
public static List getAvailableLanguages() {
List res = new ArrayList();
- File[] files = ResourceLoader.getFiles(LANG_DIR);
- if (files == null)
- return res;
+
+ List files = ResourceUtils.getResourceFiles(LANG_DIR);
try {
for (File file : files) {
String key = file.getName().replaceFirst("[.][^.]+$", "");
diff --git a/diylc/diylc-core/src/main/java/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/main/java/org/diylc/presenter/Presenter.java
index b3e4909d..2aeda614 100644
--- a/diylc/diylc-core/src/main/java/org/diylc/presenter/Presenter.java
+++ b/diylc/diylc-core/src/main/java/org/diylc/presenter/Presenter.java
@@ -80,6 +80,7 @@ import org.diylc.core.Project;
import org.diylc.core.Template;
import org.diylc.core.Theme;
import org.diylc.core.VisibilityPolicy;
+import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.IAutoCreator;
import org.diylc.core.gerber.GerberExporter;
import org.diylc.core.measures.Size;
@@ -95,6 +96,11 @@ import org.diylc.test.DIYTest;
import org.diylc.test.Snapshot;
import org.diylc.utils.Constants;
import org.diylc.utils.ReflectionUtils;
+import org.reflections.Reflections;
+import org.reflections.util.ConfigurationBuilder;
+import org.reflections.util.FilterBuilder;
+
+import static org.reflections.scanners.Scanners.TypesAnnotated;
/**
* The main presenter class, contains core app logic and drawing routines.
@@ -442,21 +448,14 @@ public class Presenter implements IPlugInPort, IConfigListener {
if (componentTypes == null) {
LOG.info("Loading component types.");
componentTypes = new HashMap>();
+ Reflections reflections = new Reflections(
+ new ConfigurationBuilder()
+ .forPackage("org.diylc")
+ .filterInputsBy(new FilterBuilder().includePackage("org.diylc.components"))
+ .setScanners(TypesAnnotated));
Set> componentTypeClasses = null;
try {
- componentTypeClasses = Utils.getClasses("org.diylc.components");
- File libraryFile = new File("library");
- if (libraryFile.exists() && libraryFile.isDirectory() && !Utils.isMac()) {
- LOG.info("Loading additional library JARs");
- try {
- List> additionalComponentTypeClasses =
- JarScanner.getInstance().scanFolder("library", IDIYComponent.class);
- if (additionalComponentTypeClasses != null)
- componentTypeClasses.addAll(additionalComponentTypeClasses);
- } catch (Exception e) {
- LOG.warn("Could not find additional type classes", e);
- }
- }
+ componentTypeClasses = reflections.getTypesAnnotatedWith(ComponentDescriptor.class, false);
for (Class> clazz : componentTypeClasses) {
if (!Modifier.isAbstract(clazz.getModifiers()) && IDIYComponent.class.isAssignableFrom(clazz)) {
diff --git a/diylc/diylc-core/src/main/java/org/diylc/utils/ResourceLoader.java b/diylc/diylc-core/src/main/java/org/diylc/utils/ResourceLoader.java
deleted file mode 100644
index 28a9d9c8..00000000
--- a/diylc/diylc-core/src/main/java/org/diylc/utils/ResourceLoader.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- *
- * DIY Layout Creator (DIYLC). Copyright (c) 2009-2018 held jointly by the individual authors.
- *
- * This file is part of DIYLC.
- *
- * DIYLC is free software: you can redistribute it and/or modify it under the terms of the GNU
- * General Public License as published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * DIYLC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with DIYLC. If not, see
- * .
- *
- */
-package org.diylc.utils;
-
-import java.io.File;
-import org.apache.log4j.Logger;
-
-public class ResourceLoader {
-
- private static final Logger LOG = Logger.getLogger(ResourceLoader.class);
-
- public static File[] getFiles(String relativePath) {
- String bundlePath;
- try {
- bundlePath = com.apple.eio.FileManager.getPathToApplicationBundle();
- //LOG.debug("Detected OSX bundle path: " + bundlePath);
- } catch (Exception e) {
- bundlePath = null; // on non-OSX platforms
- }
- try {
- String absolutePath;
- if (bundlePath == null)
- absolutePath = relativePath;
- else
- absolutePath = bundlePath + File.separator + "Contents" + File.separator + "Resources" + File.separator + relativePath;
- LOG.debug("Looking for files in: " + absolutePath);
- File absoluteFile = new File(absolutePath);
- return absoluteFile.listFiles();
- } catch (Exception e) {
- LOG.error("Error while looking for files in: " + relativePath, e);
- return null;
- }
- }
-
- public static File getFile(String relativePath) {
- String bundlePath;
- try {
- bundlePath = com.apple.eio.FileManager.getPathToApplicationBundle();
- //LOG.debug("Detected OSX bundle path: " + bundlePath);
- } catch (Exception e) {
- bundlePath = null; // on non-OSX platforms
- }
- try {
- String absolutePath;
- if (bundlePath == null)
- absolutePath = relativePath;
- else
- absolutePath = bundlePath + File.separator + "Contents" + File.separator + "Resources" + File.separator + relativePath;
- File absoluteFile = new File(absolutePath);
- return absoluteFile;
- } catch (Exception e) {
- LOG.error("Error while finding file: " + relativePath, e);
- return null;
- }
- }
-}
diff --git a/diylc/diylc-core/src/main/java/org/diylc/utils/ResourceUtils.java b/diylc/diylc-core/src/main/java/org/diylc/utils/ResourceUtils.java
new file mode 100644
index 00000000..9a638584
--- /dev/null
+++ b/diylc/diylc-core/src/main/java/org/diylc/utils/ResourceUtils.java
@@ -0,0 +1,38 @@
+package org.diylc.utils;
+
+import org.apache.log4j.Logger;
+import org.diylc.lang.LangUtil;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ResourceUtils {
+
+ private static final Logger LOG = Logger.getLogger(LangUtil.class);
+
+ public static List getResourceFiles(String dir) {
+ List files = new ArrayList<>();
+ URL url = LangUtil.class.getResource("/" + dir);
+ Path path = null;
+ try {
+ path = Paths.get(url.toURI());
+ Files.walk(path, 5).forEach(p -> {
+ if (!p.toFile().isDirectory()) {
+ files.add(p.toFile());
+ }
+ });
+ } catch (URISyntaxException e) {
+ LOG.error("Error loading language file", e);
+ } catch (IOException e) {
+ LOG.error("Error loading language file", e);
+ }
+ return files;
+ }
+}
diff --git a/diylc/diylc-library/lib/log4j-1.2.15.jar b/diylc/diylc-library/lib/log4j-1.2.15.jar
deleted file mode 100644
index c930a6ab..00000000
Binary files a/diylc/diylc-library/lib/log4j-1.2.15.jar and /dev/null differ
diff --git a/diylc/diylc-library/lib/poi-3.5-FINAL-20090928.jar b/diylc/diylc-library/lib/poi-3.5-FINAL-20090928.jar
deleted file mode 100644
index 9ff92b02..00000000
Binary files a/diylc/diylc-library/lib/poi-3.5-FINAL-20090928.jar and /dev/null differ
diff --git a/diylc/diylc-library/lib/xstream-1.4.19.jar b/diylc/diylc-library/lib/xstream-1.4.19.jar
deleted file mode 100644
index 95d1c6a6..00000000
Binary files a/diylc/diylc-library/lib/xstream-1.4.19.jar and /dev/null differ
diff --git a/diylc/diylc-swing/dict.txt b/diylc/diylc-swing/dict.txt
index c954d5ae..65525c4c 100644
--- a/diylc/diylc-swing/dict.txt
+++ b/diylc/diylc-swing/dict.txt
@@ -188,6 +188,7 @@ Default Font Size
Delete Selection
Description
Designation
+Deutsch
Diameter
Dimension Mode
Directional
@@ -206,6 +207,7 @@ Drag control point(s) of
Drag the mouse over the canvas to place a new
Draw Standard
Drop
+DualPot
Duodecar B12C
Duplicate
E+
@@ -219,9 +221,11 @@ Electro-Mechanical
Electrode Labels
Enable Cache Boost
End Arrow
+English
Enjoying DIYLC? Click here to buy me a coffee :)
Error
Error occurred while editing selection. Check the log for details.
+Español
Exit
Expand Selection
Explicit Dimensions
@@ -250,6 +254,7 @@ Font Italic
Font Size
Font Size Override
Four
+Français
Full
Fuse
G-D-S JFET
@@ -306,6 +311,7 @@ Inner 6
Inside Color
Integration
Invert Polarity
+Italiano
Label
Label Color
Label Orientation
@@ -358,6 +364,7 @@ Moveable Label
NPN
Name
Nand
+Nederlands
Negative
New
New version available
@@ -420,6 +427,7 @@ Pole Pieces
Pole Pieces 1
Pole Pieces 2
Poles
+Português
Positions
Positive
Power Rating
@@ -513,6 +521,7 @@ Source Type
Spacing
Square
Square BR-3
+Srpski
Standard
Start Arrow
Start Recording
@@ -533,6 +542,8 @@ Submit a Bug
Suppressor grid
Switched
Switches
+TO-92 w/ 2 Leads
+TO-92 w/ 3 Leads
Tab
Tab Border
Tabbed Toolbar
@@ -554,6 +565,7 @@ Tick Width
Ticks
Timing
Title
+Title Block
Toolbox
Top
Top Lead
diff --git a/diylc/diylc-swing/lib/AppleJavaExtensions.jar b/diylc/diylc-swing/lib/AppleJavaExtensions.jar
deleted file mode 100644
index 6659a81c..00000000
Binary files a/diylc/diylc-swing/lib/AppleJavaExtensions.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/balloontip-1.2.4.1.jar b/diylc/diylc-swing/lib/balloontip-1.2.4.1.jar
deleted file mode 100644
index a7c8b4d2..00000000
Binary files a/diylc/diylc-swing/lib/balloontip-1.2.4.1.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/commons-compiler-3.0.6.jar b/diylc/diylc-swing/lib/commons-compiler-3.0.6.jar
deleted file mode 100644
index b9aaa551..00000000
Binary files a/diylc/diylc-swing/lib/commons-compiler-3.0.6.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/commons-logging-1.2.jar b/diylc/diylc-swing/lib/commons-logging-1.2.jar
deleted file mode 100644
index 93a3b9f6..00000000
Binary files a/diylc/diylc-swing/lib/commons-logging-1.2.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/gestures-wrapper-0.2.jar b/diylc/diylc-swing/lib/gestures-wrapper-0.2.jar
deleted file mode 100644
index d72ddc8a..00000000
Binary files a/diylc/diylc-swing/lib/gestures-wrapper-0.2.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/guava-31.1-jre.jar b/diylc/diylc-swing/lib/guava-31.1-jre.jar
deleted file mode 100644
index 16819229..00000000
Binary files a/diylc/diylc-swing/lib/guava-31.1-jre.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/janino-3.0.6.jar b/diylc/diylc-swing/lib/janino-3.0.6.jar
deleted file mode 100644
index 41ab429d..00000000
Binary files a/diylc/diylc-swing/lib/janino-3.0.6.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/jettison-1.0.1.jar b/diylc/diylc-swing/lib/jettison-1.0.1.jar
deleted file mode 100644
index fed929fd..00000000
Binary files a/diylc/diylc-swing/lib/jettison-1.0.1.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/junit-4.7.jar b/diylc/diylc-swing/lib/junit-4.7.jar
deleted file mode 100644
index 700ad695..00000000
Binary files a/diylc/diylc-swing/lib/junit-4.7.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/log4j-1.2.15.jar b/diylc/diylc-swing/lib/log4j-1.2.15.jar
deleted file mode 100644
index c930a6ab..00000000
Binary files a/diylc/diylc-swing/lib/log4j-1.2.15.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/orsonpdf-1.8.jar b/diylc/diylc-swing/lib/orsonpdf-1.8.jar
deleted file mode 100644
index 768b37bd..00000000
Binary files a/diylc/diylc-swing/lib/orsonpdf-1.8.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/pdfbox-2.0.27.jar b/diylc/diylc-swing/lib/pdfbox-2.0.27.jar
deleted file mode 100644
index 5510e409..00000000
Binary files a/diylc/diylc-swing/lib/pdfbox-2.0.27.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/poi-3.5-FINAL-20090928.jar b/diylc/diylc-swing/lib/poi-3.5-FINAL-20090928.jar
deleted file mode 100644
index 9ff92b02..00000000
Binary files a/diylc/diylc-swing/lib/poi-3.5-FINAL-20090928.jar and /dev/null differ
diff --git a/diylc/diylc-swing/lib/xstream-1.4.19.jar b/diylc/diylc-swing/lib/xstream-1.4.19.jar
deleted file mode 100644
index 95d1c6a6..00000000
Binary files a/diylc/diylc-swing/lib/xstream-1.4.19.jar and /dev/null differ
diff --git a/diylc/diylc-swing/pom.xml b/diylc/diylc-swing/pom.xml
index ef8cdb7e..afd926b1 100644
--- a/diylc/diylc-swing/pom.xml
+++ b/diylc/diylc-swing/pom.xml
@@ -77,43 +77,48 @@
pdfbox
2.0.27
-
-
- org.diylc.local
- AppleJavaExtensions
- 1.0
+ com.orsonpdf
+ orsonpdf
+ 1.9.1
+
+ org.codehaus.janino
+ janino
+ 3.1.12
+
+
+ org.codehaus.janino
+ commons-compiler
+ 3.1.12
+
+
+ net.java.balloontip
+ balloontip
+ 1.2.4.1
+
+
+ org.codehaus.jettison
+ jettison
+ 1.5.4
+
+
+ com.guigarage
+ gestures-wrapper
+ 0.2
+
+
+
org.diylc.local
app-framework
1.0
-
- org.diylc.local
- balloontip-1.2.4.1
- 1.0
-
-
- org.diylc.local
- commons-compiler-3.0.6
- 1.0
-
org.diylc.local
gerber-writer-api-1.0.0
1.0
-
- org.diylc.local
- gestures-wrapper-0.2
- 1.0
-
-
- org.diylc.local
- janino-3.0.6
- 1.0
-
org.diylc.local
jar-loader
@@ -129,16 +134,6 @@
jep-2.4.1
1.0
-
- org.diylc.local
- jettison-1.0.1
- 1.0
-
-
- org.diylc.local
- orsonpdf-1.8
- 1.0
-
org.diylc.local
svgSalamander-1.1.2.4
diff --git a/diylc/diylc-swing/src/main/java/org/diylc/DIYLCStarter.java b/diylc/diylc-swing/src/main/java/org/diylc/DIYLCStarter.java
index 04b8aaa3..e6215d86 100644
--- a/diylc/diylc-swing/src/main/java/org/diylc/DIYLCStarter.java
+++ b/diylc/diylc-swing/src/main/java/org/diylc/DIYLCStarter.java
@@ -88,7 +88,7 @@ public class DIYLCStarter {
}
}
- URL url = DIYLCStarter.class.getResource("log4j.properties");
+ URL url = DIYLCStarter.class.getResource("/log4j.properties");
Properties properties = new Properties();
try {
properties.load(url.openStream());
@@ -116,6 +116,7 @@ public class DIYLCStarter {
+ System.getProperty("java.vm.vendor"));
LOG.debug("Java home: " + System.getProperty("java.home"));
LOG.debug("OS: " + System.getProperty("os.name") + " " + System.getProperty("os.version"));
+// LOG.debug("Classpath: " + System.getProperty("java.class.path"));
// set OS name as HTTP agent, java will append java version
Properties props = System.getProperties();
diff --git a/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/config/ConfigPlugin.java b/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/config/ConfigPlugin.java
index 6b361634..2d67a217 100644
--- a/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/config/ConfigPlugin.java
+++ b/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/config/ConfigPlugin.java
@@ -42,14 +42,14 @@ import org.diylc.lang.Language;
import org.diylc.swing.ActionFactory;
import org.diylc.swing.ISwingUI;
import org.diylc.utils.IconLoader;
-import org.diylc.utils.ResourceLoader;
+import org.diylc.utils.ResourceUtils;
/**
* Controls configuration menu.
*
* @author Branislav Stojkovic
*/
-public class ConfigPlugin implements IPlugIn {
+public class ConfigPlugin implements IPlugIn {
private static final Logger LOG = Logger.getLogger(ConfigPlugin.class);
@@ -64,7 +64,8 @@ public class ConfigPlugin implements IPlugIn {
public static final String TABBED_TOOLBAR = "Tabbed Toolbar";
private static final String LANGUAGE_MENU = LangUtil.translate("Language");
- private static final String LANG_RESTART = LangUtil.translate("Language selection will be applied after the application is restarted.");
+ private static final String LANG_RESTART = LangUtil.translate("Language selection will be applied after the application is restarted.");
+ public static final String THEMES_DIR = "themes";
private ISwingUI swingUI;
@@ -170,8 +171,8 @@ public class ConfigPlugin implements IPlugIn {
ActionFactory.getInstance()
.createConfigAction(plugInPort, "Sticky Points", IPlugInPort.STICKY_POINTS_KEY, true), CONFIG_MENU);
- File[] themeFiles = ResourceLoader.getFiles("themes");
- if (themeFiles != null && themeFiles.length > 0) {
+ List themeFiles = ResourceUtils.getResourceFiles(THEMES_DIR);
+ if (!themeFiles.isEmpty()) {
XStream xStream = new XStream(new DomDriver());
xStream.addPermission(AnyTypePermission.ANY);
swingUI.injectSubmenu(THEME_MENU, IconLoader.Pens.getIcon(), CONFIG_MENU);
diff --git a/diylc/install-dependencies.bat b/diylc/install-dependencies.bat
index 112a9c16..067f4deb 100644
--- a/diylc/install-dependencies.bat
+++ b/diylc/install-dependencies.bat
@@ -13,7 +13,7 @@ REM Define the group ID for all local dependencies
set GROUP_ID=org.diylc.local
REM List of module lib directories to process
-set MODULES=diylc-core diylc-library diylc-swing
+set MODULES=diylc-swing
echo Processing dependencies...
echo.
diff --git a/diylc/install-dependencies.sh b/diylc/install-dependencies.sh
index 01d5dd4d..71ee8b09 100755
--- a/diylc/install-dependencies.sh
+++ b/diylc/install-dependencies.sh
@@ -12,7 +12,7 @@ echo
GROUP_ID="org.diylc.local"
# List of module lib directories to process
-MODULES=("diylc-core" "diylc-library" "diylc-swing")
+MODULES=("diylc-swing")
echo "Processing dependencies..."
echo