Library Recommendation - Java GUI for ERD-like Components

I am developing a crafting system for a game that requires various GUI components that can be connected to each other. The premise is that the system should allow drag and drop functionality where you can connect one item to another and create different combinations.

I prototyped some basic functionality in Swing where I created some generic components that you could drag anywhere around your screen and upon release it would capture any existing component in the new location and link the two together (basically just saving an assigned numeric value representing the component).

I have no intention of using Swing, but for the purposes of designing an overall architecture it’s working fine for now. The next hurdle, and what I am most concerned with, is making something that is visually interesting. When components are linked together I want to automatically draw arrows connecting them and automatically recalculate the drawing path of the line when components are moved around. Essentially, I’m looking for ERD-like components within our game’s GUI framework.

We were inspired by this particular screenshot of a software program called Articy - http://cdn.akamai.steamstatic.com/steam/apps/230780/ss_f602ec8041eb8335ed2f04a00231860dab797ec6.jpg?t=1427904368

In addition to the aesthetics of their GUI we also liked the gridwork and component handles that appear to let you drag and drop to connect your elements together. As a point of reference you can also check out the draw.io demo and play around with the Entity Relation tools and see how they work together (https://www.draw.io/?demo=1)

The questions we have are:

  • Does anyone know what language or libraries were used for the Articy software?
  • Do you have any recommendations on Java libraries that have ERD-like components?
  • If nothing exists and we need to build something from scratch which library do you think would have the path of least resistance to extend? We’ve been primarily working with LWJGL and so the Nifty GUI seems like a possible choice (https://github.com/void256/nifty-gui)

Thanks for your feedback and suggestions!

Unless there is a library that solves this exact problem (there very well could be one), I don’t see how the choice of graphics framework etc. makes a difference. MVC and all that.

EDIT: Articy seems to be written in or at least with .NET

I did a little more digging and found this thread on stackoverflow that has a list of libraries that may be relevant - http://stackoverflow.com/questions/6162618/java-graph-library-for-dynamic-visualisation

Not exactly what I’m looking for, but it may generate some ideas. Like you said BurntPizza there probably isn’t anything built for LIBGDX, LWJGL, etc. that was specifically built for this purpose. Best case scenario is learning from other solutions and adapting something within our game.

I did some very basic work in the “drawing path of the line when components are moved around” area: http://www.java-gaming.org/topics/possible-spline-substitute-sigmoid-function/35906/msg/340373/view.html

That’s great! That screenshot of blender looks a lot like our ideal target. Thank you for sharing your example.

With a little more research and testing on assigning anchor points it shouldn’t be too difficult to use something like that to make some pretty connections.