JavaFX editor for the ownNote files locally stored in ownCloud folder
BSD-3-CLAUSE License
JavaFX editor for the ownNote files locally stored in ownCloud/nextCloud folder.
Aim was to mimic the behaviour of the former ownNote web client using JavaFX and working directly on the ownNote files in a local directory. This code does NOT update any of the SQL tables used by owNote - but so far this doesn't seem to impact anything.
Note on v6.0: After the "classic" look & feel from ownNotes has been removed it might actually be time to rename the whole project to something like "htmlNoteEditor". But we have enough changes for one major release...
Note on v5.0: A lot has happened since the initial version of the editor. ownNotes / nextNotes project for NextCloud seems to have died and there is no need anymore to try to mimic their behaviour and notes / groups handling. Therefore, its time for some re-design :-)
Note on Java 11: After various tweaks to build.gradle this now also runs under Java 11. See e.g. https://github.com/kelemen/netbeans-gradle-project/issues/403 an some of the discussion that where required to get there... Unfortunately, there is one issue with the TestFX framework when trying to drag & drop notes. Since I wasn't able to fix this I had to disable the "testDragNote()" test step.
V 6.1
V 6.0: Getting rid of old stuff
Important: Once in a while I can see log messages that indicate mess-ups when changing task status in text & tasklist. But so far nothing the note text has never been mixed up...
V 5.2: Fixes
V 5.1: KANBAN is here
V 5.0: Styling up for Christmas...
V 4.8: Tags!
V 4.7: Tasks!
V 4.6: Fixes
V 4.5: Check names
V 4.4: Updated TinyMCE
V 4.3: Find in files
V 4.2: Java11
V 4.1: Filter notes
V 4.0: Lets go TinyMCE
Note on Java 10: Minor updates where made to make this run under Java 10. In OwnNoteHTMLEditor a non-exported API from com.sun.javafx.scene.control.ContextMenuContent is used to delete unwanted ContextMenu entries like "Reload page". To make this work under Java 10 as well the trick from https://stackoverflow.com/a/47265102 had to be used in the compile options.
V 3.1: Minor changes
V 3.0: All You Ever Wanted
V 2.1: Added TestFX test harness
V 2.0: Various improvements have been added:
See https://github.com/Fmstrat/ownnote for ownNote.
DISCLAIMER: This has been tested randomly with my ownNote files. Use at your own risk!
Make sure you have Java 8 SDK installed.
You can try to run and use this application by
./gradlew run
.If you want to, you can reference your locally synced notes dir directly with a parameter like
--ownCloudDir="C:\owncloudpath\Notes"
To change to look and feel you can use
--lookAndFeel="classic" / "groupTabs" / "tagTree"
Both things can also be changed using the UI.
./gradlew installDist
The tree will be in build/install
.
NOTE: Not sure if this still works...
./gradlew createApp
The resulting application will be in the directory build/macApp
.
NOTE: Not sure if this still works...
./gradlew createDmg
The resulting file will be in the directory build/distributions
.
Of course, such a project depends on the results of many others! I've tried to add comments with links to stackoverflow, ... wherever I have re-used the ideas and code of others. In case I have forgotten someone: that was only by accident/incompetency but never intentionally. I'm grateful for anyone that provides his/her results for public use!
Explicit dependencies:
tf.JavaHelper:JavaHelper:1.15 https://github.com/ThomasDaheim/JavaHelper, not available via maven <- any help appreciated on how to best include as sub/meta/... repository
'commons-cli:commons-cli:1.5.0'
'commons-io:commons-io:2.11.0'
'org.apache.commons:commons-lang3:3.12.0'
'org.apache.commons:commons-text:1.10.0'
'commons-codec:commons-codec:1.15'
'com.thoughtworks.xstream:xstream:1.4.19'
'org.unbescape:unbescape:1.1.6.RELEASE'
'org.jfxtras:jfxtras-controls:1.4.19'
'org.jfxtras:jmetro:11.6.16'
'org.controlsfx:1.4.19'
'de.jensd:fontawesomefx:8.9'
'org.testfx:testfx-junit:4.0.+'
'org.testfx:testfx-core:4.0.+'
'org.junit.jupiter:junit-jupiter-api:5.9.1'
'com.github.stefanbirkner:system-lambda:3.2.1'