Lemur release 1.9.1 and Lemur-proto 1.8.1

Lemur 1.9.1

It’s been a while since I pushed a release.

1.9.1 is a mostly incremental release over previous versions. Some bugs were fixed and a few features added:

Major new features:

  • initial support for key/joystick focus navigation. Some of the internals of this may change as I create proper navigator implementations for some of the layouts. (Current default layout support only supports next/previous/home/end type stuff… and not left/right/up/down in grid layouts.)
  • a new PopupState that can be used to pop-up temporary windows that capture the surrounding mouse input (to either capture or close the panel). This is useful for modal dialogs, pop-up menus, and things like the list that pops up for a combo box (it was a prerequisite to someday having a proper combo box implementation).

Full release notes here: https://github.com/jMonkeyEngine-Contributions/Lemur/releases/download/v1.9.1/Lemur-changelog.txt

Full release here: Release Lemur version 1.9.1 · jMonkeyEngine-Contributions/Lemur · GitHub

Wiki javadoc has also been updated.

It’s also available on jcenter for the gradle/maven users.

Lemur-proto 1.8.1

The big part of this release is the prototype for a DragAndDropControl. This can be added to any JME Spatial to provide a drag-and-drop container. One need merely add the DragAndDropListener to properly participate in the dragging.

You can see a demo of it in the recently added Lemur/demos sub-project:

(If I have time I will try to post a pre-packaged release for that, too.)

Full changelog here: https://github.com/jMonkeyEngine-Contributions/Lemur/releases/download/lemur-proto-v1.8.1/LemurProto-changelog.txt
Full release here: Release LemurProto version 1.8.1 · jMonkeyEngine-Contributions/Lemur · GitHub

Wiki javadoc has also been updated.

It’s also available on jcenter for the gradle/maven users.


Awesome! Gonna update right away.

Updated TextEntryComponent to hook up some standard keys to focus actions for single line text fields.
Tab = Next, Shift+Tab = Previous, Enter = Next, Up = Up, Down = Down

This is really neat imho, never knew it even had support for that :smile:

Good work ol’ chap.

Thanks, cool features.

Just tested D&D test demo, looks like not acts as it should. Thought to inform you. I will take a look at code tonight.

That’s really strange. It’s acting like the draggable isn’t being cleaned up but the test runs fine locally.

Paul that problem happens for me with this commit. Have not looked at code yet but seems to be a cloning issue. Previous to this commit it works fine for me.

Yes, but that’s not really the problem. As I said, the draggable isn’t getting ‘released’ so the Spatial that is used to show the drag is never removed and leaves doo-doo behind. It’s like the drag-and-drop code is somehow older than I’m using… but all of my stuff says it’s been checked in.

And I just checked out a fresh version of the Lemur tree on a machine that wouldn’t have had any lemur jars cached already… and the demo works fine for me.

1 Like

Oops ! It seems it was a problem from my side. I did a fresh clone and clean build and it works fine now. Really sorry for bothering :sweat:

It’s cool… at least I know someone tried it. :slight_smile:

1 Like

Don’t suppose an update could fix my issue:
java.lang.IllegalArgumentException: A mesh should at least contain a Position buffer

When using a ProgressBar. While this works fine in a test app.

Well, that would depend on what the problem is. I don’t really have enough information to go on there and can’t guess why a progress bar would create a geometry with no position buffer.

i found the issue. I had empty meshes in the scene and Lemur didn’t like that. Fixed now.

Lemur doesn’t care… probably something in JME that Lemur is trying to use does. At a wild guess, collideWith() that is used for scene picking. Next time, include the stack trace for your exception and it will be easier to help. Much harder when you leave out 90% of the useful information. (2.5% ‘I have an exception’, 2.5% name of the exception, 5% exception message, 90% stack trace.) Honestly, even JUST the stack trace would be better than the class + message.

1 Like

Humble apologies. I was in a super rush, and probably should have just not posted. The “fixed it” post was from my phone which doesn’t work well. For the record, the full stack trace is:

java.lang.IllegalArgumentException: A mesh should at least contain a Position buffer
	at com.jme3.collision.bih.BIHTree.<init>(BIHTree.java:123)
	at com.jme3.collision.bih.BIHTree.<init>(BIHTree.java:139)
	at com.jme3.scene.Mesh.createCollisionData(Mesh.java:966)
	at com.jme3.scene.Mesh.collideWith(Mesh.java:995)
	at com.jme3.scene.Geometry.collideWith(Geometry.java:457)
	at com.jme3.scene.Node.collideWith(Node.java:611)
	at com.jme3.scene.Node.collideWith(Node.java:611)
	at com.jme3.scene.Node.collideWith(Node.java:611)
	at com.simsilica.lemur.event.PickEventSession.cursorMoved(PickEventSession.java:467)
	at com.simsilica.lemur.event.MouseAppState.dispatchMotion(MouseAppState.java:93)
	at com.simsilica.lemur.event.BasePickState.update(BasePickState.java:169)
	at com.jme3.app.state.AppStateManager.update(AppStateManager.java:287)
	at com.jme3.app.SimpleApplication.update(SimpleApplication.java:236)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:151)
	at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:197)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:232)
	at java.lang.Thread.run(Thread.java:745)

Of course i don’t think this is a bug. I think having null position buffers or more importantly empty mesh isn’t really what you want in a scene anyway.

Yeah, it was the scene picking… which if for some reason you really required meshes without position buffers in your scene, there would be a way to setup Lemur that would support that.

But glad you got it working. :slight_smile: