private void UpdateGUI(List <List <Slot> > result)
 {
     _raw         = result;
     _cyclicIndex = new CyclicIndex();
     if (result == null || result.Count == 0)
     {
         if (_inputSlots.NoSlotIsChosen())
         {
             _outputTimetables.SetState(TimetableList.NoSlotsIsChosen);
         }
         else
         {
             _outputTimetables.SetState(TimetableList.NoPossibleCombination);
             AutoClosePopup.Show("No possible timetable found.");
         }
         ToolBoxPanel.Visibility = Visibility.Hidden;
         _cyclicIndex.Reset();
     }
     else
     {
         _outputTimetables.SetState(new TimetableList(result));
         ToolBoxPanel.Visibility   = Visibility.Visible;
         _cyclicIndex.MaxValue     = result.Count - 1;
         _cyclicIndex.CurrentValue = 0;
         //AutoClosePopup.Show(result.Count + " possible timetables found.");
     }
     TimetableViewer.Initialize(_cyclicIndex);
     CyclicIndexView.DataContext = new CyclicIndexVM(_cyclicIndex);
 }
コード例 #2
0
 private void UpdateGUI(List <List <Slot> > result)
 {
     _raw         = result;
     _cyclicIndex = new CyclicIndex();
     if (result == null || result.Count == 0)
     {
         if (_inputSlots.NoSlotIsChosen())
         {
             _outputTimetables.SetState(TimetableList.NoSlotsIsChosen);
             AutoCloseNotificationBar.Show("No subject selected.");
         }
         else
         {
             _outputTimetables.SetState(TimetableList.NoPossibleCombination);
             NotificationBar.Show("No possible timetable found.", "Tell me why", () =>
             {
                 DialogBox.Show("Why no possible combination?", new ClashFinder(_subjectModels, _permutator).Message);
             }, false);
         }
         ToolBoxPanel.Visibility = Visibility.Hidden;
         _cyclicIndex.Reset();
     }
     else
     {
         _outputTimetables.SetState(new TimetableList(result));
         ToolBoxPanel.Visibility   = Visibility.Visible;
         _cyclicIndex.MaxValue     = result.Count - 1;
         _cyclicIndex.CurrentValue = 0;
         AutoCloseNotificationBar.Show(result.Count + " possible timetables found.");
     }
     TimetableViewer.Initialize(_cyclicIndex);
     CyclicIndexView.DataContext = new CyclicIndexVM(_cyclicIndex);
 }
コード例 #3
0
 public SummaryWindow(ITimetableList timetableList, CyclicIndex cyclicIndex)
 {
     InitializeComponent();
     _timetableList = timetableList;
     _cylicIndex    = cyclicIndex;
     _cylicIndex.CurrentValueChanged += CylicIndex_CurrentValueChanged;
     this.DataContext = new CyclicIndexVM(cyclicIndex);
 }
コード例 #4
0
        public Page_Introduction()
        {
            InitializeComponent();
            _cyclicIndex = new CyclicIndex(_pages.Count - 1);
            _cyclicIndex.CurrentValueChanged += CyclicIndexOnCurrentValueChanged;
            var cyclicIndexVm = new BoundedIndexVM(_cyclicIndex);

            this.DataContext = cyclicIndexVm;
        }
        private void ShowFavoriteTimetable_Checked(object sender, RoutedEventArgs e)
        {
            var likedTimetable = _outputTimetables.GetLikedTimetableOnly();

            _outputTimetables?.SetState(likedTimetable);
            var ci = new CyclicIndex(likedTimetable.Count - 1);

            TimetableViewer?.Initialize(ci);
            CyclicIndexView.DataContext = new CyclicIndexVM(ci);
            //Global.Snackbar.MessageQueue.Enqueue("Showing FAVORITE timetables");
        }
コード例 #6
0
 public SummaryWindow(ITimetableList timetableList, CyclicIndex cyclicIndex)
 {
     InitializeComponent();
     _timetableList = timetableList;
     _cylicIndex    = cyclicIndex;
     _cylicIndex.CurrentValueChanged += CylicIndex_CurrentValueChanged;
     this.DataContext = new CyclicIndexVM(cyclicIndex);
     if (HintIsShownBefore)
     {
         HintPanel.Visibility = Visibility.Collapsed;
     }
 }
コード例 #7
0
 private Page_CreateTimetable(SlotList inputSlots, Func <Slot[], List <List <Slot> > > permutator)
 {
     _inputSlots = inputSlots;
     _permutator = permutator;
     InitializeComponent();
     TimetableViewer.SetObservedThings(_outputTimetables);
     TimetableViewer.Initialize(new CyclicIndex());
     _cyclicIndex = new CyclicIndex();
     CyclicIndexView.DataContext = new CyclicIndexVM(_cyclicIndex);
     InitializeExtraComponents();
     ToolBoxPanel.Visibility = Visibility.Hidden;
 }
        private void ShowAllTimetable_Checked(object sender, RoutedEventArgs e)
        {
            var allTimetables = _outputTimetables.GetPreviousState();

            _outputTimetables?.SetState(allTimetables);
            var ci = new CyclicIndex(allTimetables.Count - 1);

            TimetableViewer?.Initialize(ci);
            if (CyclicIndexView != null)
            {
                CyclicIndexView.DataContext = new CyclicIndexVM(ci);
            }
            //Global.Snackbar.MessageQueue.Enqueue("Showing ALL timetables");
        }
 private void ViewSelector_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (ViewSelector.SelectedIndex == 0)
     {
         var allTimetables = _outputTimetables.GetPreviousState();
         _outputTimetables?.SetState(allTimetables);
         var ci = new CyclicIndex(allTimetables.Count - 1);
         TimetableViewer?.Initialize(ci);
         if (CyclicIndexView != null)
         {
             CyclicIndexView.DataContext = new CyclicIndexVM(ci);
         }
         // Global.Snackbar.MessageQueue.Enqueue("Showing ALL timetables");
     }
     else
     {
         var likedTimetable = _outputTimetables.GetLikedTimetableOnly();
         _outputTimetables?.SetState(likedTimetable);
         var ci = new CyclicIndex(likedTimetable.Count - 1);
         TimetableViewer?.Initialize(ci);
         CyclicIndexView.DataContext = new CyclicIndexVM(ci);
         // Global.Snackbar.MessageQueue.Enqueue("Showing FAVORITE timetables");
     }
 }
コード例 #10
0
 public void Initialize(CyclicIndex cyclicIndex)
 {
     _cyclicIndex = cyclicIndex;
     DataContext  = _cyclicIndex;
 }
コード例 #11
0
 public void Initialize(CyclicIndex cyclicIndex)
 {
     _cyclicIndex = cyclicIndex;
     _cyclicIndex.CurrentValueChanged += CyclicIndexOnCurrentValueChanged;
     CyclicIndexOnCurrentValueChanged(null, null);
 }