## Overview

The Structured Table for Schedules widget shows tasks and milestones of one or more schedules in a tree table. It displays a schedule's work breakdown structure (WBS) as an interactive, hierarchical table, providing a spreadsheet-like interface where users can view and edit task properties while navigating through the project hierarchy using expand/collapse controls.

**Use when**: Users need to work with task data in a structured, tabular format. This is ideal for data-centric editing tasks such as updating dates, durations, progress percentages, and assignments across multiple tasks. The familiar spreadsheet paradigm makes it accessible to users who prefer working with rows and columns over visual timelines.

**Alternatives**:
- **Single Gantt Link**: When timeline visualization and dependency relationships are more important than tabular editing
- **Embedded Search as Table**: When displaying a flat list of tasks without hierarchical structure
- **Multi-Gantt**: When aggregating tasks across multiple schedules in a timeline view

## Use Cases

### Project Managers Updating Task Details
A project manager needs to update start dates, end dates, and progress percentages for multiple tasks. The tabular format allows rapid data entry, similar to working in a spreadsheet, without needing to open each task individually.

### Work Breakdown Structure Review
During planning sessions, teams review the complete task hierarchy to ensure nothing is missing. The expandable tree structure lets them drill down into specific areas while maintaining context of the overall project structure.

### Status Reporting and Progress Tracking
Managers review task completion status across the project. The tabular view provides a quick scan of progress percentages and status indicators, making it easy to identify tasks that are behind schedule.

### Resource Assignment
When assigning team members to tasks, the table format allows users to see all assignments at once and make bulk updates to the responsible person column.

## Behavior and Capabilities

### Hierarchical Navigation
The widget presents tasks in a tree structure that mirrors the project's work breakdown structure. Parent tasks can be expanded to reveal child tasks, and the entire hierarchy can be navigated through expand/collapse controls. This preserves the logical grouping of work while allowing users to focus on specific areas.

### Inline Editing
Unlike read-only table views, the Schedule Tree Table supports direct editing of task properties within the table cells. Users can modify values without navigating away from the overview, enabling efficient bulk updates.

### Schedule Context Awareness
The widget understands its context within cplace. It can automatically display tasks from the schedule page it's embedded in, or it can be configured to find schedules through search criteria or reference attributes. This flexibility allows the same widget to serve different architectural patterns.

### Automatic Column Selection
Standard schedule-relevant columns are included automatically, covering the essential task properties: names, dates, durations, progress, status indicators, and assignments. This reduces configuration overhead while ensuring users see the information they need.

## Design Considerations

### When to Choose Tree Table Over Gantt
The Tree Table and Gantt views represent complementary perspectives on the same data:

- **Choose Tree Table** when users primarily need to edit data values, perform bulk updates, or review detailed properties across many tasks. The tabular format excels at data manipulation.

- **Choose Gantt** when users need to understand temporal relationships, visualize dependencies, or see how tasks fit together on a timeline. The visual format excels at schedule comprehension.

Many solutions offer both views, allowing users to switch based on their current task.

### Height and Scrolling Trade-offs
Fixed height widgets create predictable layouts but require scrolling for large schedules. Consider the typical schedule size in your solution:
- Smaller heights keep the widget compact but require more scrolling
- Larger heights show more tasks at once but consume more screen space
- Very large schedules may benefit from pagination or filtering strategies

### Placement in Layout Architecture
The Tree Table works well as a dedicated view within a tabbed layout. This separates the data-editing interface from other schedule views, letting users consciously choose their working mode. Placing it alongside a Gantt view on the same page can create visual competition and cognitive overload.

### Performance with Large Hierarchies
Deeply nested or very wide hierarchies may affect rendering performance. For schedules with hundreds of tasks, consider whether users actually need to see the entire structure at once, or whether filtering and drill-down patterns would serve them better.

### Permission Boundaries
Inline editing requires write permissions on the underlying tasks. The widget gracefully handles read-only access by displaying data without edit controls, but designers should consider whether users on a particular layout will have the necessary permissions.

## Related Widgets

### Single Gantt Link
A timeline-focused view of the same schedule data. While the Tree Table emphasizes data manipulation, the Gantt emphasizes visual scheduling. They complement each other and are often offered as alternative views of the same schedule.

### Multi-Gantt
Aggregates tasks from multiple schedules into a single timeline view. Where the Tree Table focuses on one schedule's detailed structure, the Multi-Gantt provides cross-project visibility. They serve different analytical needs.

### Embedded Search as Table
A general-purpose table widget that can display any search results. Unlike the Tree Table, it doesn't understand hierarchical relationships or provide the specialized schedule-aware features. Use it when you need a flat task list without WBS navigation.

### Layout Tabs Widget
Often used as a container to offer users a choice between Tree Table and Gantt views. The fixed-height nature of the Tree Table works well within tabbed layouts where content area consistency matters.

## Data Model Context

The Schedule Tree Table operates on the cplace scheduling data model. It displays Activities and Milestones that belong to a Schedule, automatically traversing the parent-child relationships to build the tree structure. The widget understands how tasks nest within each other and represents this hierarchy through indentation and expand/collapse controls.

This tight integration with the scheduling data model means the widget requires the Project Planning plugin (cf.projektplanung namespace) and must have access to a valid schedule context to function.
