LCOV - code coverage report
Current view: top level - src/ui/editor/pages/helper_editor/helpers/editor_anchored_helper - editor_anchored_helper_presenter.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 22 22 100.0 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:flutter/material.dart';
       2             : import 'package:mvvm_builder/mvvm_builder.dart';
       3             : import 'package:pal/src/services/editor/finder/finder_service.dart';
       4             : import 'package:pal/src/database/entity/helper/helper_trigger_type.dart';
       5             : import 'package:pal/src/database/entity/helper/helper_type.dart';
       6             : import 'package:pal/src/ui/editor/pages/helper_editor/helper_editor_viewmodel.dart';
       7             : 
       8             : import 'editor_anchored_helper.dart';
       9             : import 'editor_anchored_helper_viewmodel.dart';
      10             : 
      11             : // this is the key used in our editor to inject all widgets in
      12             : const EDITOR_PARENT_NODE_KEY = "EditorPage";
      13             : 
      14             : class EditorAnchoredFullscreenPresenter extends Presenter<AnchoredFullscreenHelperViewModel, EditorAnchoredFullscreenHelperView> {
      15             :   final FinderService finderService;
      16             : 
      17           1 :   EditorAnchoredFullscreenPresenter(EditorAnchoredFullscreenHelperView viewInterface, this.finderService)
      18           1 :     : super(
      19           1 :         AnchoredFullscreenHelperViewModel(
      20           1 :           helper: HelperViewModel(
      21             :           name: 'test',
      22             :           triggerType: HelperTriggerType.ON_SCREEN_VISIT,
      23             :           helperType: HelperType.ANCHORED_OVERLAYED_HELPER,
      24             :         )
      25             :       ), viewInterface) {
      26           1 :     assert(finderService != null, 'A finder service must be provided');
      27           3 :     viewModel.userPageElements = Map();
      28           2 :     viewModel.title = "My helper title";
      29           2 :     viewModel.description = "Lorem ipsum lorem ipsum lorem ipsum";
      30             :   }
      31             : 
      32           1 :   @override
      33             :   void afterViewInit() {
      34           1 :     scanElements();
      35             :   }
      36             : 
      37             :   // this methods scan elements on the user page we want to add an helper
      38             :   // this load all elements with their bounds + key
      39           1 :   Future scanElements() async {
      40           3 :     var elements = await finderService.scan();
      41             :     // var bounds = elementFinder.scan(omitChildsOf: ValueKey(EDITOR_PARENT_NODE_KEY));
      42           4 :     viewModel.userPageElements = elements.map((key, value) =>
      43           4 :         new MapEntry(key, new WidgetElementModel(value.bounds, value.offset)));
      44           1 :     refreshView();
      45             :   }
      46             : 
      47           1 :   Future onTapElement(String key) async {
      48           2 :     var previouslySelected = viewModel.selectedAnchor;
      49             :     if (previouslySelected != null) {
      50           2 :       previouslySelected.value.selected = false;
      51             :     }
      52           4 :     viewModel.userPageElements[key].selected = true;
      53           3 :     var element = await finderService.searchChildElement(key);
      54           5 :     viewModel.writeArea = await finderService.getLargestAvailableSpace(element);
      55           1 :     refreshView();
      56             :   }
      57             : }

Generated by: LCOV version 1.14