Thread Locked This thread is locked - replies are not allowed.



Permlink Replies: 124 - Pages: 9 [ Previous | 1 2 3 4 5 6 7 8 | Next ] - Last Post: 29 Oct 25, 19:50 Last Post By: davidekholm Threads: [ Previous | Next ]
JeffTucker

Posts: 8,052
Registered: 31-Jan-2006
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 13:47   in response to: davidekholm in response to: davidekholm
davidekholm wrote:
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.
davidekholm

Posts: 3,824
Registered: 18-Oct-2002
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 16:44   in response to: JeffTucker in response to: JeffTucker
Attachment texts.properties (88.3 KB)
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)
RobM

Posts: 3,947
Registered: 4-Aug-2006
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 20:47   in response to: davidekholm 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
davidekholm

Posts: 3,824
Registered: 18-Oct-2002
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 21:50   in response to: RobM in response to: RobM
RobM wrote:
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.

davidekholm

Posts: 3,824
Registered: 18-Oct-2002
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 21:54   in response to: davidekholm 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.
RobM

Posts: 3,947
Registered: 4-Aug-2006
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 22:03   in response to: davidekholm in response to: davidekholm
davidekholm wrote:
RobM wrote:
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.
davidekholm

Posts: 3,824
Registered: 18-Oct-2002
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 22:06   in response to: RobM in response to: RobM
RobM wrote:
davidekholm wrote:
RobM wrote:
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.
JeffTucker

Posts: 8,052
Registered: 31-Jan-2006
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 22:06   in response to: davidekholm in response to: davidekholm
Attachment ss012931.png (12.0 KB)
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.
davidekholm

Posts: 3,824
Registered: 18-Oct-2002
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 22:22   in response to: JeffTucker 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.
davidekholm

Posts: 3,824
Registered: 18-Oct-2002
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 22:23   in response to: RobM in response to: RobM
RobM wrote:
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
JeffTucker

Posts: 8,052
Registered: 31-Jan-2006
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 22:36   in response to: davidekholm in response to: davidekholm
davidekholm wrote:
Deselect "Originals" under Settings > Images > General > Include, or....

Yes, that's the guaranteed fix for the underlying problem.
davidekholm

Posts: 3,824
Registered: 18-Oct-2002
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 23:10   in response to: JeffTucker 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
RobM

Posts: 3,947
Registered: 4-Aug-2006
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 23:41   in response to: davidekholm 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.
RobM

Posts: 3,947
Registered: 4-Aug-2006
Re: jAlbum 38 release candidate for testing
Posted: 18 Oct 25, 23:46   in response to: RobM in response to: RobM
The custom filter has two entries for 'Has keywords'
RobM

Posts: 3,947
Registered: 4-Aug-2006
Re: jAlbum 38 release candidate for testing
Posted: 19 Oct 25, 00:20   in response to: RobM in response to: RobM
The 'Alphabetical view' could maybe do with a reverse order setting.
Legend
Forum admins
Helpful Answer
Correct Answer

Point your RSS reader here for a feed of the latest messages in all forums