What is New in ScalaFX 8 Milestone 1
September 11, 2013Posted by on
ScalaFX helps you simplify creation of JavaFX-based user interfaces in Scala. ScalaFX uses a simple, hierarchical pattern for creating new objects and building up the scene graph. ScalaFX supports full interoperability with Java and can run anywhere the Java Virtual Machine (JVM) and JavaFX are supported.
ScalaFX 8 provides support for JavaFX that is part of the upcoming release of Java 8. Wherever possible ScalaFX 8 shares code with ScalaFX 1, in particular, ScalaFX 8 M1 incorporates improvements from ScalaFX 1 M5.
JavaFX 8, beside many new features, introduced some backward compatibility breaking changes. The two main goals of this first milestone of ScalaFX 8 were: 1) make existing code work with Java 8, fix and issues related to failing tests, 2) add some key wrappers for the new 3D functionality. For instance, JavaFX 8 deprecated Builders and actually removed some of them. ScalaFX 8 code was modified not to use Builders where appropriate. This was a particular problem for many tests that relied on Builders.
ScalaFX 8 was tested with Java 8 early access build 106, more info can be found on the ScalaFX 8 Development page.
Summary of changes compared to ScalaFX 1.0 Milestone 5
- Tested against Java 8 early access build 106 (September 3, 2013)
- Ported existing code from ScalaFX 1 Milestone 5
- Some class hierarchies were changed to match changes in JavaFX 8
- About 27 new rappers were added, initially mostly for the new 3D functionality.
- 4 new demos added to illustrate the new 3D API.
- Over 30 existing classes were modified to add new properties and methods.
Changes in inheritance hierarchy to match changes in JavaFX 8
- `Camera` extends `Node`
- `Control` extends `Region`
Many new wrappers added with corresponding implicit conversions and tests
New properties and `enum`s added to existing wrappers
AreaChart, ComboBox, ConditionalFeature, EventType, FileChooser, Font, Image, Labelled, ListView, MediaPlayer, MouseEvent, Node, Region, PerspectiveCamera, PopupWindow, Scene, SceneProperty, StackedAreaChart, Stage, StageStyle, Tab, TableView, TreeItem, TreeView, TextBoundsType, TextInputControl, Text, Transform, WebEngine, WebView.
New demos for 3D functionality
- Simple3DBoxApp – demo of a triangular frame of a 3D box, based on example in Ensemble 8.
- SphereAndBoxDemo – ScalaFX version of the demo from projavafx8-scratchpad project.
- TriangleMeshDemo – illustrates use of TriangleMesh and the new Observable*Array classes.
- PickingDemo – illustrates selections made on 3D surfaces. In the video, selected point s are marked by yellow spheres.
Where to Get It
You can download ScalaFX binaries and source code from the project website.
Artifacts are also published on the Maven Central, so you can use them from you favorite build system SBT, Gradle, Maven, etc.