代码之家  ›  专栏  ›  技术社区  ›  melston

TornadFX TreeView cell factory未被调用

  •  0
  • melston  · 技术社区  · 8 年前

    my previous question .

    class CenterView : View() {
        override val root = TreeView<IStoryItem>()
        init {
            with(root) {
                root = TreeItem(controller.storySet)
    
                setCellFactory {
                    object : StoryEditorCell() {
                        init {
                            System.out.println("Creating StoryEditorCell")
                            onDragDetected = EventHandler {...}
                            onDragOver= EventHandler {...}
                            onDragEntered= EventHandler {...}
                            ...
                        }
                    }
                }
                cellFormat { ... }
                populate { ... }
            }
        }
    }
    

    setCellFactory 正在调用函数,但由于某种原因 init TreeCell 类型不正确。

    TreeView 正确填充,使零件正常工作。为了使电池工厂正常运行,还需要做些什么?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Edvin Syse    8 年前

    使命感 cellFormat CellFactory ,因此它将有效地覆盖您的自定义工厂配置,因此您的回调永远不会附加到TreeView中使用的单元格。

    如果您手动调用 setCellFactory 你必须避免 单元格格式 而是覆盖 updateItem 在单元格内部配置单元格的文本和图形。

    单元格格式

    单元格格式 更新项

    onDragDetected = EventHandler {...} setOnDragDetected {...} 相反