ScalaFX:如何异步更新TreeTableView

时间:2017-09-27 23:23:41

标签: scala asynchronous javafx scalafx treetableview

我想表示我在树中的数据并使用TreeTableView显示它。显示的项目包含在案例类中:

case class Foo(name: StringProperty, desc:StringPropert) {
  def this(_name: String, _desc: String) = this(StringProperty(_name), StringProperty(_dest))
}

通过(基本上)异步完成填充树(调用需要时间的外部程序):

val runner = Future {
  // run command
}
runner onComplete {
  case Success(ret) => // parse ret and update TreeTableView somehow
  ...
}

由于这是异步完成的,我开始使用树的空节点:

val ViewPkgs = new TreeItem[Foo](new Foo("root", "desc"))
...
val ViewTable = new TreeTableView[Foo](ViewPkgs) { columns ++= ... }

如何从上面的异步调用更新软件包列表?

我尝试的是创建

val ViewBuf = ObservableBuffer[Foo]()
ViewPkgs.children = ObservableBuffer( ViewBuf.map { p => new TreeItem[Foo](p) } )

但这并没有帮助。

感谢您的任何建议。

0 个答案:

没有答案