diff --git a/diylc/.gitignore b/diylc/.gitignore index 1b0b98c5..60086ef9 100644 --- a/diylc/.gitignore +++ b/diylc/.gitignore @@ -1,17 +1,149 @@ -# Eclipse -.classpath -.project -.settings/ - -# Intellij -.idea/ -*.iml -*.iws - -# Mac +# Reference: https://github.com/github/gitignore +# From: https://gist.github.com/edesdan/6bb43343740bcd54ef0f56a384a2f66f + +###################### +###### Mac OS X ###### +###################### + +# Folder view configuration files .DS_Store - -# Maven -**/log/ +Desktop.ini + +# Thumbnail cache files +._* +Thumbs.db + +# Files that might appear on external disks +.Spotlight-V100 +.Trashes + +###################### +###### Java ###### +###################### + +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +###################### +###### Gradle ###### +###################### + +.gradle +build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + +###################### +###### Intellij ###### +###################### + +# Created by https://www.gitignore.io/api/intellij +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-debug/ + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/sonarlint + +# End of https://www.gitignore.io/api/intellij + +###################### +###### Maven ###### +###################### + **/target/ -**/build/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties + +# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) +!/.mvn/wrapper/maven-wrapper.jar diff --git a/diylc/diylc-core/pom.xml b/diylc/diylc-core/pom.xml index 1e7f4145..55b6c015 100644 --- a/diylc/diylc-core/pom.xml +++ b/diylc/diylc-core/pom.xml @@ -75,16 +75,22 @@ org.diylc.local app-framework 1.0 + system + ${project.basedir}/../lib/app-framework.jar org.diylc.local gerber-writer-api-1.0.0 1.0 + system + ${project.basedir}/../lib/gerber-writer-api-1.0.0.jar org.diylc.local java-http-proxy 1.0 + system + ${project.basedir}/../lib/java-http-proxy.jar org.mockito 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 6ac63270..b6e6587e 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 @@ -1569,8 +1569,8 @@ public class Presenter implements IPlugInPort, IConfigListener { double centerY = (maxY + minY) / 2; if (snapToGrid) { - CalcUtils.roundToGrid(centerX, this.currentProject.getGridSpacing()); - CalcUtils.roundToGrid(centerY, this.currentProject.getGridSpacing()); + centerX = CalcUtils.roundToGrid(centerX, this.currentProject.getGridSpacing()); + centerY = CalcUtils.roundToGrid(centerY, this.currentProject.getGridSpacing()); } return new Point2D.Double(centerX, centerY); diff --git a/diylc/diylc-core/src/main/resources/update.xml b/diylc/diylc-core/src/main/resources/update.xml index 452c429a..c4834eaf 100644 --- a/diylc/diylc-core/src/main/resources/update.xml +++ b/diylc/diylc-core/src/main/resources/update.xml @@ -272,12 +272,19 @@ IMPROVEMENT - Improved robustness of series/parallel graph construction code used in circuit analysis + Improved robustness of series/parallel graph construction code used in circuit analysis + + IMPROVEMENT + Omit boards, wires, traces, terminals, etc from Spice netlist output BUG_FIX Moving selected components with a mouse doesn't register file modification action and doesn't enable Undo action + + BUG_FIX + Rotating selected components sometimes wacks the alignment off the grid + https://github.com/bancika/diy-layout-creator/releases diff --git a/diylc/diylc-library/lib/app-framework.jar b/diylc/diylc-library/lib/app-framework.jar deleted file mode 100644 index 683a864c..00000000 Binary files a/diylc/diylc-library/lib/app-framework.jar and /dev/null differ diff --git a/diylc/diylc-library/lib/gerber-writer-api-1.0.0.jar b/diylc/diylc-library/lib/gerber-writer-api-1.0.0.jar deleted file mode 100644 index 09c27e27..00000000 Binary files a/diylc/diylc-library/lib/gerber-writer-api-1.0.0.jar and /dev/null differ diff --git a/diylc/diylc-library/pom.xml b/diylc/diylc-library/pom.xml index b39a53fa..cfc64273 100644 --- a/diylc/diylc-library/pom.xml +++ b/diylc/diylc-library/pom.xml @@ -51,7 +51,7 @@ org.apache.poi poi - 3.5-FINAL + 5.4.0 junit @@ -64,21 +64,29 @@ org.diylc.local app-framework 1.0 + system + ${project.basedir}/../lib/app-framework.jar org.diylc.local gerber-writer-api-1.0.0 1.0 + system + ${project.basedir}/../lib/gerber-writer-api-1.0.0.jar org.diylc.local jep-2.4.1 1.0 + system + ${project.basedir}/../lib/jep-2.4.1.jar org.diylc.local svgSalamander-1.1.2.4 1.0 + system + ${project.basedir}/../lib/svgSalamander-1.1.2.4.jar diff --git a/diylc/diylc-library/src/main/java/org/diylc/netlist/SpiceAnalyzer.java b/diylc/diylc-library/src/main/java/org/diylc/netlist/SpiceAnalyzer.java index 642ca708..d873b294 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/netlist/SpiceAnalyzer.java +++ b/diylc/diylc-library/src/main/java/org/diylc/netlist/SpiceAnalyzer.java @@ -55,9 +55,14 @@ public class SpiceAnalyzer extends AbstractNetlistAnalyzer implements INetlistAn protected Summary summarize(Netlist netlist, Node preferredOutput) throws TreeException { // grab all components that are in the netlist - List> allComponents = netlist.getComponents(); - List groups = netlist.getSortedGroups(); + + List> allComponents = groups.stream() + .flatMap(x -> x.getNodes().stream() + .map(y -> y.getComponent())) + .distinct() + .collect(Collectors.toList()); + int unconnectedIndex = groups.size(); int maxLen = 0; diff --git a/diylc/diylc-swing/lib/app-framework.jar b/diylc/diylc-swing/lib/app-framework.jar deleted file mode 100644 index 683a864c..00000000 Binary files a/diylc/diylc-swing/lib/app-framework.jar and /dev/null differ diff --git a/diylc/diylc-swing/lib/gerber-writer-api-1.0.0.jar b/diylc/diylc-swing/lib/gerber-writer-api-1.0.0.jar deleted file mode 100644 index 09c27e27..00000000 Binary files a/diylc/diylc-swing/lib/gerber-writer-api-1.0.0.jar and /dev/null differ diff --git a/diylc/diylc-swing/lib/java-http-proxy.jar b/diylc/diylc-swing/lib/java-http-proxy.jar deleted file mode 100644 index 9295029e..00000000 Binary files a/diylc/diylc-swing/lib/java-http-proxy.jar and /dev/null differ diff --git a/diylc/diylc-swing/lib/jep-2.4.1.jar b/diylc/diylc-swing/lib/jep-2.4.1.jar deleted file mode 100644 index 0aea3e52..00000000 Binary files a/diylc/diylc-swing/lib/jep-2.4.1.jar and /dev/null differ diff --git a/diylc/diylc-swing/lib/svgSalamander-1.1.2.4.jar b/diylc/diylc-swing/lib/svgSalamander-1.1.2.4.jar deleted file mode 100644 index e825b66b..00000000 Binary files a/diylc/diylc-swing/lib/svgSalamander-1.1.2.4.jar and /dev/null differ diff --git a/diylc/diylc-swing/lib/swing-framework.jar b/diylc/diylc-swing/lib/swing-framework.jar deleted file mode 100644 index 680dc754..00000000 Binary files a/diylc/diylc-swing/lib/swing-framework.jar and /dev/null differ diff --git a/diylc/diylc-swing/pom.xml b/diylc/diylc-swing/pom.xml index 72fcff35..6ae106e5 100644 --- a/diylc/diylc-swing/pom.xml +++ b/diylc/diylc-swing/pom.xml @@ -65,7 +65,7 @@ org.apache.poi poi - 3.5-FINAL + 5.4.0 com.google.guava @@ -118,31 +118,43 @@ org.diylc.local app-framework 1.0 + system + ${project.basedir}/../lib/app-framework.jar org.diylc.local gerber-writer-api-1.0.0 1.0 + system + ${project.basedir}/../lib/gerber-writer-api-1.0.0.jar org.diylc.local java-http-proxy 1.0 + system + ${project.basedir}/../lib/java-http-proxy.jar org.diylc.local jep-2.4.1 1.0 + system + ${project.basedir}/../lib/jep-2.4.1.jar org.diylc.local svgSalamander-1.1.2.4 1.0 + system + ${project.basedir}/../lib/svgSalamander-1.1.2.4.jar org.diylc.local swing-framework 1.0 + system + ${project.basedir}/../lib/swing-framework.jar diff --git a/diylc/diylc-swing/src/main/resources/images/splash_ic.png b/diylc/diylc-swing/src/main/resources/images/splash_ic.png index 013cb706..7501086d 100644 Binary files a/diylc/diylc-swing/src/main/resources/images/splash_ic.png and b/diylc/diylc-swing/src/main/resources/images/splash_ic.png differ diff --git a/diylc/install-dependencies.bat b/diylc/install-dependencies.bat deleted file mode 100644 index 067f4deb..00000000 --- a/diylc/install-dependencies.bat +++ /dev/null @@ -1,63 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -echo =================================================== -echo DIYLC Maven Local Dependency Installer for Windows -echo =================================================== -echo. -echo This script will install all JAR files from the lib directories -echo to your local Maven repository. -echo. - -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-swing - -echo Processing dependencies... -echo. - -for %%m in (%MODULES%) do ( - echo Module: %%m - echo ----------------------- - - if exist "%%m\lib" ( - for %%j in ("%%m\lib\*.jar") do ( - REM Extract filename without extension - set "JAR_FILE=%%j" - set "ARTIFACT_ID=%%~nj" - - echo Installing !ARTIFACT_ID!.jar - - REM Install the JAR to the local Maven repository - call mvn install:install-file ^ - -Dfile="!JAR_FILE!" ^ - -DgroupId=%GROUP_ID% ^ - -DartifactId=!ARTIFACT_ID! ^ - -Dversion=1.0 ^ - -Dpackaging=jar ^ - -DgeneratePom=true ^ - -DcreateChecksum=true - - echo. - ) - ) else ( - echo No lib directory found for %%m - echo. - ) -) - -echo =================================================== -echo All dependencies have been installed! -echo. -echo You can now reference these dependencies in your POM files as: -echo. -echo ^ -echo ^%GROUP_ID%^ -echo ^ARTIFACT_NAME^ -echo ^1.0^ -echo ^ -echo =================================================== - -pause diff --git a/diylc/install-dependencies.sh b/diylc/install-dependencies.sh deleted file mode 100755 index 71ee8b09..00000000 --- a/diylc/install-dependencies.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -echo "===================================================" -echo "DIYLC Maven Local Dependency Installer for Unix" -echo "===================================================" -echo -echo "This script will install all JAR files from the lib directories" -echo "to your local Maven repository." -echo - -# Define the group ID for all local dependencies -GROUP_ID="org.diylc.local" - -# List of module lib directories to process -MODULES=("diylc-swing") - -echo "Processing dependencies..." -echo - -for module in "${MODULES[@]}"; do - echo "Module: $module" - echo "-----------------------" - - if [ -d "$module/lib" ]; then - for jar_file in "$module/lib"/*.jar; do - # Skip if no jar files found - [ -e "$jar_file" ] || continue - - # Extract filename without extension - ARTIFACT_ID=$(basename "$jar_file" .jar) - - echo "Installing $ARTIFACT_ID.jar" - - # Install the JAR to the local Maven repository - mvn install:install-file \ - -Dfile="$jar_file" \ - -DgroupId="$GROUP_ID" \ - -DartifactId="$ARTIFACT_ID" \ - -Dversion=1.0 \ - -Dpackaging=jar \ - -DgeneratePom=true \ - -DcreateChecksum=true - - echo - done - else - echo "No lib directory found for $module" - echo - fi -done - -echo "===================================================" -echo "All dependencies have been installed!" -echo -echo "You can now reference these dependencies in your POM files as:" -echo -echo "" -echo " $GROUP_ID" -echo " ARTIFACT_NAME" -echo " 1.0" -echo "" -echo "===================================================" diff --git a/diylc/diylc-core/lib/app-framework.jar b/diylc/lib/app-framework.jar similarity index 52% rename from diylc/diylc-core/lib/app-framework.jar rename to diylc/lib/app-framework.jar index 683a864c..1103c3ba 100644 Binary files a/diylc/diylc-core/lib/app-framework.jar and b/diylc/lib/app-framework.jar differ diff --git a/diylc/diylc-core/lib/gerber-writer-api-1.0.0.jar b/diylc/lib/gerber-writer-api-1.0.0.jar similarity index 100% rename from diylc/diylc-core/lib/gerber-writer-api-1.0.0.jar rename to diylc/lib/gerber-writer-api-1.0.0.jar diff --git a/diylc/diylc-swing/lib/jar-loader.jar b/diylc/lib/jar-loader.jar similarity index 100% rename from diylc/diylc-swing/lib/jar-loader.jar rename to diylc/lib/jar-loader.jar diff --git a/diylc/diylc-core/lib/java-http-proxy.jar b/diylc/lib/java-http-proxy.jar similarity index 100% rename from diylc/diylc-core/lib/java-http-proxy.jar rename to diylc/lib/java-http-proxy.jar diff --git a/diylc/diylc-library/lib/jep-2.4.1.jar b/diylc/lib/jep-2.4.1.jar similarity index 100% rename from diylc/diylc-library/lib/jep-2.4.1.jar rename to diylc/lib/jep-2.4.1.jar diff --git a/diylc/diylc-library/lib/svgSalamander-1.1.2.4.jar b/diylc/lib/svgSalamander-1.1.2.4.jar similarity index 100% rename from diylc/diylc-library/lib/svgSalamander-1.1.2.4.jar rename to diylc/lib/svgSalamander-1.1.2.4.jar diff --git a/diylc/lib/swing-framework.jar b/diylc/lib/swing-framework.jar new file mode 100644 index 00000000..a2c687fa Binary files /dev/null and b/diylc/lib/swing-framework.jar differ