Can JavaFX do CAD?

Werner Lehmann lehmann at media-interactive.de
Mon Jul 29 05:58:29 PDT 2013


Good questions. I've had experience with some of these, building a GUI 
designer. At this stage customers will use it to build input forms. 
Later it is supposed to grow into sort of a report designer.

The core is a custom component containing a ScrollPane containing a 
content pane. And that pane has several transparent layers spanning the 
whole (scrolled) content area. There are layers for a grid, the content 
items, selection, decoration, and hints. There've been rough edges and 
workarounds but I am quite happy with the result. This would have been 
more difficult in Swing.

On 24.07.2013 01:21, Daniel Zwolenski wrote:
> - How best to represent large numbers of complex shapes efficiently, and when to add shapes to the scene (add all and let jfx clip, or manually work out what should be showing, etc)

Fortunately my scenes are usually not that complex. A few 10k nodes can 
be expected.

> - How best to handle font scaling and image scaling when rendered in a zoomed in/out viewport

I have not looked into this. I guess it would be relevant for us to 
support touch.

> - How best to do panning and zooming with dynamic level of detail

Dynamic level of detail is another important one. We may need to address 
this for a different component, showing tons of data which can be zoomed 
in/out.

> - How best to do the top level display in terms of panes vs regions vs canvas, vs whatever, how to manage overlays and layers (sharing same coordinate space, etc)
> - How best to do picking, mouse overs, dragging across the 'display'
> - How best to do infinite or dynamic  bounds so you can add and move shapes and the scrolling adjusts accordingly.

As described above, several pane/region based layers in a scrollpane 
work satisfactorily for us. Bounds are already dynamic, simply resize 
the ScrollPane content node. Mouse picking, dragging, etc. works with 
mouse event filters on the scrolled content node.

Werner


More information about the openjfx-dev mailing list