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); }
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); }
public SummaryWindow(ITimetableList timetableList, CyclicIndex cyclicIndex) { InitializeComponent(); _timetableList = timetableList; _cylicIndex = cyclicIndex; _cylicIndex.CurrentValueChanged += CylicIndex_CurrentValueChanged; this.DataContext = new CyclicIndexVM(cyclicIndex); }
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"); }
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; } }
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"); } }
public void Initialize(CyclicIndex cyclicIndex) { _cyclicIndex = cyclicIndex; DataContext = _cyclicIndex; }
public void Initialize(CyclicIndex cyclicIndex) { _cyclicIndex = cyclicIndex; _cyclicIndex.CurrentValueChanged += CyclicIndexOnCurrentValueChanged; CyclicIndexOnCurrentValueChanged(null, null); }