Full Changelog: v0.2.0...v0.3.0
- Build: introduced Gradle version catalog
gradle/libs.versions.tomlto centralize dependency versions across modules. - Build: updated Gradle wrapper to 9.3.1 and OWASP dependency check plugin to 12.2.0.
- Build: bumped
se.alipsa.nexus-release-pluginto 2.0.1 across modules. - Console: moved implementation to
se.alipsa.gi.console.InOutand leftse.alipsa.gi.txt.InOutas a deprecated shim. - Console: clipboard operations now log and no-op/return null when running headless.
- Console:
chooseFileandchooseDirnow returnnullwhen user enters empty input (cancellation). - Console: fixed
chooseDirprompt formatting to matchchooseFilestyle. - Logging: switched from direct SLF4J usage to
se.alipsa.matrix.core.util.Loggerfor better script-friendly output. - Swing: SVG display now uses matrix-charts
ChartToSwing/SvgPanel, removing the Batik dependency. - Swing: fixed IntelliJ type inference for extension filters and added empty-matrix handling.
- Swing: dialog methods (
promptYearMonth,promptDate,promptSelect,promptPassword,prompt) now correctly returnnullwhen user cancels. - Swing: changed
.equals()to==for content type comparison (idiomatic Groovy). - JavaFX: avoid deadlocks by running blocking dialogs/clipboard access directly on the FX thread and validate initial directories.
- JavaFX: guard empty grids in
Viewerand return null for empty clipboard file lists. - Common: content type detection now handles non-file classpath resources and added a test for classpath names.
- Common:
FileTransferable.getTransferData()now validates the DataFlavor and throwsUnsupportedFlavorExceptionfor unsupported flavors. - Common:
FileTransferableandImageTransferableconstructors now validate for null input. - Common:
promptSelect(String, Collection)now uses "Select" as title instead of duplicating the message. - Common: removed dead/commented-out Flexmark code from
AbstractInOut. - Docs: added FX threading and chooser behavior notes in
docs/API-Guide.md.