mirror of https://github.com/flutter/samples.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
4.8 KiB
126 lines
4.8 KiB
// Copyright 2018 the Charts project authors. Please see the AUTHORS file
|
|
// for details.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
import 'package:charts_flutter/flutter.dart' as charts;
|
|
import 'package:flutter/material.dart';
|
|
import 'dart:developer';
|
|
import 'app_config.dart';
|
|
import 'drawer.dart';
|
|
import 'a11y/a11y_gallery.dart' as a11y show buildGallery;
|
|
import 'bar_chart/bar_gallery.dart' as bar show buildGallery;
|
|
import 'time_series_chart/time_series_gallery.dart' as time_series
|
|
show buildGallery;
|
|
import 'line_chart/line_gallery.dart' as line show buildGallery;
|
|
import 'scatter_plot_chart/scatter_plot_gallery.dart' as scatter_plot
|
|
show buildGallery;
|
|
import 'combo_chart/combo_gallery.dart' as combo show buildGallery;
|
|
import 'pie_chart/pie_gallery.dart' as pie show buildGallery;
|
|
import 'axes/axes_gallery.dart' as axes show buildGallery;
|
|
import 'behaviors/behaviors_gallery.dart' as behaviors show buildGallery;
|
|
import 'i18n/i18n_gallery.dart' as i18n show buildGallery;
|
|
import 'legends/legends_gallery.dart' as legends show buildGallery;
|
|
|
|
/// Main entry point of the gallery app.
|
|
///
|
|
/// This renders a list of all available demos.
|
|
class Home extends StatelessWidget {
|
|
final bool showPerformanceOverlay;
|
|
final ValueChanged<bool> onShowPerformanceOverlayChanged;
|
|
final a11yGalleries = a11y.buildGallery();
|
|
final barGalleries = bar.buildGallery();
|
|
final timeSeriesGalleries = time_series.buildGallery();
|
|
final lineGalleries = line.buildGallery();
|
|
final scatterPlotGalleries = scatter_plot.buildGallery();
|
|
final comboGalleries = combo.buildGallery();
|
|
final pieGalleries = pie.buildGallery();
|
|
final axesGalleries = axes.buildGallery();
|
|
final behaviorsGalleries = behaviors.buildGallery();
|
|
final i18nGalleries = i18n.buildGallery();
|
|
final legendsGalleries = legends.buildGallery();
|
|
|
|
Home(
|
|
{Key? key,
|
|
required this.showPerformanceOverlay,
|
|
required this.onShowPerformanceOverlayChanged})
|
|
: super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
var galleries = <Widget>[];
|
|
|
|
galleries.addAll(
|
|
a11yGalleries.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add example bar charts.
|
|
galleries.addAll(
|
|
barGalleries.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add example time series charts.
|
|
galleries.addAll(timeSeriesGalleries
|
|
.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add example line charts.
|
|
galleries.addAll(
|
|
lineGalleries.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add example scatter plot charts.
|
|
galleries.addAll(scatterPlotGalleries
|
|
.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add example pie charts.
|
|
galleries.addAll(
|
|
comboGalleries.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add example pie charts.
|
|
galleries.addAll(
|
|
pieGalleries.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add example custom axis.
|
|
galleries.addAll(
|
|
axesGalleries.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
galleries.addAll(behaviorsGalleries
|
|
.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add legends examples
|
|
galleries.addAll(legendsGalleries
|
|
.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
// Add examples for i18n.
|
|
galleries.addAll(
|
|
i18nGalleries.map((gallery) => gallery.buildGalleryListTile(context)));
|
|
|
|
_setupPerformance();
|
|
|
|
return Scaffold(
|
|
drawer: GalleryDrawer(
|
|
showPerformanceOverlay: showPerformanceOverlay,
|
|
onShowPerformanceOverlayChanged: onShowPerformanceOverlayChanged),
|
|
appBar: AppBar(title: Text(defaultConfig.appName)),
|
|
body: ListView(padding: kMaterialListPadding, children: galleries),
|
|
);
|
|
}
|
|
|
|
void _setupPerformance() {
|
|
// Change [printPerformance] to true and set the app to release mode to
|
|
// print performance numbers to console. By default, Flutter builds in debug
|
|
// mode and this mode is slow. To build in release mode, specify the flag
|
|
// blaze-run flag "--define flutter_build_mode=release".
|
|
// The build target must also be an actual device and not the emulator.
|
|
charts.Performance.time = (String tag) => Timeline.startSync(tag);
|
|
charts.Performance.timeEnd = (_) => Timeline.finishSync();
|
|
}
|
|
}
|