## Overview

The Tree-structure Table widget provides a table with tree functionality. It displays hierarchical page relationships in a combined tree-table format, enabling users to navigate through parent-child page structures while viewing associated attribute data in configurable columns. The widget supports expand/collapse functionality for tree nodes and includes a rich context menu with common page operations.

This widget is a concrete implementation of the platform's abstract `TreeTableWidgetDefinition`, providing ready-to-use functionality without requiring custom frontend development. It leverages 100% platform rendering capabilities for reliability and maintainability.

## Use Cases

### Project and Work Breakdown Structures
Display project hierarchies with tasks, sub-tasks, and deliverables. Navigate through complex project organizations and work package breakdowns in a structured format.

### Organizational Hierarchies
Visualize organizational structures including departments, teams, and roles. Display reporting relationships and navigate through organizational units.

### Document and Content Hierarchies
Show document folder structures and content hierarchies such as chapters, sections, and sub-sections. Useful for navigating through knowledge bases.

### Product and Component Structures
Display product hierarchies, component breakdowns, and system architectures. Navigate through technical structures and dependencies.

### Navigation and Overview Pages
Provide overview pages showing entire page structures and serve as entry points to complex information architectures. Place this widget on type layout pages where the embedding page is a concrete data instance with hierarchy relationships.

### Limitations
- **Not suitable for dashboards without explicit root node configuration**: The widget resolves its root node in priority order: (1) connected table selection, (2) explicitly configured `rootNode`, (3) embedding page fallback. On a dashboard page without a configured root node, the fallback uses the dashboard page itself as root. Since no data pages reference the dashboard page through hierarchy attributes, the tree shows only the dashboard page as a single empty row. To use this widget on a dashboard, configure an explicit `rootNode` — or prefer `cf.platform.embeddedSearchAsTable` with grouping for dashboard-based hierarchical views.

## Design Considerations

### When to Use
- Displaying parent-child page relationships with associated data columns
- Users need to navigate through multi-level hierarchies efficiently
- Combining tree navigation with tabular data display
- Quick access to context menu actions on hierarchical items is valuable

### When Not to Use
- Simple lists without hierarchy (use Table widget instead)
- Data without parent-child relationships (use regular Table widget)
- Complex custom interactions that exceed platform rendering capabilities

### Configuration Requirements
- Pages must have a parent-child relationship attribute defined
- At least one attribute must be configured for column display
- Search configuration defines which page types appear in the tree
- Default depth setting affects initial load performance for large hierarchies

### Context Menu Features
The widget provides context menu actions including: New Subpage, Open in New Tab, Expand All Children, Copy, Move, and Delete. These actions require appropriate user permissions.

## Related Patterns and Alternatives

- **Table Widget** (`cf.cplace.platform.tableWidget`): For flat data without hierarchical relationships
- **Extended Tree Table Widget** (`cf.cplace.extendedTreeTableWidget`): For more advanced tree-table configurations
- **Tree widgets**: When only tree navigation is needed without tabular data columns
- **Connected Table Filter**: For tables with external filtering capabilities
