import 'dart:math';

import 'package:fis_lib_report/pages/components/input_imageList.dart';
import 'package:fis_lib_report/pages/helpler.dart';
import 'package:fis_lib_report/pages/paragraph_page.dart';
import 'package:fis_lib_report/pages/rt_table.dart';
import 'package:fis_lib_report/report/cellPostion.dart';
import 'package:fis_lib_report/report/element_type.dart';
import 'package:fis_lib_report/report/inputImageList.dart';
import 'package:fis_lib_report/report/interfaces/block_element.dart';
import 'package:fis_lib_report/report/paragraph.dart';
import 'package:fis_lib_report/report/rt_table.dart';
import 'package:fis_lib_report/report_info/report_info.dart';
import 'package:flutter/material.dart';

class BlockElementPage extends StatefulWidget {
  const BlockElementPage({required this.element, Key? key}) : super(key: key);

  final IBlockElement element;

  @override
  State<StatefulWidget> createState() {
    return _BlockElementState();
  }
}

class _BlockElementState extends State<BlockElementPage> {
  ElementType? _type;
  @override
  initState() {
    IBlockElement e = widget.element;
    _type = e.elementType!;
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    if (_type != null && _type!.name == ElementType.rtTable!.name) {
      RTTable t = widget.element as RTTable;
      return RTTablePage(element: t);
    } else if (_type != null && _type!.name == ElementType.paragraph!.name) {
      final paragraph = widget.element as Paragraph;
      return ParagraphPage(paragraph: paragraph);
    } else if (_type != null && _type!.name == ElementType.imageList!.name) {
      final inputImageList = widget.element as InputImageList;

      return RInputImageList(inputImageList);
    }
    return Container(
      height: 20,
      decoration: TestBoxDecoration.buildDecoration(),
    );
  }
}