Editor: jMonkeyBuilder

It’s open source, BSD license… blessing not required. Go forth and make cool stuff.

1 Like

Does Lemur support declarative style of scene structure like FXML in javaFX?

Working on multi-terrain editing :wink:


What do you mean by “declarative style”?

That’s not the same as “does it have a mark-up/definition language?”… to which the answer is “No, because no one has implemented that yet”.

I just use groovy when I want that.

Something like this:

I just think about what can be a result from “scene builder” in the case with Lemur…

I attempted to do something like this, rolling out my own widgets on top of Lemur, with a XML layout.

The XML looks like this

So, maybe I will make something like ‘scene builder’ in future :slight_smile: But now I’m working on other features :slight_smile:

ver. 1.6.0
-Updated jME libraries.
-Implemented multi-terrain editing.
-Extended Plugin API
-Added the plugin to integrate SkyControl
-Extracted supporting tonegod.emitter to a separated plugin.
-Updated Settings dialog.


IMHO xml is still a waaaay better way to make UIs than all that .setXY() spaghetti code.

Well that’s your opinion, but my point was more, if you are going to use some kind of markup langage, there are so many choices that cross my mind before XML…
I shouldn’t have troll, or hijack the discussion, don’t mind me.

These are not the only two options.


then more power to you.

Personally, I think DSLs are best for UIs. XML is abysmal.

1 Like

I agree that XML is not ideal (if I were to redo it now I’d choose JSON instead).

However: the whole point of an XML or JSON layout is to build tools on top of it (like Google did with the Android XML layout files). Tools that are intended to be used by designers, not coders. The whole point of having an editor.

This is why I’m a bit skeptical with Groovy: it is powerful mostly for programmers.

Ops! Sorry for keeping up the hijiacking

Groovy != DSL. Groovy is the tool you could use to make the DSL.

Even JSON is a little verbose when you just want something like:
container {
label(“My Label”)

That is flipping neat. Are you going to add proportional editing falloffs for the brush like shown here, halfway down the page?

The other problem with json/xml & friends is that you only get exactly what the UI developer thought you should get, no extras. If you have a full Groovy-based DSL then if you have to revert back to plain ol’ .setXY() you can do so in the places you need to. Several times when I’ve made Gradle build files I’ve made use of this when I wasn’t sure of the “right” “Gradle way” to do something (and then when I found out how I replaced my hacks with the “right” method). It’s also an issue I’ve had several times with FXML files - inevitably there’s some layout or behavior flag you want to set that isn’t supported in FXML and has to go into a controller, just 'cause.


hi , javasabr chooser resource error! scaner system disk.

you can enable native chooser here: