예제 #1
0
        public static Control GetView(JourneyViewModel journeyViewModel)
        {
            var webView = GetWebView(journeyViewModel);

            TabControl tabControl = new TabControl();

            tabControl.Pages.Add(new TabPage(EventListView.GetView(journeyViewModel))
            {
                Text = "Events"
            });
            tabControl.Pages.Add(new TabPage(SpendingListView.GetView(journeyViewModel))
            {
                Text = "Expenses"
            });
            tabControl.Pages.Add(new TabPage(webView)
            {
                Text = "Map"
            });

            var borderCrossingPage = new TabPage();

            borderCrossingPage.Text        = "Border Crossing";
            borderCrossingPage.DataContext = journeyViewModel.Journey;
            borderCrossingPage.BindDataContext(c => c.Enabled, (Journey m) => m.IncludeBorderCrossing);
            borderCrossingPage.EnabledChanged += (sender, e) =>
            {
                if (tabControl.SelectedIndex == 3)
                {
                    tabControl.SelectedIndex = 0;
                }
            };
            borderCrossingPage.Content = BorderCrossingView.GetView(journeyViewModel.Journey.BorderCrossing);

            tabControl.Pages.Add(borderCrossingPage);

            tabControl.SelectedIndexChanged += (sender, e) =>
            {
                if ((sender as TabControl).SelectedPage.Text == "Map")
                {
                    List <string>           wayPoints         = journeyViewModel.GetWayPoints();
                    List <DirectionRequest> directionRequests = MapHelper.GetDirectionRequests(wayPoints);

                    var    jsonDirectionRequests = JsonConvert.SerializeObject(directionRequests);
                    string script = "calculateAndDisplayRoute(" + jsonDirectionRequests + ");";
                    Console.WriteLine(script);
                    webView.ExecuteScript(script);
                }
            };

            //TableLayout layoutGrids = new TableLayout();
            //layoutGrids.Rows.Add(new TableRow(EventListView.GetView(journeyViewModel)) { ScaleHeight = true });
            //layoutGrids.Rows.Add(new TableRow(SpendingListView.GetView(journeyViewModel)) { ScaleHeight = true });

            //var button = new Button();
            //button.Text = "Update map";
            //button.Click += (sender, e) => { webView.ExecuteScript(journeyViewModel.GoogleMapParameters); };

            TableLayout layout = ViewHelper.AppendV(
                GetTitleBar(journeyViewModel.Journey),
                ViewHelper.AppendH(
                    ViewHelper.AppendV(
                        ViewHelper.AppendH(
                            GetWeatherDropDown(journeyViewModel.Journey),
                            GetNoteSlider(journeyViewModel.Journey),
                            GetIncludeBorderCrossing(journeyViewModel.Journey),
                            null
                            ),
                        BivouacView.GetView(journeyViewModel.Journey.Bivouac)
                        )
                    ),
                tabControl
                ) as TableLayout;

            layout.Padding = new Padding(10, 0, 10, 10);
            //layout.BackgroundColor = Colors.White;

            return(layout);
        }