protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (await CoreData.Initialize())
            {
                //iterate through the folder and get all timetables
                if (await CoreData.GetTimetables())
                {
                }
            }
            else
            {
                //if something happened then suggest a fix for the user
                MessageDialog dialog = new MessageDialog("There was a problem initializing the data storage.\nTry closing and reopening the app.", "Oops");
                await dialog.ShowAsync();
            }

            back.Tapped += (a, b) => Frame.Navigate(typeof(StartPage));
            query        = e.Parameter as string;
            header.Text  = "Search results for " + '"' + query + '"';
            foreach (StudentDataBundle tb in CoreData.Timetables)
            {
                ComboBoxItem item = new ComboBoxItem {
                    Content = tb.Name, Tag = tb
                };
                timetables.Items.Add(item);
            }

            timetables.SelectedIndex = 0;

            foreach (Course model in ((timetables.SelectedItem as FrameworkElement).Tag as StudentDataBundle).Courses)
            {
                ComboBoxItem item = new ComboBoxItem {
                    Content = model.Name, Tag = model, Foreground = new SolidColorBrush(model.TileColor)
                };
                classes.Items.Add(item);
            }
            classes.SelectedIndex = 0;


            timetables.SelectionChanged += (a, b) =>
            {
                classes.Items.Clear();
                foreach (Course model in ((timetables.SelectedItem as FrameworkElement).Tag as StudentDataBundle).Courses)
                {
                    ComboBoxItem item = new ComboBoxItem {
                        Content = model.Name, Tag = model, Foreground = new SolidColorBrush(model.TileColor)
                    };
                    classes.Items.Add(item);
                }
                if (classes.Items.Count > 0)
                {
                    classes.SelectedIndex = 0;
                }
                Search();
            };



            foreach (Module module in ((classes.SelectedItem as FrameworkElement).Tag as Course).Modules)
            {
                ComboBoxItem item = new ComboBoxItem {
                    Content = module.Name, Tag = module
                };
                modules.Items.Add(item);
            }
            if (modules.Items.Count > 0)
            {
                modules.SelectedIndex = 0;
            }

            classes.SelectionChanged += (a, b) =>
            {
                modules.Items.Clear();
                foreach (Module module in ((classes.SelectedItem as FrameworkElement).Tag as Course).Modules)
                {
                    ComboBoxItem item = new ComboBoxItem {
                        Content = module.Name, Tag = module
                    };
                    modules.Items.Add(item);
                }
                if (modules.Items.Count > 0)
                {
                    modules.SelectedIndex = 0;
                }
                Search();
            };

            target.SelectionChanged += (a, b) => Search();
            everywhere.Tapped       += (a, b) =>
            {
                foreach (FrameworkElement elem in filters.Children)
                {
                    if (elem != in_timetable && elem != timetables)
                    {
                        elem.Visibility = (everywhere.IsChecked.Value) ? Visibility.Collapsed : Visibility.Visible;
                    }
                }
                Search();
            };
        }
Beispiel #2
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            self = (e.Parameter as object[])[1] as Course;//keep for reference

            //set default values
            title.Foreground = new SolidColorBrush(self.TileColor);
            back.Foreground  = new SolidColorBrush(self.TileColor);
            add.Foreground   = new SolidColorBrush(self.TileColor);
            edit.Foreground  = new SolidColorBrush(self.TileColor);
            pin.Foreground   = new SolidColorBrush(self.TileColor);
            title.Text       = self.Name + " definitions";

            //Handle pinning to start screen
            bool isPinned = false;

            foreach (SecondaryTile tl in  await SecondaryTile.FindAllForPackageAsync())
            {
                if (tl.TileId == self.Name.Replace(" ", "") + "definitions")
                {
                    pin.Icon = "";
                    isPinned = true;
                }
            }

            pin.Tapped += async(a, b) =>
            {
                Uri           logo = new Uri("ms-appx:///Assets/TileLogo.png");    //icon
                SecondaryTile tile = new SecondaryTile();
                tile.BackgroundColor = self.TileColor;                             //course color
                tile.TileId          = self.Name.Replace(" ", "") + "definitions"; //unique id
                tile.Logo            = logo;
                tile.ForegroundText  = ForegroundText.Light;
                tile.DisplayName     = "DefinitionsEditor for " + self.Name;
                tile.ShortName       = self.Name + " definitions";
                tile.TileOptions     = TileOptions.ShowNameOnLogo;
                tile.Arguments       = "definitions," + ((e.Parameter as object[])[0] as StudentDataBundle).Name + "," + self.Name;//used to direct to appropiate page
                if (!isPinned)
                {
                    isPinned = await tile.RequestCreateAsync();

                    pin.Icon = "";
                }
                else
                {
                    isPinned = !await tile.RequestDeleteAsync();

                    pin.Icon = "";
                }
            };



            back.Tapped += async(a, b) =>
            {
                await CoreData.SaveTimetable((e.Parameter as object[])[0] as StudentDataBundle);

                Frame.Navigate(typeof(MainPage), (e.Parameter as object[])[0]);
            };

            //this will enable filtering by module
            moduleHolder.fill(self, typeof(DefinitionsEditor));
            moduleHolder.OnChosen += (module) =>
            {
                refresh();
            };
            refresh();



            add.Tapped += (q, b) =>
            {
                Definition def = new Definition {
                    Caption = "Title here", Content = "Definition or explanation goes here!"
                };
                moduleHolder.Chosen.Definitions.Add(def);
                refresh();
            };

            //change the editable mode of each box
            edit.Tapped += (a, b) =>
            {
                if ((edit.Foreground as SolidColorBrush).Color == Windows.UI.Colors.Black)
                {
                    foreach (EditableItem box in holder.Children)
                    {
                        box.setEditable(false);
                    }
                    edit.Foreground = new SolidColorBrush(self.TileColor);
                }
                else
                {
                    foreach (EditableItem box in holder.Children)
                    {
                        box.setEditable(true);
                    }
                    edit.Foreground = new SolidColorBrush(Windows.UI.Colors.Black);
                }
            };
        }
 private async void export_clicked(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
     await CoreData.ExportTimetable(self);
 }