You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.9 KiB

  1. package nova.monadic_sfx.implicits
  2. import com.jfoenix.controls.datamodels.treetable.RecursiveTreeObject
  3. import com.jfoenix.{controls => jfoenixc}
  4. import javafx.scene.{control => jfxsc}
  5. import scalafx.collections.ObservableBuffer
  6. import scalafx.scene.control.TreeItem
  7. import scalafx.scene.control.TreeTableView
  8. class RecursiveTreeItem[G <: RecursiveTreeObject[G]](
  9. override val delegate: jfoenixc.RecursiveTreeItem[G] =
  10. new jfoenixc.RecursiveTreeItem[G]((item: RecursiveTreeObject[G]) =>
  11. item.getChildren()
  12. )
  13. ) extends TreeItem[G](delegate) {
  14. def this(value: G) =
  15. this(
  16. new jfoenixc.RecursiveTreeItem[G](
  17. value,
  18. (item: RecursiveTreeObject[G]) => item.getChildren()
  19. )
  20. )
  21. def this(items: ObservableBuffer[G]) =
  22. this(
  23. new jfoenixc.RecursiveTreeItem[G](
  24. items,
  25. (item: RecursiveTreeObject[G]) => item.getChildren()
  26. )
  27. )
  28. }
  29. object RecursiveTreeItem {
  30. implicit def sfxTreeItem2jfxTreeItem[G <: RecursiveTreeObject[G]](
  31. v: RecursiveTreeItem[G]
  32. ): jfoenixc.RecursiveTreeItem[G] = v.delegate
  33. }
  34. // @formatter:off
  35. class JFXTreeTableView[S <: RecursiveTreeObject[S]](
  36. override val delegate: jfoenixc.JFXTreeTableView[S] = new jfoenixc.JFXTreeTableView[S]
  37. ) extends TreeTableView(delegate) {
  38. def this(root: TreeItem[S]) = this(new jfoenixc.JFXTreeTableView[S](root))
  39. // def this(root: TreeItem[S], items: ObservableBuffer[S]) = this(new jfoenixc.JFXTreeTableView[S](root, items))
  40. // @formatter:on
  41. def currentItemsCount = delegate.currentItemsCountProperty()
  42. def predicate = delegate.predicateProperty()
  43. // delegate.set
  44. // override def treeColumn_=(v: TreeTableColumn[S, _]): Unit = ???
  45. // delegate.setTreeColumn()
  46. }
  47. // @formatter:off
  48. object JFXTreeTableView {
  49. implicit def sfxTreeTableView2jfx[S <: RecursiveTreeObject[S]](
  50. v: JFXTreeTableView[S]
  51. ): jfxsc.TreeTableView[S] = if (v != null) v.delegate else null
  52. }
  53. // @formatter:on