重写JavaFx TreeItem getChildren添加一个好主意吗?



我的目标是在一个树(确切地说是一个TableTreeView)中添加所有子节点时完成一个过程。

node.getTreeItem().getChildren.add(playlist)在我的代码的不同部分被调用,我试图尽可能保持最佳实践…所以让我们保持简单,说我肯定会在拖放完成时调用它,以及在构建树的时候。

我的"播放列表"可以有3种不同的类型(在enum类中):

  • 文件夹(包含其他播放列表)
  • LIST(包含用户添加的音轨)
  • 查询(包含作为查询结果的音轨)
  • 错误(不应该设置,但对调试等有用)

我想在我的'扩展'TreeItem<Playlist>上实现一个方法,如getPlaylistType()。此方法将返回播放列表的类型。

问题:我的直觉会说我应该重写node.getTreeItem().getChildren.add(playlist)以一种方式设置类型:

  • 有儿童播放列表->文件夹
  • 无儿童播放列表&&查询存在——>查询
  • 无儿童播放列表&&查询不存在——>
  • 任何其他状态->可知/错误
  1. 这个方法正确吗?
  2. 如何重写'add(…)'方法?

为什么将node.getTreeItem().getChildren.add(playlist)暴露给软件的不同部分?如果你只是把它包装在你自己的类中,你可以公开它,并在相应的add方法被调用时做任何你想做的事情。

最新更新