Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion packages/syncfusion_flutter_treemap/lib/src/layouts.dart
Original file line number Diff line number Diff line change
Expand Up @@ -712,11 +712,15 @@ class Treemap extends StatefulWidget {
required this.tooltipSettings,
required this.enableDrilldown,
required this.breadcrumbs,
this.rebuildToken,
}) : super(key: key);

/// Represents the length of the given data source.
final int dataCount;

/// Optional token to force widget rebuild when data values change.
final Object? rebuildToken;

/// Returns a value based on which index passed through it.
final IndexedDoubleValueMapper weightValueMapper;

Expand Down Expand Up @@ -1194,7 +1198,8 @@ class _TreemapState extends State<Treemap> with SingleTickerProviderStateMixin {
if (_levelsLength != widget.levels.length) {
_levelsLength = widget.levels.length;
_invalidate();
} else if (widget.dataCount != oldWidget.dataCount) {
} else if (widget.dataCount != oldWidget.dataCount ||
widget.rebuildToken != oldWidget.rebuildToken) {
_invalidate();
}

Expand Down
31 changes: 31 additions & 0 deletions packages/syncfusion_flutter_treemap/lib/treemap.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1870,6 +1870,7 @@ class SfTreemap extends StatelessWidget {
this.tooltipSettings = const TreemapTooltipSettings(),
this.enableDrilldown = false,
this.breadcrumbs,
this.rebuildToken,
}) : assert(dataCount > 0),
assert(levels.length > 0),
assert(colorMappers == null || colorMappers.length > 0),
Expand Down Expand Up @@ -1991,6 +1992,7 @@ class SfTreemap extends StatelessWidget {
this.tileHoverBorder,
this.enableDrilldown = false,
this.breadcrumbs,
this.rebuildToken,
}) : assert(dataCount > 0),
assert(levels.length > 0),
assert(colorMappers == null || colorMappers.length > 0),
Expand Down Expand Up @@ -2111,6 +2113,7 @@ class SfTreemap extends StatelessWidget {
this.tileHoverBorder,
this.enableDrilldown = false,
this.breadcrumbs,
this.rebuildToken,
}) : assert(dataCount > 0),
assert(levels.length > 0),
assert(colorMappers == null || colorMappers.length > 0),
Expand Down Expand Up @@ -2177,6 +2180,33 @@ class SfTreemap extends StatelessWidget {
/// * [SfTreemap], to know how treemap render the tiles.
final int dataCount;

/// Optional token to force widget rebuild when data values change.
///
/// The treemap widget only rebuilds when [dataCount] changes. If data values
/// change but the count remains the same, use this parameter to trigger a
/// rebuild by changing its value.
///
/// Example:
/// ```dart
/// int _rebuildToken = 0;
///
/// void updateData() {
/// setState(() {
/// _data = newData;
/// _rebuildToken++;
/// });
/// }
///
/// SfTreemap(
/// dataCount: _data.length,
/// rebuildToken: _rebuildToken,
/// )
/// ```
///
/// See also:
/// * [SfTreemap.dataCount], to know how to set the data count.
final Object? rebuildToken;

/// Returns the values which determines the weight of each tile.
///
/// The quantitative value of the underlying data has to be returned from the
Expand Down Expand Up @@ -3085,6 +3115,7 @@ class SfTreemap extends StatelessWidget {
tooltipSettings: tooltipSettings,
enableDrilldown: enableDrilldown,
breadcrumbs: breadcrumbs,
rebuildToken: rebuildToken,
);
}

Expand Down