Line data Source code
1 : import 'package:flutter/material.dart'; 2 : import 'package:pal/src/injectors/editor_app/editor_app_context.dart'; 3 : import 'package:pal/src/pal_navigator_observer.dart'; 4 : import 'package:pal/src/services/editor/finder/finder_service.dart'; 5 : import 'package:pal/src/services/editor/helper/helper_editor_service.dart'; 6 : import 'package:pal/src/services/editor/page/page_editor_service.dart'; 7 : import 'package:pal/src/services/editor/project/app_icon_grabber_delegate.dart'; 8 : import 'package:pal/src/services/editor/project/project_editor_service.dart'; 9 : import 'package:pal/src/services/editor/project_gallery/project_gallery_editor_service.dart'; 10 : import 'package:pal/src/services/editor/versions/version_editor_service.dart'; 11 : import 'package:pal/src/services/package_version.dart'; 12 : import 'package:pal/src/services/pal/pal_state_service.dart'; 13 : 14 : class EditorInjector extends InheritedWidget { 15 : 16 : final EditorHelperService _helperService; 17 : 18 : final PageEditorService _pageEditorService; 19 : 20 : final ProjectEditorService _projectEditorService; 21 : 22 : final VersionEditorService _versionEditorService; 23 : 24 : final AppIconGrabberDelegate _appIconGrabberDelegate; 25 : 26 : final PalEditModeStateService _palEditModeStateService; 27 : 28 : final FinderService _finderService; 29 : 30 : final PackageVersionReader _packageVersionReader; 31 : 32 : final ProjectGalleryEditorService _projectGalleryEditorService; 33 : 34 : final PalRouteObserver routeObserver; 35 : 36 : final GlobalKey<NavigatorState> hostedAppNavigatorKey; 37 : 38 6 : EditorInjector({ 39 : Key key, 40 : @required EditorAppContext appContext, 41 : @required this.routeObserver, 42 : @required Widget child, 43 : @required GlobalKey boundaryChildKey, 44 : this.hostedAppNavigatorKey, 45 0 : }) : assert(child != null && appContext != null), 46 12 : this._pageEditorService = PageEditorService.build(boundaryChildKey, appContext.pageRepository), 47 12 : this._projectEditorService = ProjectEditorService.build(appContext.projectRepository), 48 6 : this._helperService = EditorHelperService.build(appContext), 49 6 : this._finderService = FinderService(observer: routeObserver), 50 6 : this._projectGalleryEditorService = ProjectGalleryEditorService.build( 51 6 : projectGalleryRepository: appContext.projectGalleryRepository), 52 6 : this._packageVersionReader = PackageVersionReader(), 53 6 : this._appIconGrabberDelegate = AppIconGrabberDelegate(), 54 6 : this._versionEditorService = VersionEditorService.build( 55 6 : versionRepository: appContext.versionRepository, 56 6 : packageVersionReader: PackageVersionReader()), 57 6 : this._palEditModeStateService = PalEditModeStateService.build(), 58 6 : super(key: key, child: child); 59 : 60 6 : static EditorInjector of(BuildContext context) => 61 6 : context.dependOnInheritedWidgetOfExactType<EditorInjector>(); 62 : 63 0 : @override 64 : bool updateShouldNotify(EditorInjector old) => true; 65 : 66 2 : EditorHelperService get helperService => this._helperService; 67 : 68 2 : PageEditorService get pageEditorService => this._pageEditorService; 69 : 70 6 : PalEditModeStateService get palEditModeStateService => 71 6 : this._palEditModeStateService; 72 : 73 4 : FinderService get finderService => this._finderService; 74 : 75 0 : ProjectEditorService get projectEditorService => this._projectEditorService; 76 : 77 0 : VersionEditorService get versionEditorService => this._versionEditorService; 78 : 79 0 : AppIconGrabberDelegate get appIconGrabberDelegate => 80 0 : this._appIconGrabberDelegate; 81 : 82 0 : PackageVersionReader get packageVersionReader => this._packageVersionReader; 83 : 84 0 : ProjectGalleryEditorService get projectGalleryRepository => this._projectGalleryEditorService; 85 : }