123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- /// convert_excel_options_widget.dart
- ///
- /// Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
- ///
- /// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
- /// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
- /// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
- /// This notice may not be removed from this file.
- import 'package:flutter/material.dart';
- import 'package:kmpdfkit_conversion_flutter/models/options/convert_excel_options.dart';
- import 'package:provider/provider.dart';
- import '../../states/convert_options_provider.dart';
- class ConvertExcelOptionsWidget extends StatefulWidget {
- const ConvertExcelOptionsWidget({Key? key}) : super(key: key);
- @override
- State<ConvertExcelOptionsWidget> createState() =>
- _ConvertExcelOptionsWidgetState();
- }
- class _ConvertExcelOptionsWidgetState extends State<ConvertExcelOptionsWidget> {
- @override
- Widget build(BuildContext context) {
- bool containImages = context.select<ConvertOptionsProvider, bool>(
- (value) => value.excelOptions.containImages);
- bool containAnnotations = context.select<ConvertOptionsProvider, bool>(
- (value) => value.excelOptions.containAnnotations);
- return SingleChildScrollView(
- child: Padding(
- padding: const EdgeInsets.all(8),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- const Text('ContainImages'),
- Switch(
- value: containImages,
- onChanged: (value) {
- context
- .read<ConvertOptionsProvider>()
- .changeExcelOptions(containImages: value);
- })
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- const Text('ContainAnnotations'),
- Switch(
- value: containAnnotations,
- onChanged: (value) {
- context
- .read<ConvertOptionsProvider>()
- .changeExcelOptions(containAnnotations: value);
- })
- ],
- ),
- excelWorkSheetOptions((value) {
- context
- .read<ConvertOptionsProvider>()
- .changeExcelOptions(workSheetOptions: value);
- }),
- excelContentOptions((value) {
- context
- .read<ConvertOptionsProvider>()
- .changeExcelOptions(contentOptions: value);
- })
- ],
- )),
- );
- }
- Widget excelWorkSheetOptions(ValueChanged<ExcelWorkSheetOptions> onChanged) {
- ExcelWorkSheetOptions workSheetOptions =
- context.select<ConvertOptionsProvider, ExcelWorkSheetOptions>(
- (value) => value.excelOptions.workSheetOptions);
- return Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text('WorkSheetOptions:'),
- _excelWorkSheetOptionsItem(
- workSheetOptions, ExcelWorkSheetOptions.forEachTable, onChanged),
- _excelWorkSheetOptionsItem(
- workSheetOptions, ExcelWorkSheetOptions.forEachPage, onChanged),
- _excelWorkSheetOptionsItem(
- workSheetOptions, ExcelWorkSheetOptions.forTheDocument, onChanged),
- ],
- );
- }
- Widget _excelWorkSheetOptionsItem(
- ExcelWorkSheetOptions currentWorkSheetOptions,
- ExcelWorkSheetOptions options,
- ValueChanged<ExcelWorkSheetOptions> onChanged) {
- return CheckboxListTile(
- controlAffinity: ListTileControlAffinity.leading,
- title: Text(options.name),
- value: currentWorkSheetOptions == options,
- onChanged: (value) {
- onChanged(options);
- });
- }
- Widget excelContentOptions(ValueChanged<ExcelContentOptions> onChanged) {
- ExcelContentOptions contentOptions =
- context.select<ConvertOptionsProvider, ExcelContentOptions>(
- (value) => value.excelOptions.contentOptions);
- return Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- const Text('ContentOptions:'),
- _excelContentOptionsItem(
- contentOptions, ExcelContentOptions.onlyText, onChanged),
- _excelContentOptionsItem(
- contentOptions, ExcelContentOptions.onlyTable, onChanged),
- _excelContentOptionsItem(
- contentOptions, ExcelContentOptions.allContent, onChanged),
- ],
- );
- }
- Widget _excelContentOptionsItem(
- ExcelContentOptions currentOptions,
- ExcelContentOptions options,
- ValueChanged<ExcelContentOptions> onChanged) {
- return CheckboxListTile(
- controlAffinity: ListTileControlAffinity.leading,
- title: Text(options.name),
- value: currentOptions == options,
- onChanged: (value) {
- onChanged(options);
- });
- }
- }
|