An advanced book explorer/catalog application written in Java and Kotlin.

Overview

Boomega icon

Boomega Unstable stage

License Issues Issues closed Last commit

An advanced book explorer/catalog application written in Java and Kotlin.

Screenshot

Features

  • Cross-platform
  • Dark/Light theme, modern UI
  • Multiple UI languages
  • Exporting to several formats like Excel Spreadsheets, JSON, etc...
  • Custom notes with Markdown support
  • Google Books synchronization
  • Customizable key-bindings
  • Plugin support (see plugin guide)
  • ...and more!

📄 Documentation

The detailed user guide is available here.

⬇️ Download

Platform Downloads Version GitHub Release Date

Windows

(64-bit)

Linux

(64-bit)

MacOS

(64-bit)

Help wanted

Java archive (.jar)

Source code

Java version Kotlin version Top language Gradle Gui GitHub repo size

  • The repo has two important branches:
    • master - for stable versions
    • dev - for developing the app further
  • The code is written in Java and Kotlin mixed.
  • The GUI toolkit used is JavaFX
  • The app targets Java 16+ but the project is unmodularized
  • The build tool used is Gradle
  • Want to contribute? See the contribution guideline.

🔨 Build

The recommended IDE for building this project is IntelliJ Idea.

Build requirements

  • JDK 16+ with JavaFX binaries (Zulu or Liberica recommended)

Build manually (without using an IDE)

If you want to run the project, simply use gradlew run.
To build a fat jar, use gradlew shadowJar.
To build executable binaries, use gradlew jpackage (see distribution guideline)

Used third-party libraries

Support

If you like this project, give a !

Buy Me a Coffee at ko-fi.com

📄 License

This software is licensed under the GNU General Public License v3.

