AdaptivePlanningDesk<T> class

A staged planning workspace that coordinates a plan list, an active plan focus surface, a risks panel, and a milestones panel from one adaptive model.

Inheritance

Constructors

AdaptivePlanningDesk({Key? key, required List<T> plans, required Widget itemBuilder(BuildContext context, T plan, bool selected, VoidCallback onTap), required Widget focusBuilder(BuildContext context, T plan), required Widget risksBuilder(BuildContext context, T plan), required Widget milestonesBuilder(BuildContext context, T plan), required String planTitle, required String risksTitle, required String milestonesTitle, Widget? header, Widget? emptyState, String? planDescription, Widget? planLeading, String? risksDescription, Widget? risksLeading, String? milestonesDescription, Widget? milestonesLeading, String modalPlanLabel = 'Open plans', Widget modalPlanIcon = const Icon(Icons.view_list_outlined), String modalRisksLabel = 'Open risks', Widget modalRisksIcon = const Icon(Icons.warning_amber_outlined), String modalMilestonesLabel = 'Open milestones', Widget modalMilestonesIcon = const Icon(Icons.flag_outlined), AdaptiveSize planDockedAt = AdaptiveSize.medium, AdaptiveSize risksDockedAt = AdaptiveSize.expanded, AdaptiveSize milestonesDockedAt = AdaptiveSize.expanded, AdaptiveHeight minimumPlanDockedHeight = AdaptiveHeight.compact, AdaptiveHeight minimumRisksDockedHeight = AdaptiveHeight.medium, AdaptiveHeight minimumMilestonesDockedHeight = AdaptiveHeight.expanded, bool useContainerConstraints = true, bool considerOrientation = false, int? selectedIndex, int initialIndex = 0, ValueChanged<int>? onSelectedIndexChanged, double spacing = 16, double itemSpacing = 12, int planFlex = 2, int focusFlex = 4, int risksFlex = 2, int focusPaneFlex = 3, int milestonesFlex = 2, EdgeInsetsGeometry planPadding = const EdgeInsets.all(16), EdgeInsetsGeometry focusPadding = const EdgeInsets.all(16), EdgeInsetsGeometry risksPadding = const EdgeInsets.all(16), EdgeInsetsGeometry milestonesPadding = const EdgeInsets.all(16), double modalHeightFactor = 0.72, bool showModalDragHandle = true, bool animateSize = true, Duration animationDuration = const Duration(milliseconds: 250), Curve animationCurve = Curves.easeInOutCubic})
Creates an adaptive planning desk.
const

Properties

animateSize bool
Whether to animate size changes when the mode changes.
final
animationCurve Curve
Curve used by AnimatedSize and AnimatedSwitcher.
final
animationDuration Duration
Duration used by AnimatedSize and AnimatedSwitcher.
final
considerOrientation bool
Whether orientation should influence container-based breakpoint selection.
final
emptyState Widget?
Optional empty state shown when plans is empty.
final
focusBuilder Widget Function(BuildContext context, T plan)
Builds the active plan focus surface for the selected plan.
final
focusFlex int
Flex used by the focus region.
final
focusPadding EdgeInsetsGeometry
Padding applied inside the focus surface.
final
focusPaneFlex int
Flex used by the focus surface when milestones are docked below it.
final
hashCode int
The hash code for this object.
no setterinherited
Optional header shown above the active focus surface.
final
initialIndex int
Initial selected plan index for uncontrolled usage.
final
itemBuilder Widget Function(BuildContext context, T plan, bool selected, VoidCallback onTap)
Builds an individual plan row.
final
itemSpacing double
Space between adjacent plan rows.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
milestonesBuilder Widget Function(BuildContext context, T plan)
Builds the milestones panel for the selected plan.
final
milestonesDescription String?
Optional description shown below milestonesTitle.
final
milestonesDockedAt AdaptiveSize
Semantic size at which the milestones panel should dock inline.
final
milestonesFlex int
Flex used by the docked milestones region.
final
milestonesLeading Widget?
Optional leading widget shown beside milestonesTitle.
final
milestonesPadding EdgeInsetsGeometry
Padding applied inside the milestones surface.
final
milestonesTitle String
Title shown above the milestones panel.
final
minimumMilestonesDockedHeight AdaptiveHeight
Minimum height class required before milestones can dock inline.
final
minimumPlanDockedHeight AdaptiveHeight
Minimum height class required before the plan list can dock inline.
final
minimumRisksDockedHeight AdaptiveHeight
Minimum height class required before risks can dock inline.
final
modalHeightFactor double
Height factor used by compact modal sheets.
final
modalMilestonesIcon Widget
Icon used by the compact milestones trigger.
final
modalMilestonesLabel String
Label used by the compact milestones trigger.
final
modalPlanIcon Widget
Icon used by the compact plan-list trigger.
final
modalPlanLabel String
Label used by the compact plan-list trigger.
final
modalRisksIcon Widget
Icon used by the compact risks trigger.
final
modalRisksLabel String
Label used by the compact risks trigger.
final
onSelectedIndexChanged ValueChanged<int>?
Called when the selected plan changes.
final
planDescription String?
Optional description shown below planTitle.
final
planDockedAt AdaptiveSize
Semantic size at which the plan list should dock inline.
final
planFlex int
Flex used by the docked plan-list region.
final
planLeading Widget?
Optional leading widget shown beside planTitle.
final
planPadding EdgeInsetsGeometry
Padding applied inside the plan list surface.
final
plans List<T>
Plans shown in the list.
final
planTitle String
Title shown above the plan list.
final
risksBuilder Widget Function(BuildContext context, T plan)
Builds the risks panel for the selected plan.
final
risksDescription String?
Optional description shown below risksTitle.
final
risksDockedAt AdaptiveSize
Semantic size at which the risks panel should dock inline.
final
risksFlex int
Flex used by the docked risks region.
final
risksLeading Widget?
Optional leading widget shown beside risksTitle.
final
risksPadding EdgeInsetsGeometry
Padding applied inside the risks surface.
final
risksTitle String
Title shown above the risks panel.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedIndex int?
Optional controlled selected plan index.
final
showModalDragHandle bool
Whether to show a drag handle in compact modal sheets.
final
spacing double
Space between adjacent regions.
final
useContainerConstraints bool
Whether to derive layout decisions from parent constraints.
final

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited