David PHAM-VAN

Move files to example

@@ -16,7 +16,6 @@ @@ -16,7 +16,6 @@
16 16
17 import 'dart:async'; 17 import 'dart:async';
18 import 'dart:io'; 18 import 'dart:io';
19 -import 'dart:typed_data';  
20 19
21 import 'package:flutter/foundation.dart'; 20 import 'package:flutter/foundation.dart';
22 import 'package:flutter/material.dart'; 21 import 'package:flutter/material.dart';
@@ -25,26 +24,12 @@ import 'package:path_provider/path_provider.dart'; @@ -25,26 +24,12 @@ import 'package:path_provider/path_provider.dart';
25 import 'package:pdf/pdf.dart'; 24 import 'package:pdf/pdf.dart';
26 import 'package:pdf/widgets.dart' as pw; 25 import 'package:pdf/widgets.dart' as pw;
27 import 'package:printing/printing.dart'; 26 import 'package:printing/printing.dart';
28 -import 'package:printing_demo/certificate.dart';  
29 import 'package:url_launcher/url_launcher.dart' as ul; 27 import 'package:url_launcher/url_launcher.dart' as ul;
30 28
31 -import 'calendar.dart';  
32 import 'data.dart'; 29 import 'data.dart';
33 -import 'document.dart';  
34 -import 'invoice.dart';  
35 -import 'report.dart';  
36 -import 'resume.dart'; 30 +import 'examples.dart';
37 31
38 class MyApp extends StatefulWidget { 32 class MyApp extends StatefulWidget {
39 - static const examples = <Example>[  
40 - Example('RÉSUMÉ', 'resume.dart', generateResume),  
41 - Example('DOCUMENT', 'document.dart', generateDocument),  
42 - Example('INVOICE', 'invoice.dart', generateInvoice),  
43 - Example('REPORT', 'report.dart', generateReport),  
44 - Example('CALENDAR', 'calendar.dart', generateCalendar),  
45 - Example('CERTIFICATE', 'certificate.dart', generateCertificate, true),  
46 - ];  
47 -  
48 @override 33 @override
49 MyAppState createState() { 34 MyAppState createState() {
50 return MyAppState(); 35 return MyAppState();
@@ -77,14 +62,15 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { @@ -77,14 +62,15 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
77 62
78 _tabController = TabController( 63 _tabController = TabController(
79 vsync: this, 64 vsync: this,
80 - length: MyApp.examples.length, 65 + length: examples.length,
81 initialIndex: _tab, 66 initialIndex: _tab,
82 ); 67 );
83 _tabController!.addListener(() { 68 _tabController!.addListener(() {
84 setState(() { 69 setState(() {
85 _tab = _tabController!.index; 70 _tab = _tabController!.index;
  71 + print('set state 1');
86 }); 72 });
87 - if (MyApp.examples[_tab].needsData && !_hasData && !_pending) { 73 + if (examples[_tab].needsData && !_hasData && !_pending) {
88 _pending = true; 74 _pending = true;
89 askName(context).then((value) { 75 askName(context).then((value) {
90 if (value != null) { 76 if (value != null) {
@@ -100,6 +86,7 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { @@ -100,6 +86,7 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
100 86
101 setState(() { 87 setState(() {
102 printingInfo = info; 88 printingInfo = info;
  89 + print('set state 2');
103 }); 90 });
104 } 91 }
105 92
@@ -152,16 +139,16 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { @@ -152,16 +139,16 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
152 139
153 return Scaffold( 140 return Scaffold(
154 appBar: AppBar( 141 appBar: AppBar(
155 - title: const Text('Pdf Printing Example'), 142 + title: const Text('Flutter PDF Demo'),
156 bottom: TabBar( 143 bottom: TabBar(
157 controller: _tabController, 144 controller: _tabController,
158 - tabs: MyApp.examples.map<Tab>((e) => Tab(text: e.name)).toList(), 145 + tabs: examples.map<Tab>((e) => Tab(text: e.name)).toList(),
159 isScrollable: true, 146 isScrollable: true,
160 ), 147 ),
161 ), 148 ),
162 body: PdfPreview( 149 body: PdfPreview(
163 maxPageWidth: 700, 150 maxPageWidth: 700,
164 - build: (format) => MyApp.examples[_tab].builder(format, _data), 151 + build: (format) => examples[_tab].builder(format, _data),
165 actions: actions, 152 actions: actions,
166 onPrinted: _showPrintedToast, 153 onPrinted: _showPrintedToast,
167 onShared: _showSharedToast, 154 onShared: _showSharedToast,
@@ -176,7 +163,7 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { @@ -176,7 +163,7 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
176 163
177 void _showSources() { 164 void _showSources() {
178 ul.launch( 165 ul.launch(
179 - 'https://github.com/DavBfr/dart_pdf/blob/master/demo/lib/${MyApp.examples[_tab].file}', 166 + 'https://github.com/DavBfr/dart_pdf/blob/master/demo/lib/examples/${examples[_tab].file}',
180 ); 167 );
181 } 168 }
182 169
@@ -208,18 +195,3 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { @@ -208,18 +195,3 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
208 }); 195 });
209 } 196 }
210 } 197 }
211 -  
212 -typedef LayoutCallbackWithData = Future<Uint8List> Function(  
213 - PdfPageFormat pageFormat, CustomData data);  
214 -  
215 -class Example {  
216 - const Example(this.name, this.file, this.builder, [this.needsData = false]);  
217 -  
218 - final String name;  
219 -  
220 - final String file;  
221 -  
222 - final LayoutCallbackWithData builder;  
223 -  
224 - final bool needsData;  
225 -}  
  1 +import 'dart:async';
  2 +import 'dart:typed_data';
  3 +
  4 +import 'package:pdf/pdf.dart';
  5 +
  6 +import 'data.dart';
  7 +import 'examples/calendar.dart';
  8 +import 'examples/certificate.dart';
  9 +import 'examples/document.dart';
  10 +import 'examples/invoice.dart';
  11 +import 'examples/report.dart';
  12 +import 'examples/resume.dart';
  13 +
  14 +const examples = <Example>[
  15 + Example('RÉSUMÉ', 'resume.dart', generateResume),
  16 + Example('DOCUMENT', 'document.dart', generateDocument),
  17 + Example('INVOICE', 'invoice.dart', generateInvoice),
  18 + Example('REPORT', 'report.dart', generateReport),
  19 + Example('CALENDAR', 'calendar.dart', generateCalendar),
  20 + Example('CERTIFICATE', 'certificate.dart', generateCertificate, true),
  21 +];
  22 +
  23 +typedef LayoutCallbackWithData = Future<Uint8List> Function(
  24 + PdfPageFormat pageFormat, CustomData data);
  25 +
  26 +class Example {
  27 + const Example(this.name, this.file, this.builder, [this.needsData = false]);
  28 +
  29 + final String name;
  30 +
  31 + final String file;
  32 +
  33 + final LayoutCallbackWithData builder;
  34 +
  35 + final bool needsData;
  36 +}
@@ -21,7 +21,7 @@ import 'package:intl/intl.dart'; @@ -21,7 +21,7 @@ import 'package:intl/intl.dart';
21 import 'package:pdf/pdf.dart'; 21 import 'package:pdf/pdf.dart';
22 import 'package:pdf/widgets.dart'; 22 import 'package:pdf/widgets.dart';
23 23
24 -import 'data.dart'; 24 +import '../data.dart';
25 25
26 class Calendar extends StatelessWidget { 26 class Calendar extends StatelessWidget {
27 Calendar({ 27 Calendar({
@@ -23,7 +23,7 @@ import 'package:pdf/pdf.dart'; @@ -23,7 +23,7 @@ import 'package:pdf/pdf.dart';
23 import 'package:pdf/widgets.dart' as pw; 23 import 'package:pdf/widgets.dart' as pw;
24 import 'package:vector_math/vector_math_64.dart'; 24 import 'package:vector_math/vector_math_64.dart';
25 25
26 -import 'data.dart'; 26 +import '../data.dart';
27 27
28 final _cache = <String, Uint8List>{}; 28 final _cache = <String, Uint8List>{};
29 29
@@ -19,7 +19,7 @@ import 'dart:typed_data'; @@ -19,7 +19,7 @@ import 'dart:typed_data';
19 import 'package:pdf/pdf.dart'; 19 import 'package:pdf/pdf.dart';
20 import 'package:pdf/widgets.dart' as pw; 20 import 'package:pdf/widgets.dart' as pw;
21 21
22 -import 'data.dart'; 22 +import '../data.dart';
23 23
24 Future<Uint8List> generateDocument( 24 Future<Uint8List> generateDocument(
25 PdfPageFormat format, CustomData data) async { 25 PdfPageFormat format, CustomData data) async {
@@ -21,7 +21,7 @@ import 'package:intl/intl.dart'; @@ -21,7 +21,7 @@ import 'package:intl/intl.dart';
21 import 'package:pdf/pdf.dart'; 21 import 'package:pdf/pdf.dart';
22 import 'package:pdf/widgets.dart' as pw; 22 import 'package:pdf/widgets.dart' as pw;
23 23
24 -import 'data.dart'; 24 +import '../data.dart';
25 25
26 Future<Uint8List> generateInvoice( 26 Future<Uint8List> generateInvoice(
27 PdfPageFormat pageFormat, CustomData data) async { 27 PdfPageFormat pageFormat, CustomData data) async {
@@ -21,7 +21,7 @@ import 'package:flutter/services.dart'; @@ -21,7 +21,7 @@ import 'package:flutter/services.dart';
21 import 'package:pdf/pdf.dart'; 21 import 'package:pdf/pdf.dart';
22 import 'package:pdf/widgets.dart' as pw; 22 import 'package:pdf/widgets.dart' as pw;
23 23
24 -import 'data.dart'; 24 +import '../data.dart';
25 25
26 Future<Uint8List> generateReport( 26 Future<Uint8List> generateReport(
27 PdfPageFormat pageFormat, CustomData data) async { 27 PdfPageFormat pageFormat, CustomData data) async {
@@ -21,5 +21,10 @@ import 'app.dart'; @@ -21,5 +21,10 @@ import 'app.dart';
21 21
22 void main() { 22 void main() {
23 debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia; 23 debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
24 - runApp(MaterialApp(home: MyApp())); 24 + runApp(
  25 + MaterialApp(
  26 + title: 'Flutter PDF Demo',
  27 + home: MyApp(),
  28 + ),
  29 + );
25 } 30 }
@@ -3,7 +3,7 @@ import 'dart:io'; @@ -3,7 +3,7 @@ import 'dart:io';
3 import 'package:flutter_test/flutter_test.dart'; 3 import 'package:flutter_test/flutter_test.dart';
4 import 'package:pdf/pdf.dart'; 4 import 'package:pdf/pdf.dart';
5 import 'package:printing_demo/data.dart'; 5 import 'package:printing_demo/data.dart';
6 -import 'package:printing_demo/document.dart'; 6 +import 'package:printing_demo/examples/document.dart';
7 7
8 void main() { 8 void main() {
9 testWidgets('Pdf Generate the document', (WidgetTester tester) async { 9 testWidgets('Pdf Generate the document', (WidgetTester tester) async {
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 <!-- Favicon --> 26 <!-- Favicon -->
27 <link rel="icon" type="image/png" href="favicon.png"/> 27 <link rel="icon" type="image/png" href="favicon.png"/>
28 28
29 - <title>printing_demo</title> 29 + <title>Flutter PDF Demo</title>
30 <link rel="manifest" href="manifest.json"> 30 <link rel="manifest" href="manifest.json">
31 </head> 31 </head>
32 <body> 32 <body>