LogViewerPage constructor

LogViewerPage({
  1. required LogReader reader,
  2. required DiagnosticReporter diagnostics,
  3. TagPredicate? isTagVisible,
  4. int pageSize = LogViewerController.defaultPageSize,
  5. int maxEntries = LogViewerController.defaultMaxEntries,
  6. LogFilter initialFilter = const LogFilter(),
  7. LogEntrySelectedCallback? onEntrySelected,
  8. LogExportCallback? onExport,
  9. Key? key,
})

Page with its own controller over reader: the controller is created when the page opens and disposed when it closes, along with the loaded entries and the selected filter.

pageSize is how many entries to load at a time, maxEntries how many to keep while the page is open (see LogViewerController). initialFilter is the filter on opening: the user changes levels and tags in the filter sheet, the sheet preserves the other conditions (time range, attributes), so the page can be opened, for example, on one user's entries: LogFilter(attributes: [userId('42')]). diagnostics is where read and export failures go, usually RootLogger.diagnostics; there is no default, see LogViewerController.diagnostics.

Implementation

LogViewerPage({
  required LogReader reader,
  required DiagnosticReporter diagnostics,
  this.isTagVisible,
  int pageSize = LogViewerController.defaultPageSize,
  int maxEntries = LogViewerController.defaultMaxEntries,
  LogFilter initialFilter = const LogFilter(),
  this.onEntrySelected,
  this.onExport,
  super.key,
}) : _controllerSource = _OwnController(
       reader: reader,
       pageSize: pageSize,
       maxEntries: maxEntries,
       diagnostics: diagnostics,
       initialFilter: initialFilter,
     );