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).
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.)
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
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.
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.
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.
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.