sapphire-core


License

License

GroupId

GroupId

com.sfxcode.sapphire
ArtifactId

ArtifactId

sapphire-core_2.12
Last Version

Last Version

2.0.1
Release Date

Release Date

Type

Type

jar
Description

Description

sapphire-core
sapphire-core
Project URL

Project URL

https://github.com/sfxcode/sapphire-core
Project Organization

Project Organization

com.sfxcode.sapphire
Source Code Management

Source Code Management

https://github.com/sfxcode/sapphire-core

Download sapphire-core_2.12

How to add to project

<!-- https://jarcasting.com/artifacts/com.sfxcode.sapphire/sapphire-core_2.12/ -->
<dependency>
    <groupId>com.sfxcode.sapphire</groupId>
    <artifactId>sapphire-core_2.12</artifactId>
    <version>2.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.sfxcode.sapphire/sapphire-core_2.12/
implementation 'com.sfxcode.sapphire:sapphire-core_2.12:2.0.1'
// https://jarcasting.com/artifacts/com.sfxcode.sapphire/sapphire-core_2.12/
implementation ("com.sfxcode.sapphire:sapphire-core_2.12:2.0.1")
'com.sfxcode.sapphire:sapphire-core_2.12:jar:2.0.1'
<dependency org="com.sfxcode.sapphire" name="sapphire-core_2.12" rev="2.0.1">
  <artifact name="sapphire-core_2.12" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.sfxcode.sapphire', module='sapphire-core_2.12', version='2.0.1')
)
libraryDependencies += "com.sfxcode.sapphire" % "sapphire-core_2.12" % "2.0.1"
[com.sfxcode.sapphire/sapphire-core_2.12 "2.0.1"]

Dependencies

compile (5)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.12.12
org.scala-lang.modules : scala-collection-compat_2.12 jar 2.2.0
com.typesafe.scala-logging : scala-logging_2.12 jar 3.9.2
com.typesafe : config jar 1.4.1
org.apache.tomcat : tomcat-jasper-el jar 9.0.39

provided (3)

Group / Artifact Type Version
com.sandec » mdfx jar 0.1.6
com.jfoenix : jfoenix jar 9.0.10
org.fxmisc.richtext : richtextfx jar 0.10.5

test (3)

Group / Artifact Type Version
org.specs2 : specs2-core_2.12 jar 4.10.5
org.json4s : json4s-native_2.12 jar 3.6.10
ch.qos.logback : logback-classic jar 1.2.3

Project Modules

There are no modules declared in this project.

Sapphire

A JavaFX Application Framework for Scala User.

Documentation

Documentation under https://sfxcode.github.io/sapphire-core

Travis

Build Status

Download

Download

Giter8 Template

Giter8 template: sapphire-sbt.

Cross Build

Build and tested against Scala 2.12/2.13 and JDK 11/12

Usage

g8 https://github.com/sfxcode/sapphire-sbt.g8

Licence

Apache 2 License.

Demos

Tutorial

Simple JavaFX application with controller composition, controller exchange, ...

sbt run-tutorial

Login

JavaFX Login demo enhanced by sapphire-core

sbt run-login

Issues

spphire-core with ScalaFX and CDI (Deltaspike).

sbt run-issues

Multiple Windows

usage of multiple window controller

Showcase

Showcase Demo as visual reference for sapphire-core key concepts.

Technology Stack

Java JDK 11/12

Sapphire runs agains the latest JDK 11/12 version.

JavaFX

Java UI Application Framework as replacement for Swing.

Sapphire depends on OpenJFX 12

https://openjfx.io

Optional Dependency Injection (Issues Demo)

Sapphire use Apache Deltaspike as CDI Abstraction Layer (1.9.x).

http://deltaspike.apache.org

The default implementation depends on Apache OpenWebBeans (2.0.x).

http://openwebbeans.apache.org

Expression Language

Expressions are resolved by EL 3 Tomcat Expression Language.

ScalaFX (optional dependency)

A DSL for JavaFX written in Scala.

ScalaFX Website

ScalaFX plays very nice on top of sapphire-core applications.

ScalaFX support Scala versions up to 2.12.x

Features

Application Environment

  • Application Controller
  • UI Controller loading
  • FXML Loading
  • Hot Reloding

Bean Enhancement

  • Every Java / Scala Bean can be used for FXBean
  • FXBean has additional support for java/scala Maps
  • FXBean resolves Expressions on bean
  • FXBean creates Properties needed for Binding on demand
  • FXBean has change management by default

Scala JavaFX Bean Binding

  • Bindings by form id
  • Binding with converter
  • Adapter Pattern (FXBean Adapter)

ViewController

  • Controller Lifecycle
  • Node Locator

FXML Support

  • Easy Connect FXML with ViewController
  • Different FXML path options

maven

sapphire-core is deployed on bintray (jcenter) and maven central.

Supporters

JetBrains is supporting this open source project with:

Intellij IDEA

Versions

Version
2.0.1
2.0.0
1.8.3
1.8.2
1.8.1
1.8.0
1.7.3
1.7.2
1.7.1
1.7.0
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.5
1.4.2
1.4.1
1.4.0
1.3.6
1.3.5