public MapScreen( MapScreenViewModel viewModel = null, MapScreenActionModel actionModel = null, Key key = null ) : base(key: key) { this.viewModel = viewModel; this.actionModel = actionModel; }
public override Widget build(BuildContext context) { return(new StoreConnector <AppState, MapScreenViewModel>( converter: state => { //Debug.LogError("update time: " + Time.realtimeSinceStartup); return new MapScreenViewModel { zoomLevel = state.mapState.zoomLevel, scale = state.mapState.scale, scaleLastFrame = state.mapState.scaleLastFrame, marks = state.mapState.marks, }; }, builder: (context1, viewModel, dispatcher) => { var actionModel = new MapScreenActionModel { mapMoveOffsetX = x => dispatcher.dispatch(new MapHorizontalDragAction { offset = x }), mapMoveOffsetY = y => dispatcher.dispatch(new MapVerticalDragAction { offset = y }), changeZoomLevel = z => dispatcher.dispatch(new ChangeMapZoomLevelAction { zoomLevel = z }), mapZoom = s => dispatcher.dispatch(new MapZoomAction { scale = s }), selectMark = u => dispatcher.dispatch(new SelectMarkAction { pos = u }), addMarkJustLoading = l => dispatcher.dispatch(new AddMarkJustLoadingAction { newMarks = l }), moveMap = () => dispatcher.dispatch <object>(Actions.moveMap()), zoomMap = () => dispatcher.dispatch <object>(Actions.zoomMap()), changeMark = () => dispatcher.dispatch <object>(Actions.changeMark()), loadMark = () => dispatcher.dispatch <object>(Actions.loadMark()), }; return new MapScreen(viewModel: viewModel, actionModel: actionModel); } )); }