455 SchemaTree · 数据库结构树
用途
显示数据库、表、视图、列和索引树。
最小示例
roots := []devtools.SchemaNode{{Name: "app", Children: []devtools.SchemaNode{{Name: "users", Kind: devtools.SchemaTable, Children: []devtools.SchemaNode{{Name: "id", Kind: devtools.SchemaColumn, Detail: "bigint"}, {Name: "users_pk", Kind: devtools.SchemaIndex, Detail: "(id)"}}}}}}
var state devtools.SchemaTreeState
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
if devtools.SchemaTree(c, &state, roots, devtools.SchemaTreeOptions{}).Changed() {
path, _ := state.Selected()
fmt.Println("selected", path)
}
}
ui.Render(view, 720, 480, 1)参数
state 必填;Height 默认 360 DIP;Name 必填,兄弟名称唯一;Kind 使用枚举,Detail 为类型说明。
状态
展开、折叠、选择、空结构、父级禁用。
事件
Changed() 报告选择变化;state.Selected() 返回路径。
键盘操作
Tab 进入树;上下选择;左右展开折叠。
限制
路径以斜线分隔;节点名称须保持路径唯一;更新结构提交新切片。

