Added scalafx wrappers for jfoenix and ikonli
This commit is contained in:
parent
e2f5dc15c3
commit
536f1b0af3
44
src/main/scala/nova/monadic_sfx/implicits/FontIcon.scala
Normal file
44
src/main/scala/nova/monadic_sfx/implicits/FontIcon.scala
Normal file
@ -0,0 +1,44 @@
|
||||
package nova.monadic_sfx.implicits
|
||||
|
||||
import javafx.{scene => jfxs}
|
||||
import org.kordamp.ikonli.{javafx => ikonlifx}
|
||||
import scalafx.scene.paint.Paint
|
||||
import scalafx.scene.text.Text
|
||||
|
||||
object FontIcon {
|
||||
implicit def sfxText2jfx(v: FontIcon): jfxs.text.Text =
|
||||
if (v != null) v.delegate else null
|
||||
|
||||
}
|
||||
|
||||
// extends Shape(delegate)
|
||||
// with PositionDelegate[ikonlifx.FontIcon]
|
||||
// with SFXDelegate[ikonlifx.FontIcon]
|
||||
|
||||
class FontIcon(override val delegate: ikonlifx.FontIcon = new ikonlifx.FontIcon)
|
||||
extends Text(delegate) {
|
||||
|
||||
// def iconCode_=(v: Ikon) = delegate.setIconCode(v)
|
||||
|
||||
def iconColor = delegate.getIconColor()
|
||||
|
||||
def iconColor_=(color: Paint) = delegate.setIconColor(color)
|
||||
|
||||
def iconSize = delegate.getIconSize()
|
||||
|
||||
def iconSize_=(size: Int) = delegate.setIconSize(size)
|
||||
|
||||
def iconLiteral = delegate.getIconLiteral()
|
||||
|
||||
def iconLiteral_=(literal: IconLiteral) =
|
||||
delegate.setIconLiteral(literal.value)
|
||||
|
||||
def iconLiteral_=(literal: String) = delegate.setIconLiteral(literal)
|
||||
|
||||
}
|
||||
|
||||
sealed abstract class IconLiteral(val value: String)
|
||||
object IconLiteral {
|
||||
// fab-accusoft
|
||||
case object Gmi10k extends IconLiteral("gmi-10k")
|
||||
}
|
42
src/main/scala/nova/monadic_sfx/implicits/JFXButton.scala
Normal file
42
src/main/scala/nova/monadic_sfx/implicits/JFXButton.scala
Normal file
@ -0,0 +1,42 @@
|
||||
package nova.monadic_sfx.implicits
|
||||
|
||||
import com.jfoenix.{controls => jfoenixc}
|
||||
import javafx.{scene => jfxs}
|
||||
import scalafx.Includes._
|
||||
import scalafx.beans.property.ObjectProperty
|
||||
import scalafx.scene.Node
|
||||
import scalafx.scene.control.Button
|
||||
|
||||
import jfxs.{paint => jfxsp}
|
||||
|
||||
object JFXButton {
|
||||
implicit def sfxButton2jfx(v: JFXButton): jfoenixc.JFXButton =
|
||||
if (v != null) v.delegate else null
|
||||
}
|
||||
|
||||
// extends ButtonBase(delegate)
|
||||
// with SFXDelegate[jfoenixc.JFXButton]
|
||||
|
||||
class JFXButton(
|
||||
override val delegate: jfoenixc.JFXButton = new jfoenixc.JFXButton
|
||||
) extends Button(delegate) {
|
||||
|
||||
/**
|
||||
* Creates a button with the specified text as its label.
|
||||
*/
|
||||
def this(text: String) = this(new jfoenixc.JFXButton(text))
|
||||
|
||||
/**
|
||||
* Creates a button with the specified text and icon for its label.
|
||||
*/
|
||||
def this(text: String, graphic: Node) =
|
||||
this(new jfoenixc.JFXButton(text, graphic))
|
||||
|
||||
def ripplerFill: ObjectProperty[jfxsp.Paint] =
|
||||
jfxObjectProperty2sfx(delegate.ripplerFillProperty)
|
||||
|
||||
def ripplerFill_=(b: jfxsp.Paint): Unit = {
|
||||
ripplerFill() = b
|
||||
}
|
||||
|
||||
}
|
36
src/main/scala/nova/monadic_sfx/implicits/JFXListCell.scala
Normal file
36
src/main/scala/nova/monadic_sfx/implicits/JFXListCell.scala
Normal file
@ -0,0 +1,36 @@
|
||||
package nova.monadic_sfx.implicits
|
||||
|
||||
import com.jfoenix.{controls => jfoenixc}
|
||||
import javafx.scene.{control => jfxsc}
|
||||
import scalafx.Includes._
|
||||
import scalafx.beans.property.ReadOnlyObjectProperty
|
||||
import scalafx.delegate.SFXDelegate
|
||||
import scalafx.scene.control.IndexedCell
|
||||
import scalafx.scene.control.ListView
|
||||
|
||||
object JFXListCell {
|
||||
implicit def sfxListCell2jfx[T](
|
||||
l: JFXListCell[T]
|
||||
): jfoenixc.JFXListCell[T] =
|
||||
if (l != null) l.delegate else null
|
||||
}
|
||||
|
||||
class JFXListCell[T](
|
||||
override val delegate: jfoenixc.JFXListCell[T] = new jfoenixc.JFXListCell[T]
|
||||
) extends IndexedCell(delegate)
|
||||
with SFXDelegate[jfoenixc.JFXListCell[T]] {
|
||||
|
||||
/**
|
||||
* The ListView associated with this Cell.
|
||||
*/
|
||||
def listView: ReadOnlyObjectProperty[jfxsc.ListView[T]] =
|
||||
delegate.listViewProperty
|
||||
|
||||
/**
|
||||
* Updates the ListView associated with this Cell.
|
||||
*/
|
||||
def updateListView(listView: ListView[T]): Unit = {
|
||||
delegate.updateListView(listView)
|
||||
}
|
||||
|
||||
}
|
48
src/main/scala/nova/monadic_sfx/implicits/JFXListView.scala
Normal file
48
src/main/scala/nova/monadic_sfx/implicits/JFXListView.scala
Normal file
@ -0,0 +1,48 @@
|
||||
package nova.monadic_sfx.implicits
|
||||
|
||||
import com.jfoenix.{controls => jfoenixc}
|
||||
import monix.execution.Scheduler
|
||||
import monix.reactive.Observable
|
||||
import scalafx.Includes._
|
||||
import scalafx.collections.ObservableBuffer
|
||||
import scalafx.scene.control.ListView
|
||||
|
||||
object JFXListView {
|
||||
implicit def sfxListView2jfx[T](l: JFXListView[T]): jfoenixc.JFXListView[T] =
|
||||
if (l != null) l.delegate else null
|
||||
}
|
||||
|
||||
// extends Control(delegate)
|
||||
// with SFXDelegate[jfoenixc.JFXListView[T]]
|
||||
|
||||
class JFXListView[T](
|
||||
override val delegate: jfoenixc.JFXListView[T] = new jfoenixc.JFXListView[T]
|
||||
) extends ListView[T] {
|
||||
|
||||
// def items_=(
|
||||
// v: Observable[ObservableBuffer[T]]
|
||||
// )(implicit s: Scheduler): Unit = {
|
||||
// v.foreach { items() = _ }
|
||||
// }
|
||||
|
||||
def items_=(
|
||||
v: Observable[Seq[T]]
|
||||
)(implicit s: Scheduler): Unit = {
|
||||
v
|
||||
.map {
|
||||
// case buf: ObservableBuffer[T] => buf
|
||||
case other => ObservableBuffer.from(other)
|
||||
}
|
||||
// .map(myDiff(items(), _))
|
||||
.foreach { items() = _ }
|
||||
}
|
||||
|
||||
def depth = delegate.depthProperty()
|
||||
def depth_=(depth: Int) = delegate.setDepth(depth)
|
||||
|
||||
def expanded = delegate.expandedProperty()
|
||||
def expanded_=(v: Boolean) = expanded() = v
|
||||
|
||||
|
||||
|
||||
}
|
29
src/main/scala/nova/monadic_sfx/implicits/JFXSpinner.scala
Normal file
29
src/main/scala/nova/monadic_sfx/implicits/JFXSpinner.scala
Normal file
@ -0,0 +1,29 @@
|
||||
package nova.monadic_sfx.implicits
|
||||
|
||||
import com.jfoenix.{controls => jfoenixc}
|
||||
import scalafx.scene.control.ProgressIndicator
|
||||
|
||||
object JFXSpinner {
|
||||
implicit def sfxSpinner2jfx(
|
||||
v: JFXSpinner
|
||||
): jfoenixc.JFXSpinner = if (v != null) v.delegate else null
|
||||
|
||||
}
|
||||
|
||||
// extends Control(delegate)
|
||||
// with SFXDelegate[jfoenixc.JFXSpinner]
|
||||
|
||||
/**
|
||||
* Wraps [[JFoenix JFXSpinner]]
|
||||
*/
|
||||
class JFXSpinner(
|
||||
override val delegate: jfoenixc.JFXSpinner = new jfoenixc.JFXSpinner
|
||||
) extends ProgressIndicator(delegate) {
|
||||
|
||||
def radius = delegate.getRadius()
|
||||
def radius_=(radius: Double) = delegate.setRadius(radius)
|
||||
|
||||
def startingAngle = delegate.startingAngleProperty()
|
||||
def startingAngle_=(angle: Double) = delegate.setStartingAngle(angle)
|
||||
|
||||
}
|
40
src/main/scala/nova/monadic_sfx/implicits/JFXTextArea.scala
Normal file
40
src/main/scala/nova/monadic_sfx/implicits/JFXTextArea.scala
Normal file
@ -0,0 +1,40 @@
|
||||
package nova.monadic_sfx.implicits
|
||||
|
||||
import com.jfoenix.{controls => jfoenixc}
|
||||
import scalafx.Includes._
|
||||
import scalafx.beans.property.BooleanProperty
|
||||
import scalafx.scene.control.TextArea
|
||||
import scalafx.scene.paint.Paint
|
||||
|
||||
object JFXTextArea {
|
||||
implicit def sfxTextArea2jfx(v: JFXTextArea): jfoenixc.JFXTextArea =
|
||||
if (v != null) v.delegate else null
|
||||
}
|
||||
// extends TextInputControl(delegate)
|
||||
// with SFXDelegate[jfoenixc.JFXTextArea]
|
||||
class JFXTextArea(
|
||||
override val delegate: jfoenixc.JFXTextArea = new jfoenixc.JFXTextArea()
|
||||
) extends TextArea(delegate) {
|
||||
|
||||
/**
|
||||
* Creates a TextArea with initial text content.
|
||||
*
|
||||
* @param text - A string for text content.
|
||||
*/
|
||||
def this(text: String) = this(new jfoenixc.JFXTextArea(text))
|
||||
|
||||
def labelFloat = delegate.labelFloatProperty()
|
||||
def labelFloat_=(v: Boolean) = delegate.setLabelFloat(v)
|
||||
|
||||
def focusColor: Paint = delegate.getFocusColor()
|
||||
def focusColor_=(color: Paint) = delegate.setFocusColor(color)
|
||||
|
||||
def unFocusColor = delegate.getUnFocusColor()
|
||||
def unFocusColor_=(color: Paint) = delegate.setUnFocusColor(color)
|
||||
|
||||
def disableAnimation: BooleanProperty = delegate.disableAnimationProperty()
|
||||
|
||||
def disableAnimation_=(disable: Boolean) =
|
||||
delegate.setDisableAnimation(disable)
|
||||
|
||||
}
|
35
src/main/scala/nova/monadic_sfx/implicits/JFXTextField.scala
Normal file
35
src/main/scala/nova/monadic_sfx/implicits/JFXTextField.scala
Normal file
@ -0,0 +1,35 @@
|
||||
package nova.monadic_sfx.implicits
|
||||
|
||||
import com.jfoenix.{controls => jfoenixc}
|
||||
import scalafx.Includes._
|
||||
import scalafx.beans.property.BooleanProperty
|
||||
import scalafx.scene.control.TextField
|
||||
import scalafx.scene.paint.Paint
|
||||
|
||||
object JFXTextField {
|
||||
implicit def sfxTextField2jfx(v: JFXTextField): jfoenixc.JFXTextField =
|
||||
if (v != null) v.delegate else null
|
||||
}
|
||||
|
||||
// TextInputControl(delegate)
|
||||
// with AlignmentDelegate[jfoenixc.JFXTextField]
|
||||
// with SFXDelegate[jfoenixc.JFXTextField] {
|
||||
|
||||
class JFXTextField(
|
||||
override val delegate: jfoenixc.JFXTextField = new jfoenixc.JFXTextField
|
||||
) extends TextField(delegate) {
|
||||
|
||||
def labelFloat = delegate.labelFloatProperty()
|
||||
def labelFloat_=(v: Boolean) = delegate.setLabelFloat(v)
|
||||
|
||||
def focusColor: Paint = delegate.getFocusColor()
|
||||
def focusColor_=(color: Paint) = delegate.setFocusColor(color)
|
||||
|
||||
def unFocusColor = delegate.getUnFocusColor()
|
||||
def unFocusColor_=(color: Paint) = delegate.setUnFocusColor(color)
|
||||
|
||||
def disableAnimation: BooleanProperty = delegate.disableAnimationProperty()
|
||||
|
||||
def disableAnimation_=(disable: Boolean) =
|
||||
delegate.setDisableAnimation(disable)
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package nova.monadic_sfx.implicits
|
||||
|
||||
import com.jfoenix.controls.datamodels.treetable.RecursiveTreeObject
|
||||
import com.jfoenix.{controls => jfoenixc}
|
||||
import javafx.scene.{control => jfxsc}
|
||||
import scalafx.collections.ObservableBuffer
|
||||
import scalafx.scene.control.TreeItem
|
||||
import scalafx.scene.control.TreeTableView
|
||||
|
||||
class RecursiveTreeItem[G <: RecursiveTreeObject[G]](
|
||||
override val delegate: jfoenixc.RecursiveTreeItem[G] =
|
||||
new jfoenixc.RecursiveTreeItem[G]((item: RecursiveTreeObject[G]) =>
|
||||
item.getChildren()
|
||||
)
|
||||
) extends TreeItem[G](delegate) {
|
||||
def this(value: G) =
|
||||
this(
|
||||
new jfoenixc.RecursiveTreeItem[G](
|
||||
value,
|
||||
(item: RecursiveTreeObject[G]) => item.getChildren()
|
||||
)
|
||||
)
|
||||
def this(items: ObservableBuffer[G]) =
|
||||
this(
|
||||
new jfoenixc.RecursiveTreeItem[G](
|
||||
items,
|
||||
(item: RecursiveTreeObject[G]) => item.getChildren()
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
object RecursiveTreeItem {
|
||||
implicit def sfxTreeItem2jfxTreeItem[G <: RecursiveTreeObject[G]](
|
||||
v: RecursiveTreeItem[G]
|
||||
): jfoenixc.RecursiveTreeItem[G] = v.delegate
|
||||
}
|
||||
|
||||
// @formatter:off
|
||||
class JFXTreeTableView[S <: RecursiveTreeObject[S]](
|
||||
override val delegate: jfoenixc.JFXTreeTableView[S] = new jfoenixc.JFXTreeTableView[S]
|
||||
) extends TreeTableView(delegate) {
|
||||
|
||||
|
||||
def this(root: TreeItem[S]) = this(new jfoenixc.JFXTreeTableView[S](root))
|
||||
// def this(root: TreeItem[S], items: ObservableBuffer[S]) = this(new jfoenixc.JFXTreeTableView[S](root, items))
|
||||
|
||||
// @formatter:on
|
||||
def currentItemsCount = delegate.currentItemsCountProperty()
|
||||
def predicate = delegate.predicateProperty()
|
||||
// delegate.set
|
||||
|
||||
// override def treeColumn_=(v: TreeTableColumn[S, _]): Unit = ???
|
||||
// delegate.setTreeColumn()
|
||||
}
|
||||
|
||||
// @formatter:off
|
||||
object JFXTreeTableView {
|
||||
implicit def sfxTreeTableView2jfx[S <: RecursiveTreeObject[S]](
|
||||
v: JFXTreeTableView[S]
|
||||
): jfxsc.TreeTableView[S] = if (v != null) v.delegate else null
|
||||
}
|
||||
// @formatter:on
|
Loading…
Reference in New Issue
Block a user