[GH-ISSUE #961] treetable #703

Closed
opened 2026-03-04 01:07:09 +03:00 by kerem · 1 comment
Owner

Originally created by @ddkwork on GitHub (Mar 24, 2024).
Original GitHub issue: https://github.com/rivo/tview/issues/961

Could you please make a treetable widget

Originally created by @ddkwork on GitHub (Mar 24, 2024). Original GitHub issue: https://github.com/rivo/tview/issues/961 Could you please make a treetable widget
kerem closed this issue 2026-03-04 01:07:09 +03:00
Author
Owner

@ddkwork commented on GitHub (Mar 25, 2024):

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
               Name          Method          Description
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
RootType: doc_container, MetaData: {  }
├─── Type: init_container, MetaData: {  }
   ├─── Type: , MetaData: {New[T any](typeKey string, data T) (root *Node[T])              }
   ├─── Type: , MetaData: {NewContainerNode[T any](typeKey string, data T) *Node[T]        }
   ├─── Type: , MetaData: {NewNode[T any](typeKey string, data T) *Node[T]                 }
   ├─── Type: , MetaData: {Root() *Node[T]                                                 }
   └─── Type: , MetaData: {IsRoot() bool	                                                 }
├─── Type: walker_container, MetaData: {  }
   ├─── Type: , MetaData: {Walk(callback func(node *Node[T]))  }
   └─── Type: , MetaData: {WalkContainer(callback func(node *Node[T]))  }
├─── Type: ctx_container, MetaData: {  }
   ├─── Type: , MetaData: {Depth() int                                               }
   ├─── Type: , MetaData: {UUID() uuid.UUID                                          }
   ├─── Type: , MetaData: {Sort(cmp func(a T, b T) bool)                             }
   ├─── Type: , MetaData: {Clone(newParent *Node[T], preserveID bool) *Node[T]       }
   ├─── Type: , MetaData: {CopyFrom(from *Node[T])                                   }
   ├─── Type: , MetaData: {ApplyTo(to *Node[T])                                      }
   ├─── Type: , MetaData: {Parent() *Node[T]                                         }
   ├─── Type: , MetaData: {SetParent(parent *Node[T])                                }
   ├─── Type: , MetaData: {Container() bool                                          }
   ├─── Type: , MetaData: {HasChildren() bool                                        }
   ├─── Type: , MetaData: {SetChildren(children []*Node[T])                          }
   ├─── Type: , MetaData: {clearUnusedFields()                                       }
   ├─── Type: , MetaData: {GetType() string                                          }
   ├─── Type: , MetaData: {SetType(t string)                                         }
   ├─── Type: , MetaData: {kind(base string) string                                  }
   ├─── Type: , MetaData: {Open() bool                                               }
   ├─── Type: , MetaData: {SetOpen(open bool)                                        }
   ├─── Type: , MetaData: {OpenAll() bool                                            }
   ├─── Type: , MetaData: {CloseAll() bool                                           }
   ├─── Type: , MetaData: {LenChildren() int                                         }
   ├─── Type: , MetaData: {LastChild()                                               }
   ├─── Type: , MetaData: {IsLastChild() bool                                        }
   └─── Type: , MetaData: {ResetChildren()                                           }
├─── Type: adder_container, MetaData: {  }
   ├─── Type: , MetaData: {AddContainer(container *Node[T])                          }
   ├─── Type: , MetaData: {AddContainerByData(typeKey string, data T)                }
   ├─── Type: , MetaData: {AddChildByData(typeKey string, data T)                    }
   ├─── Type: , MetaData: {AddChild(child *Node[T])                                  }
   ├─── Type: , MetaData: {InsertChildItem(parentID uuid.UUID, data T) *Node[T]      }
   ├─── Type: , MetaData: {CreateItem(parent *Node[T], data T)                       }
   ├─── Type: , MetaData: {InsertChildByID(id uuid.UUID) *Node[T]                    }
   ├─── Type: , MetaData: {InsertChildByName(id uuid.UUID) *Node[T]                  }
   ├─── Type: , MetaData: {InsertChildByIndex(id uuid.UUID) *Node[T]                 }
   ├─── Type: , MetaData: {InsertChildByType(id uuid.UUID) *Node[T]                  }
   └─── Type: , MetaData: {InsertChildByPath(id uuid.UUID) *Node[T]                  }
├─── Type: remover_container, MetaData: {  }
   ├─── Type: , MetaData: {RemoveByID(id uuid.UUID)    }
   ├─── Type: , MetaData: {RemoveSelf(id uuid.UUID)    }
   ├─── Type: , MetaData: {RemoveChildByID()           }
   ├─── Type: , MetaData: {RemoveChildByName()         }
   ├─── Type: , MetaData: {RemoveChildByIndex()        }
   └─── Type: , MetaData: {RemoveChildByPath()         }
├─── Type: updater_container, MetaData: {  }
   ├─── Type: , MetaData: {UpdateChildByID(id uuid.UUID, data T)     }
   ├─── Type: , MetaData: {UpdateChildByName(id uuid.UUID, data T)   }
   ├─── Type: , MetaData: {UpdateChildByIndex(id uuid.UUID, data T)  }
   ├─── Type: , MetaData: {UpdateChildByPath(id uuid.UUID, data T)   }
   ├─── Type: , MetaData: {UpdateChildByType(id uuid.UUID, data T)   }
   ├─── Type: , MetaData: {SwapChild()                               }
   ├─── Type: , MetaData: {MoveChildTo()                             }
   └─── Type: , MetaData: {SwapChild()                               }
├─── Type: finder_container, MetaData: {  }
   ├─── Type: , MetaData: {FindChildByID(id uuid.UUID) *Node[T]     }
   ├─── Type: , MetaData: {FindChildByName(id uuid.UUID) *Node[T]   }
   ├─── Type: , MetaData: {FindChildByIndex(id uuid.UUID) *Node[T]  }
   ├─── Type: , MetaData: {FindChildByPath(id uuid.UUID) *Node[T]   }
   └─── Type: , MetaData: {FindChildByType(id uuid.UUID) *Node[T]   }
└─── Type: tableCtx_container, MetaData: {  }
   ├─── Type: , MetaData: {SetFormatRowCallback(formatRowCallback func(*Node[T]) string)  }
   ├─── Type: , MetaData: {String() string                                                }
   ├─── Type: , MetaData: {format(node *Node[T], s *stream.Stream)                        }
   ├─── Type: , MetaData: {Enabled() bool                                                 }
   ├─── Type: , MetaData: {SetSelectedFunc()                                              }
   ├─── Type: , MetaData: {SetIndent()                                                    }
   ├─── Type: , MetaData: {GetPath()                                                      }
   ├─── Type: , MetaData: {SetAlign()                                                     }
   └─── Type: , MetaData: {MouseHandler()                                                 }
<!-- gh-comment-id:2017039795 --> @ddkwork commented on GitHub (Mar 25, 2024): ```go ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── │ │Name │Method │Description ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── RootType: doc_container, MetaData: { } ├─── Type: init_container, MetaData: { } │ ├─── Type: , MetaData: {New[T any](typeKey string, data T) (root *Node[T]) } │ ├─── Type: , MetaData: {NewContainerNode[T any](typeKey string, data T) *Node[T] } │ ├─── Type: , MetaData: {NewNode[T any](typeKey string, data T) *Node[T] } │ ├─── Type: , MetaData: {Root() *Node[T] } │ └─── Type: , MetaData: {IsRoot() bool } ├─── Type: walker_container, MetaData: { } │ ├─── Type: , MetaData: {Walk(callback func(node *Node[T])) } │ └─── Type: , MetaData: {WalkContainer(callback func(node *Node[T])) } ├─── Type: ctx_container, MetaData: { } │ ├─── Type: , MetaData: {Depth() int } │ ├─── Type: , MetaData: {UUID() uuid.UUID } │ ├─── Type: , MetaData: {Sort(cmp func(a T, b T) bool) } │ ├─── Type: , MetaData: {Clone(newParent *Node[T], preserveID bool) *Node[T] } │ ├─── Type: , MetaData: {CopyFrom(from *Node[T]) } │ ├─── Type: , MetaData: {ApplyTo(to *Node[T]) } │ ├─── Type: , MetaData: {Parent() *Node[T] } │ ├─── Type: , MetaData: {SetParent(parent *Node[T]) } │ ├─── Type: , MetaData: {Container() bool } │ ├─── Type: , MetaData: {HasChildren() bool } │ ├─── Type: , MetaData: {SetChildren(children []*Node[T]) } │ ├─── Type: , MetaData: {clearUnusedFields() } │ ├─── Type: , MetaData: {GetType() string } │ ├─── Type: , MetaData: {SetType(t string) } │ ├─── Type: , MetaData: {kind(base string) string } │ ├─── Type: , MetaData: {Open() bool } │ ├─── Type: , MetaData: {SetOpen(open bool) } │ ├─── Type: , MetaData: {OpenAll() bool } │ ├─── Type: , MetaData: {CloseAll() bool } │ ├─── Type: , MetaData: {LenChildren() int } │ ├─── Type: , MetaData: {LastChild() } │ ├─── Type: , MetaData: {IsLastChild() bool } │ └─── Type: , MetaData: {ResetChildren() } ├─── Type: adder_container, MetaData: { } │ ├─── Type: , MetaData: {AddContainer(container *Node[T]) } │ ├─── Type: , MetaData: {AddContainerByData(typeKey string, data T) } │ ├─── Type: , MetaData: {AddChildByData(typeKey string, data T) } │ ├─── Type: , MetaData: {AddChild(child *Node[T]) } │ ├─── Type: , MetaData: {InsertChildItem(parentID uuid.UUID, data T) *Node[T] } │ ├─── Type: , MetaData: {CreateItem(parent *Node[T], data T) } │ ├─── Type: , MetaData: {InsertChildByID(id uuid.UUID) *Node[T] } │ ├─── Type: , MetaData: {InsertChildByName(id uuid.UUID) *Node[T] } │ ├─── Type: , MetaData: {InsertChildByIndex(id uuid.UUID) *Node[T] } │ ├─── Type: , MetaData: {InsertChildByType(id uuid.UUID) *Node[T] } │ └─── Type: , MetaData: {InsertChildByPath(id uuid.UUID) *Node[T] } ├─── Type: remover_container, MetaData: { } │ ├─── Type: , MetaData: {RemoveByID(id uuid.UUID) } │ ├─── Type: , MetaData: {RemoveSelf(id uuid.UUID) } │ ├─── Type: , MetaData: {RemoveChildByID() } │ ├─── Type: , MetaData: {RemoveChildByName() } │ ├─── Type: , MetaData: {RemoveChildByIndex() } │ └─── Type: , MetaData: {RemoveChildByPath() } ├─── Type: updater_container, MetaData: { } │ ├─── Type: , MetaData: {UpdateChildByID(id uuid.UUID, data T) } │ ├─── Type: , MetaData: {UpdateChildByName(id uuid.UUID, data T) } │ ├─── Type: , MetaData: {UpdateChildByIndex(id uuid.UUID, data T) } │ ├─── Type: , MetaData: {UpdateChildByPath(id uuid.UUID, data T) } │ ├─── Type: , MetaData: {UpdateChildByType(id uuid.UUID, data T) } │ ├─── Type: , MetaData: {SwapChild() } │ ├─── Type: , MetaData: {MoveChildTo() } │ └─── Type: , MetaData: {SwapChild() } ├─── Type: finder_container, MetaData: { } │ ├─── Type: , MetaData: {FindChildByID(id uuid.UUID) *Node[T] } │ ├─── Type: , MetaData: {FindChildByName(id uuid.UUID) *Node[T] } │ ├─── Type: , MetaData: {FindChildByIndex(id uuid.UUID) *Node[T] } │ ├─── Type: , MetaData: {FindChildByPath(id uuid.UUID) *Node[T] } │ └─── Type: , MetaData: {FindChildByType(id uuid.UUID) *Node[T] } └─── Type: tableCtx_container, MetaData: { } │ ├─── Type: , MetaData: {SetFormatRowCallback(formatRowCallback func(*Node[T]) string) } │ ├─── Type: , MetaData: {String() string } │ ├─── Type: , MetaData: {format(node *Node[T], s *stream.Stream) } │ ├─── Type: , MetaData: {Enabled() bool } │ ├─── Type: , MetaData: {SetSelectedFunc() } │ ├─── Type: , MetaData: {SetIndent() } │ ├─── Type: , MetaData: {GetPath() } │ ├─── Type: , MetaData: {SetAlign() } │ └─── Type: , MetaData: {MouseHandler() } ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/tview#703
No description provided.