forked from nova/jmonkey-test
64 lines
2.0 KiB
Scala
64 lines
2.0 KiB
Scala
package wow.doge.mygame.util.controls
|
|
|
|
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
|
|
@SuppressWarnings(Array("org.wartremover.warts.Null","org.wartremover.warts.Equals"))
|
|
object JFXTreeTableView {
|
|
implicit def sfxTreeTableView2jfx[S <: RecursiveTreeObject[S]](
|
|
v: JFXTreeTableView[S]
|
|
): jfxsc.TreeTableView[S] = if (v != null) v.delegate else null
|
|
}
|
|
// @formatter:on
|