PaginatorModel class
A paginator widget for handling pagination state and rendering.
The paginator manages page state and provides rendering for pagination indicators. It can display pages as Arabic numerals ("1/10") or dots ("●○○").
Example
class ListModel implements Model {
final List<String> items;
final PaginatorModel paginator;
ListModel({required this.items, PaginatorModel? paginator})
: paginator = paginator ?? PaginatorModel(perPage: 10)
..setTotalPages(items.length);
@override
(Model, Cmd?) update(Msg msg) {
final (newPaginator, cmd) = paginator.update(msg);
return (
ListModel(items: items, paginator: newPaginator as PaginatorModel),
cmd,
);
}
@override
String view() {
final (start, end) = paginator.getSliceBounds(items.length);
final visibleItems = items.sublist(start, end);
return '''
${visibleItems.map((i) => '• $i').join('\n')}
${paginator.view()}
''';
}
}
- Inheritance
-
- Object
- Model
- ViewComponent
- PaginatorModel
Constructors
- PaginatorModel({PaginationType type = PaginationType.arabic, int page = 0, int perPage = 1, int totalPages = 1, String activeDot = '•', String inactiveDot = '○', String arabicFormat = '%d/%d', PaginatorKeyMap? keyMap})
- Creates a new paginator model.
Properties
- activeDot → String
-
Character for the active page dot.
final
- arabicFormat → String
-
Format string for Arabic pagination (e.g., "%d/%d").
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- inactiveDot → String
-
Character for inactive page dots.
final
- keyMap → PaginatorKeyMap
-
Key bindings for navigation.
final
- onFirstPage → bool
-
Whether we're on the first page.
no setter
- onLastPage → bool
-
Whether we're on the last page.
no setter
- page → int
-
The current page (0-indexed).
final
- perPage → int
-
Number of items per page.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- totalPages → int
-
Total number of pages.
final
- type → PaginationType
-
The type of pagination display.
final
Methods
-
copyWith(
{PaginationType? type, int? page, int? perPage, int? totalPages, String? activeDot, String? inactiveDot, String? arabicFormat, PaginatorKeyMap? keyMap}) → PaginatorModel - Creates a copy with the given fields replaced.
-
getSliceBounds(
int length) → (int, int) - Returns the slice bounds for the current page.
-
goToPage(
int p) → PaginatorModel - Navigates to a specific page.
-
init(
) → Cmd? -
Returns an optional command to execute on program startup.
override
-
itemsOnPage(
int totalItems) → int - Returns the number of items on the current page.
-
nextPage(
) → PaginatorModel - Navigates to the next page.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
prevPage(
) → PaginatorModel - Navigates to the previous page.
-
setTotalPages(
int items) → PaginatorModel - Calculates the total number of pages from the given item count.
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
Msg msg) → (PaginatorModel, Cmd?) -
Updates the component state in response to a message.
override
-
view(
) → String -
Renders the current model state for display.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited