sapphire-core


License

License

GroupId

GroupId

com.sfxcode.sapphire
ArtifactId

ArtifactId

sapphire-core_2.11
Last Version

Last Version

1.5.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.11

How to add to project

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

Dependencies

compile (13)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.11.12
com.typesafe.scala-logging : scala-logging_2.11 jar 3.9.0
com.typesafe : config jar 1.3.4
org.scalafx : scalafx_2.11 jar 12.0.1-R17
javax.enterprise : cdi-api jar 2.0
javax.annotation : javax.annotation-api jar 1.3.2
org.apache.openwebbeans : openwebbeans-impl jar 2.0.10
org.apache.deltaspike.core : deltaspike-core-impl jar 1.9.0
org.apache.deltaspike.cdictrl : deltaspike-cdictrl-api jar 1.9.0
org.apache.deltaspike.cdictrl : deltaspike-cdictrl-owb jar 1.9.0
de.odysseus.juel : juel-api jar 2.2.7
de.odysseus.juel : juel-impl jar 2.2.7
de.odysseus.juel : juel-spi jar 2.2.7

test (3)

Group / Artifact Type Version
org.specs2 : specs2-core_2.11 jar 4.5.1
org.json4s : json4s-native_2.11 jar 3.6.5
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
1.5.1
1.5.0
1.3.6
1.3.5