Exemple #1
0
 public MapScreen(
     MapScreenViewModel viewModel     = null,
     MapScreenActionModel actionModel = null,
     Key key = null
     ) : base(key: key)
 {
     this.viewModel   = viewModel;
     this.actionModel = actionModel;
 }
Exemple #2
0
        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);
            }
                       ));
        }