Posts:
8,052
Registered:
31-Jan-2006
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 13:47
in response to: davidekholm
|
|
|
|
|
Another geek note: After the stream() call, you're processing a Java Stream. It's a very powerful API. Just add parallelStream() to the call chain and the remaining stream will be processed in parallel, i.e. by multiple CPU cores.
I love it when you talk dirty, even when I don't quite understand it.
Have you decided whether to process views before or after earlyinit? It's a toss-up for me, but if it's still after earlyinit, I need to tweak my skins.
Just packing the car for the miserable drive home after three beautiful weeks at the shore. Let me tell you about the New Jersey Turnpike, and even worse, the joy that is the Garden State Parkway....
Even the nor'easter provided a couple of days of amusement. Attached.
|
|
|
Posts:
3,824
Registered:
18-Oct-2002
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 16:44
in response to: JeffTucker
|
|
|
|
|
v38rc11 now available as a beta core update, and the updated text strings are attached here.
Changes:
- Views now properly avoid duplicates (ignores internally linked objects and views)
- Now executes earlyinit AFTER view processing
- Removed Settings - Advanced - Structure (Views is a better way to achieve the same)
- Finalised the custom filter view type. Check it out, including the sample expressions. Really powerful!
- Fixed bug in calculating # of matching objects in recently added and custom filter view UIs
- Improved info on view objects: (Hover mouse over "i" icon at view thumbnail)
|
|
|
Posts:
3,947
Registered:
4-Aug-2006
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 20:47
in response to: davidekholm
|
|
|
|
Just tried the custom filter but when I click on the 'Check size' button it always returns 0. The page for the custom view also has no content. Tried using the presets as well as my own, e.g. obj.comment.length() > 0
obj.Category == category.image
|
|
|
Posts:
3,824
Registered:
18-Oct-2002
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 21:50
in response to: RobM
|
|
|
Just tried the custom filter but when I click on the 'Check size' button it always returns 0. The page for the custom view also has no content. Tried using the presets as well as my own, e.g. obj.comment.length() > 0
obj.Category == category.image
rc13 now out, fixing a few issues. That one, however is probably because you created the view in a folder only containing other views. When a view is created, it sets the current folder as "source" for the objects to be fed to it. After this is done, you're free to move the view to other folders. The view will remember the source folder. You will typically want to create views at the root of the project and then possibly move them to some "views" sub folder.
|
|
|
Posts:
3,824
Registered:
18-Oct-2002
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 21:54
in response to: davidekholm
|
|
|
|
If you hover the mouse over the "i" icon of a view, it will print the path that's the source of it.
|
|
|
Posts:
3,947
Registered:
4-Aug-2006
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 22:03
in response to: davidekholm
|
|
|
Just tried the custom filter but when I click on the 'Check size' button it always returns 0. The page for the custom view also has no content. Tried using the presets as well as my own, e.g. obj.comment.length() > 0
obj.Category == category.image
rc13 now out, fixing a few issues. That one, however is probably because you created the view in a folder only containing other views. When a view is created, it sets the current folder as "source" for the objects to be fed to it. After this is done, you're free to move the view to other folders. The view will remember the source folder. You will typically want to create views at the root of the project and then possibly move them to some "views" sub folder.
Ah, got it. Though the custom view doesn’t work if moved into a folder. If I create it in the root folder it works, but moving it to a views folder results in zero objects found.
Edited by: RobM on 18 Oct 2025, 21:04
Moving it back to the root makes it work again.
|
|
|
Posts:
3,824
Registered:
18-Oct-2002
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 22:06
in response to: RobM
|
|
|
Just tried the custom filter but when I click on the 'Check size' button it always returns 0. The page for the custom view also has no content. Tried using the presets as well as my own, e.g. obj.comment.length() > 0
obj.Category == category.image
rc13 now out, fixing a few issues. That one, however is probably because you created the view in a folder only containing other views. When a view is created, it sets the current folder as "source" for the objects to be fed to it. After this is done, you're free to move the view to other folders. The view will remember the source folder. You will typically want to create views at the root of the project and then possibly move them to some "views" sub folder.
Ah, got it. Though the custom view doesn’t work if moved into a folder. If I create it in the root folder it works, but moving it to a views folder results in zero objects found.
Ah, now I see. I'll rework that so the source folder is remembered, not only while making the album but also while editing a view and hitting that check size button.
|
|
|
Posts:
8,052
Registered:
31-Jan-2006
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 22:06
in response to: davidekholm
|
|
|
|
|
Back from the shore, and sifting through updated files, versions, etc., etc.
Latest RC looks good so far - it's behaving nicely with my skins, at any rate.
One suggest wording change - see attachment. The first part is backwards, and the second is confusing. Should be: Select "Scaled images" under Settings > Images > General > Include, or
select "Copy originals if needed" under Settings > Images > Advanced.
|
|
|
Posts:
3,824
Registered:
18-Oct-2002
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 22:22
in response to: JeffTucker
|
|
|
|
You're right Jeff, will adjust,
but it should be:
Deselect "Originals" under Settings > Images > General > Include, or
select "Copy originals if needed" under Settings > Images > Advanced.
right? Selecting "Images" won't deselect originals. You can have both selected.
|
|
|
Posts:
3,824
Registered:
18-Oct-2002
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 22:23
in response to: RobM
|
|
|
Ah, got it. Though the custom view doesn’t work if moved into a folder. If I create it in the root folder it works, but moving it to a views folder results in zero objects found.
Now fixed in v38rc14
|
|
|
Posts:
8,052
Registered:
31-Jan-2006
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 22:36
in response to: davidekholm
|
|
|
Deselect "Originals" under Settings > Images > General > Include, or....
Yes, that's the guaranteed fix for the underlying problem.
|
|
|
Posts:
3,824
Registered:
18-Oct-2002
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 23:10
in response to: JeffTucker
|
|
|
Updated the sample expressions for the custom filter view. Now it has some nifty expressions to filter for certain keyword combos. Check it out. It uses nice Groovy syntax, or how about: "John" in obj.keywordSet || "Sally" in obj.keywordSet
to filter for objects having "John" or "Sally" as keywords.
BTW, I also made the keyword matching case insensitive for v38
|
|
|
Posts:
3,947
Registered:
4-Aug-2006
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 23:41
in response to: davidekholm
|
|
|
I get an error using obj.containsName("Dor")
with or without an equals true.
error is For object: /benjamin-combs.jpg: java.lang.NullPointerException: Cannot invoke "java.util.Map.containsKey(Object)" because the return value of "se.datadosen.jalbum.AlbumObjectImpl.getNameMap()" is null
at se.datadosen.jalbum.structure.CustomFilterTransformer.eval(CustomFilterTransformer.java:57)
at se.datadosen.jalbum.structure.CustomFilterTransformer.lambda$transform$0(CustomFilterTransformer.java:44)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at se.datadosen.jalbum.TreeCollection$TreeSpliterator.doTryAdvance(TreeCollection.java:214)
at se.datadosen.jalbum.TreeCollection$TreeSpliterator.tryAdvance(TreeCollection.java:207)
at java.base/java.util.Spliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at se.datadosen.jalbum.structure.CustomFilterTransformer.transform(CustomFilterTransformer.java:45)
at se.datadosen.jalbum.structure.Transformer.transform(Transformer.java:15)
at net.jalbum.views.CustomFilterView$UI$1.lambda$actionPerformed$0(CustomFilterView.java:107)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke "java.util.Map.containsKey(Object)" because the return value of "se.datadosen.jalbum.AlbumObjectImpl.getNameMap()" is null
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:334)
at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72)
at java.scripting/javax.script.CompiledScript.eval(Unknown Source)
at se.datadosen.jalbum.structure.CustomFilterTransformer.eval(CustomFilterTransformer.java:54)
... 21 more
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Map.containsKey(Object)" because the return value of "se.datadosen.jalbum.AlbumObjectImpl.getNameMap()" is null
at se.datadosen.jalbum.AlbumObjectImpl.containsName(AlbumObjectImpl.java:1924)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at Script6.run(Script6.groovy:1)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:331)
... 24 more
This however works obj.isIncludeOriginal()
Not sure if the API link will help casual users as the examples use Groovy shortcuts like obj.comment, which might be confusing. I expect most users would probably post a question on how to make a specific custom view.
|
|
|
Posts:
3,947
Registered:
4-Aug-2006
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
18 Oct 25, 23:46
in response to: RobM
|
|
|
|
The custom filter has two entries for 'Has keywords'
|
|
|
Posts:
3,947
Registered:
4-Aug-2006
|
|
|
|
Re: jAlbum 38 release candidate for testing
Posted:
19 Oct 25, 00:20
in response to: RobM
|
|
|
|
The 'Alphabetical view' could maybe do with a reverse order setting.
|
|
|
|
Legend
|
|
Forum admins
|
|
Helpful Answer
|
|
Correct Answer
|
|