Comments
  • Notes editor not working on Linux (deb)

    Notes editor not working on Linux (deb)

    When the application is installed as a deb package, the following problem occures when I try using the notes editor:

    14:04:01.996 58111 [JavaFX Application Thread] ERROR c.d.b.e.UncaughtExceptionHandler - Uncaught exception occurred
    java.lang.NoClassDefFoundError: Could not initialize class org.fxmisc.richtext.ParagraphText
    	at org.fxmisc.richtext.ParagraphBox.<init>(ParagraphBox.java:98)
    	at org.fxmisc.richtext.GenericStyledArea.createCell(GenericStyledArea.java:1813)
    	at org.fxmisc.richtext.GenericStyledArea.lambda$new$11(GenericStyledArea.java:764)
    	at org.fxmisc.flowless.CellPool.getCell(CellPool.java:28)
    	at org.fxmisc.flowless.CellListManager.cellForItem(CellListManager.java:90)
    	at org.reactfx.collection.MappedList.get(MappedList.java:27)
    	at org.reactfx.collection.MemoizationListImpl.get(MemoizationList.java:99)
    	at org.fxmisc.flowless.CellListManager.getCell(CellListManager.java:73)
    	at org.fxmisc.flowless.CellPositioner.getSizedCell(CellPositioner.java:217)
    	at org.fxmisc.flowless.CellPositioner.placeStartAt(CellPositioner.java:127)
    	at org.fxmisc.flowless.Navigator.visit(Navigator.java:131)
    	at org.fxmisc.flowless.StartOffStart.accept(TargetPosition.java:85)
    	at org.fxmisc.flowless.Navigator.layoutChildren(Navigator.java:80)
    	at javafx.graphics/javafx.scene.Parent.layout(Unknown Source)
    	at org.fxmisc.flowless.VirtualFlow.layoutChildren(VirtualFlow.java:257)
    	at javafx.graphics/javafx.scene.Parent.layout(Unknown Source)
    	at org.fxmisc.flowless.VirtualFlow.visibleCells(VirtualFlow.java:230)
    	at org.fxmisc.richtext.GenericStyledArea.<init>(GenericStyledArea.java:801)
    	at org.fxmisc.richtext.StyledTextArea.<init>(StyledTextArea.java:33)
    	at org.fxmisc.richtext.StyledTextArea.<init>(StyledTextArea.java:45)
    	at org.fxmisc.richtext.StyleClassedTextArea.<init>(StyleClassedTextArea.java:21)
    	at org.fxmisc.richtext.StyleClassedTextArea.<init>(StyleClassedTextArea.java:34)
    	at org.fxmisc.richtext.CodeArea.<init>(CodeArea.java:36)
    	at com.dansoftware.mdeditor.MarkdownCodeArea.<init>(MarkdownCodeArea.java:6)
    	at com.dansoftware.mdeditor.EditorArea.<init>(EditorArea.java:13)
    	at com.dansoftware.mdeditor.MarkdownEditorSkin.buildEditorArea(MarkdownEditorSkin.java:69)
    	at com.dansoftware.mdeditor.MarkdownEditorSkin.<init>(MarkdownEditorSkin.java:22)
    	at com.dansoftware.mdeditor.MarkdownEditorControl.createDefaultSkin(MarkdownEditorControl.java:36)
    	at javafx.controls/javafx.scene.control.Control.doProcessCSS(Unknown Source)
    	at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Unknown Source)
    	at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(Unknown Source)
    	at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Parent.doProcessCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Unknown Source)
    	at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(Unknown Source)
    	at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Parent.doProcessCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Unknown Source)
    	at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(Unknown Source)
    	at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Parent.doProcessCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Unknown Source)
    	at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(Unknown Source)
    	at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(Unknown Source)
    	at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSS(Unknown Source)
    	at javafx.controls/javafx.scene.control.Control.doProcessCSS(Unknown Source)
    	at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Unknown Source)
    	at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(Unknown Source)
    	at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    	at javafx.graphics/javafx.scene.Scene.doCSSPass(Unknown Source)
    	at javafx.graphics/javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source)
    	at javafx.graphics/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Unknown Source)
    	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
    	at javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Unknown Source)
    	at javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
    	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(Unknown Source)
    	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(Unknown Source)
    	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(Unknown Source)
    	at java.base/java.lang.Thread.run(Unknown Source)
    
    bug 
    opened by Dansoftowner 2
  • Record editor content is not shown if it was disabled

    Record editor content is not shown if it was disabled

    So, if the record editor is disabled, and i open the record view and enable it, the content will not be shown. If i enable it and reopen the view again, its fine.

    bug help wanted 
    opened by Dansoftowner 2
  • UnsatisfiedLinkError when running the program as a native app on Windows

    UnsatisfiedLinkError when running the program as a native app on Windows

    I noticed an error in the native Boomega release. The interesting thing was that the app worked on other computers but not on mine.

    The gui window didn't work: image

    And the error was:

    java.lang.UnsatisfiedLinkError: 'boolean com.sun.javafx.font.directwrite.OS.CoInitializeEx(int)'
            at javafx.graphics/com.sun.javafx.font.directwrite.OS.CoInitializeEx(Native Method)
            at javafx.graphics/com.sun.javafx.font.directwrite.DWFactory.getWICFactory(Unknown Source)
            at javafx.graphics/com.sun.javafx.font.directwrite.DWGlyph.createBitmap(Unknown Source)
            at javafx.graphics/com.sun.javafx.font.directwrite.DWGlyph.getCachedBitmap(Unknown Source)
            at javafx.graphics/com.sun.javafx.font.directwrite.DWGlyph.getD2DMask(Unknown Source)
            at javafx.graphics/com.sun.javafx.font.directwrite.DWGlyph.getPixelData(Unknown Source)
            at javafx.graphics/com.sun.prism.impl.GlyphCache.getCachedGlyph(Unknown Source)
            at javafx.graphics/com.sun.prism.impl.GlyphCache.render(Unknown Source)
            at javafx.graphics/com.sun.prism.impl.ps.BaseShaderGraphics.drawString(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGText.renderText(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGText.renderContent2D(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGShape.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NodeEffectInput.getImageDataForBoundedNode(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NodeEffectInput.filter(Unknown Source)
            at javafx.graphics/com.sun.scenario.effect.FilterEffect.filter(Unknown Source)
            at javafx.graphics/com.sun.scenario.effect.Offset.filter(Unknown Source)
            at javafx.graphics/com.sun.scenario.effect.Merge.filter(Unknown Source)
            at javafx.graphics/com.sun.scenario.effect.DelegateEffect.filter(Unknown Source)
            at javafx.graphics/com.sun.scenario.effect.impl.prism.PrEffectHelper.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.EffectFilter.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.renderEffect(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.renderForClip(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.renderRectClip(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.renderClip(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
            at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
            at javafx.graphics/com.sun.javafx.tk.quantum.ViewPainter.doPaint(Unknown Source)
            at javafx.graphics/com.sun.javafx.tk.quantum.ViewPainter.paintImpl(Unknown Source)
            at javafx.graphics/com.sun.javafx.tk.quantum.PresentingPainter.run(Unknown Source)
            at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
            at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
            at javafx.graphics/com.sun.javafx.tk.RenderJob.run(Unknown Source)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Unknown Source)
            at java.base/java.lang.Thread.run(Unknown Source)
    

    Then I enabled more verbose logging by -Djavafx.verbose=true and -Dprism.verbose=true. And I've got interesting results.

    I noticed that most of the DLLs weren't loaded from the local java runtime but from the system java distribution (btw a ZuluFX 11) that was located on the PATH.

    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-console-l1-1-0.dll from java.library.path
    System.loadLibrary(api-ms-win-core-console-l1-2-0) succeeded
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-datetime-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-debug-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-errorhandling-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-file-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-file-l1-2-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-file-l2-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-handle-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-heap-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-interlocked-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-libraryloader-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-localization-l1-2-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-memory-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-namedpipe-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-processenvironment-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-processthreads-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-processthreads-l1-1-1.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-profile-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-rtlsupport-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-string-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-synch-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-synch-l1-2-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-sysinfo-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-timezone-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-core-util-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-conio-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-convert-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-environment-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-filesystem-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-heap-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-locale-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-math-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-multibyte-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-private-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-process-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-runtime-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-stdio-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-string-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-time-l1-1-0.dll from java.library.path
    Loaded C:\Program Files\Java\zulu11.37.19-ca-fx-jdk11.0.6-win_x64\bin\api-ms-win-crt-utility-l1-1-0.dll from java.library.path
    Loaded C:\WINDOWS\system32\ucrtbase.dll from java.library.path
    Loaded C:\WINDOWS\system32\vcruntime140.dll from java.library.path
    Loaded C:\WINDOWS\system32\vcruntime140_1.dll from java.library.path
    Loaded C:\WINDOWS\system32\msvcp140.dll from java.library.path
    

    After I removed the Java 11 distribution from my PATH, the app loaded the DLLs from its local runtime and worked 100% fine.

    System.loadLibrary(api-ms-win-core-console-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-console-l1-2-0) succeeded
    System.loadLibrary(api-ms-win-core-datetime-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-debug-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-errorhandling-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-file-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-file-l1-2-0) succeeded
    System.loadLibrary(api-ms-win-core-file-l2-1-0) succeeded
    System.loadLibrary(api-ms-win-core-handle-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-heap-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-interlocked-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-libraryloader-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-localization-l1-2-0) succeeded
    System.loadLibrary(api-ms-win-core-memory-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-namedpipe-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-processenvironment-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-processthreads-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-processthreads-l1-1-1) succeeded
    System.loadLibrary(api-ms-win-core-profile-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-rtlsupport-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-string-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-synch-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-synch-l1-2-0) succeeded
    System.loadLibrary(api-ms-win-core-sysinfo-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-timezone-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-core-util-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-conio-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-convert-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-environment-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-filesystem-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-heap-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-locale-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-math-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-multibyte-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-private-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-process-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-runtime-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-stdio-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-string-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-time-l1-1-0) succeeded
    System.loadLibrary(api-ms-win-crt-utility-l1-1-0) succeeded
    Loaded C:\WINDOWS\system32\ucrtbase.dll from java.library.path
    Loaded C:\WINDOWS\system32\vcruntime140.dll from java.library.path
    Loaded C:\WINDOWS\system32\vcruntime140_1.dll from java.library.path
    Loaded C:\WINDOWS\system32\msvcp140.dll from java.library.path
    
    bug 
    opened by Dansoftowner 1
  • Can't execute Google Book Queries

    Can't execute Google Book Queries

    javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    	at java.base/sun.security.ssl.Alert.createSSLException(Unknown Source)
    	at java.base/sun.security.ssl.Alert.createSSLException(Unknown Source)
    	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
    	at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Unknown Source)
    	at java.base/sun.security.ssl.TransportContext.dispatch(Unknown Source)
    	at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source)
    	at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
    	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source)
    	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    	at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
    	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
    	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    	at java.base/java.net.URL.openStream(Unknown Source)
    	at com.dansoftware.boomega.service.googlebooks.SingleGoogleBookQuery.load(SingleGoogleBookQuery.java:45)
    	at com.dansoftware.boomega.gui.recordview.connection.GoogleBookConnectionView$VolumePullTask.call(GoogleBookConnectionView.kt:219)
    	at com.dansoftware.boomega.gui.recordview.connection.GoogleBookConnectionView$VolumePullTask.call(GoogleBookConnectionView.kt:196)
    	at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
    	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
    	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.base/java.lang.Thread.run(Unknown Source)
    
    

    The interesting thing is that it only occurs when the app runs natively.

    Might help: Received fatal alert: handshake_failure through SSLHandshakeException

    bug 
    opened by Dansoftowner 1
  • Application name on Gnome

    Application name on Gnome

    opened by Dansoftowner 1
  • Save button is not disabled after exiting the record editor

    Save button is not disabled after exiting the record editor

    If I do some changes in the record-editor then I unselect the record (without saving the changes), the save button is not disabled just after clicking it again. (It also gives an exception, of course)

    bug 
    opened by Dansoftowner 1
  • Using a Markdown-editor-control instead of HTML Editor

    Using a Markdown-editor-control instead of HTML Editor

    A markdown-editor should be used instead of a HTMLEditor for the notes. The javafx HTMLEditor is not appropriate because:

    • Hard to style
    • Always has a white background, so it looks ugly in a dark-theme
    • Buggy

    The markdown editor should have an EditorArea and a PreviewArea. These can be switched any time. Like the Intellij markdown editor: image

    Possible libraries:

    enhancement 
    opened by Dansoftowner 1
  • First time-run theme bug

    First time-run theme bug

    If I choose a not os synchronized theme in the FirstTimeDialog, the theme switches, but the os theme synchronization continues. The "funny" thing is that it first occured after restructuring the ThemeSegment (removing fxml etc..).

    bug high-priority 
    opened by Dansoftowner 1
  • Login faliure on Windows when running the app as a jar

    Login faliure on Windows when running the app as a jar

    Description When I try to login, an unexpected error occurs.

    To Reproduce Run the app on Windows as a Jar (with the help of the runAsJar gradle task).

    Screenshots image

    The stacktrace(s):

    java.lang.NoClassDefFoundError: org/bridj/ValuedEnum
    	at com.nativejavafx.taskbar.TaskbarProgressbarFactory.getTaskbarProgressbarImpl(TaskbarProgressbarFactory.java:31)
    	at com.nativejavafx.taskbar.TaskbarProgressbarFactory.getTaskbarProgressbar(TaskbarProgressbarFactory.java:50)
    	at com.dansoftware.boomega.gui.base.BaseView.getTaskbarProgressbar(BaseView.java:405)
    	at com.dansoftware.boomega.gui.base.BaseView.stopProgress(BaseView.java:397)
    	at com.dansoftware.boomega.gui.login.LoginBox$loginRequest$$inlined$login$1$3.handle(Concurrency.kt:81)
    	at com.dansoftware.boomega.gui.login.LoginBox$loginRequest$$inlined$login$1$3.handle(Concurrency.kt:55)
    	at javafx.base@18/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
    	at javafx.base@18/javafx.event.Event.fireEvent(Unknown Source)
    	at javafx.graphics@18/javafx.concurrent.EventHelper.fireEvent(Unknown Source)
    	at javafx.graphics@18/javafx.concurrent.Task.fireEvent(Unknown Source)
    	at javafx.graphics@18/javafx.concurrent.Task.setState(Unknown Source)
    	at javafx.graphics@18/javafx.concurrent.Task$TaskCallable.lambda$call$1(Unknown Source)
    	at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
    	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
    	at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source)
    	at javafx.graphics@18/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    	at javafx.graphics@18/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    	at javafx.graphics@18/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
    	at java.base/java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: org.bridj.ValuedEnum
    	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    	... 25 more
    
    java.lang.NoClassDefFoundError: org/bridj/ValuedEnum
    	at com.nativejavafx.taskbar.TaskbarProgressbarFactory.getTaskbarProgressbarImpl(TaskbarProgressbarFactory.java:31)
    	at com.nativejavafx.taskbar.TaskbarProgressbarFactory.getTaskbarProgressbar(TaskbarProgressbarFactory.java:50)
    	at com.dansoftware.boomega.gui.base.BaseView.getTaskbarProgressbar(BaseView.java:405)
    	at com.dansoftware.boomega.gui.base.BaseView.showIndeterminateProgress(BaseView.java:372)
    	at com.dansoftware.boomega.gui.login.LoginBox$loginRequest$$inlined$login$1$1.handle(Concurrency.kt:81)
    	at com.dansoftware.boomega.gui.login.LoginBox$loginRequest$$inlined$login$1$1.handle(Concurrency.kt:63)
    	at javafx.base@18/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
    	at javafx.base@18/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
    	at javafx.base@18/javafx.event.Event.fireEvent(Unknown Source)
    	at javafx.graphics@18/javafx.concurrent.EventHelper.fireEvent(Unknown Source)
    	at javafx.graphics@18/javafx.concurrent.Task.fireEvent(Unknown Source)
    	at javafx.graphics@18/javafx.concurrent.Task.setState(Unknown Source)
    	at javafx.graphics@18/javafx.concurrent.Task$TaskCallable.lambda$call$0(Unknown Source)
    	at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
    	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
    	at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source)
    	at javafx.graphics@18/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    	at javafx.graphics@18/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    	at javafx.graphics@18/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
    	at java.base/java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: org.bridj.ValuedEnum
    	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    	... 25 more
    
    
    bug 
    opened by Dansoftowner 0
  • Data protection mechanism for storing passwords locally

    Data protection mechanism for storing passwords locally

    Storing the passwords of auto-login databases plainly in the configuration file is dangerous.

    On Windows, there is something called as DPAPI (Data Protection API) that can help in this situation. On other systems there should be alternatives too.

    The question is, how to use the DPAPI in java. Several wrappers available like:

    Some help in this topic:


    Another way of dealing with this would be that the user have to memorize a shorter crypto-key ("master password") in place of the password.

    enhancement high-priority 
    opened by Dansoftowner 0
Releases(v0.7.5)
Owner
Daniel Gyoerffy
A JVM lover.
Daniel Gyoerffy
Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE 8 and provides the functionalities to use and handle easily Tiles in your JavaFX application.

Lib-Tile Intention Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE and provides the functionalities to use and handle easily Tile

Peter Rogge 13 Apr 13, 2022
An advanced KeyListener for Java Swing UI.

keystrokelistener An advanced KeyListener for Java Swing UI. In Swing, We don't have any default way of mapping a set of KeyStrokes to a specific task

omega ui 1 Jan 22, 2022
PostgreSQL is the world's most advanced open source database. Also, PostgreSQL is suitable for Event Sourcing. This repository provides a sample of event sourced system that uses PostgreSQL as event store.

Event Sourcing with PostgreSQL Introduction Example Domain Event Sourcing and CQRS 101 State-Oriented Persistence Event Sourcing CQRS Advantages of CQ

Evgeniy Khyst 146 Dec 20, 2022
Aether - An advanced sync plugin for Minecraft.

Aether Aether is an advanced sync plugin for Minecraft. Aether uses MongoDB for storing player information. Found a issue(s)? Report them in our issue

 grape 6 Sep 6, 2022
XR3Player - The MOST ADVANCED JavaFX Media Player

Support me joining PI Network app with invitation code AlexKent I am in search for developers to keep on where i left XR3Player :) XR3Player ( Downloa

GOXR3PLUS STUDIO 613 Dec 17, 2022
Kubed - A port of the popular Javascript library D3.js to Kotlin/JavaFX.

Kubed: A Kotlin DSL for data visualization Kubed is a data visualization DSL embedded within the Kotlin programming language. Kubed facilitates the cr

Brian Hudson 71 Dec 28, 2022
Lightweight JavaFX Framework for Kotlin

TornadoFX JavaFX Framework for Kotlin Important: TornadoFX is not yet compatible with Java 9/10 Oracle is intending to decouple JavaFX from the JDK. W

Edvin Syse 3.6k Dec 29, 2022
组件化、极简依赖、模块单独运行、mvvm、kotlin、koin、jetpack(livedata、viewmodel、lifecycle、viewbinding、...)、buildsrc、coroutines

相关内容 组件化、支持模块单独运行 androidx mvvm kotlin koin jetpack(livedata、viewmodel、lifecycle、viewbinding、...) buildsrc coroutines liveeventbus ... 项目用到的依赖库 APK下载体

panyy 51 Jan 3, 2023
Lightweight installer written in java, made for minecraft mods, The installer uses JPanel and uses a URL to install to the specific area (Discord URL's work the best i've seen)

InstallerForJava Lightweight installer written in java, made for minecraft mods, The installer uses JPanel and uses a URL to install to the specific a

null 18 Dec 9, 2022
A portable 8086 emulator written in Java and JavaFX

8086.java A portable 8086 emulator written in JavaFX Environment Variables To run this project, you will need to add the following environment variabl

David Velho 4 Dec 1, 2022
JDKMon - A little tool written in JavaFX that monitors your installed JDK's and inform you about updates

JDKMon JDKMon Home JDKMon is a little tool written in JavaFX that tries to detect all JDK's installed on your machine and will inform you about new up

Gerrit Grunwald 246 Jan 3, 2023
A prayer times (Adhan) app for Windows and GNU/Linux written in JavaFX.

Salawat Salawat - سالوات A prayer times and Adhan application for Windows, macOS and GNU/Linux written in Java Download » View Demo · Report Bug · Req

DarkBlackChocolate 8 Nov 17, 2022
A cross-platform interface for FutureRestore, written in Java with Swing

Futurerestore GUI A GUI implementation for FutureRestore written in Java. Installation Download from releases. No Java download required (it's bundled

null 428 Dec 30, 2022
Four - An engine for MUDs, written in Java

Four This is Four, an engine for MUDs, written in Java! The project was initiated by nijakow and mhahnFr to serve as the basis for text-based Multi-Us

null 5 May 23, 2022
Tetromino is a Tetris-like game written in Java with JavaFX.

Tetromino Link to original project in university's GitLab Tetromino is a Tetris-like game written in Java with JavaFX made by Jonas and myself during

Tobias Helmrich 2 Dec 13, 2021
Everest - an upcoming REST API testing client written in JavaFX

Everest (formerly RESTaurant) is an upcoming REST API testing client written in JavaFX. Everest running on Windows 10. Why Everest? Everest is written

Rohit Awate 810 Dec 27, 2022
A simple JavaFX application to load, save and edit a CSV file and provide a JSON configuration for columns to check the values in the columns.

SmartCSV.fx Description A simple JavaFX application to load, save and edit a CSV file and provide a JSON Table Schema for columns to check the values

Andreas Billmann 74 Oct 24, 2022
Android Resource Manager application to manage and analysis your app resources with many features like image resize, Color, Dimens and code Analysis

AndroidResourceManager Cross-Platform tools to manage your resources as an Android Developer, AndroidResourceManager - ARM provide five main services

Amr Hesham 26 Nov 16, 2022
A desktop application designed to serve the co-curricular uses of students, clubs and forums, and admins of United International University.

ECA Management System Made by "Team Apocalypse": S M Jishanul Islam Sadia Ahmmed Sahid Hossain Mustakim Description A desktop application designed to

S M Jishanul Islam 2 Jan 31, 2022