private async Task HandleQuickAddItem(TaskOrEventType type) { if (CurrentAccount == null) { await HandleNormalLaunchActivation(); } var mainScreen = GetMainScreenViewModel(); if (mainScreen != null && mainScreen.CurrentAccount != null && mainScreen.Classes != null && mainScreen.Classes.Count > 0) { Popups.Clear(); var newModel = AddTaskOrEventViewModel.CreateForAdd(mainScreen, new AddTaskOrEventViewModel.AddParameter() { Classes = mainScreen.Classes.ToArray(), DueDate = DateTime.Today, Type = type }); // For iOS, we can't clear and then add, we need to replace if (mainScreen.Popups.Count >= 1) { mainScreen.Popups[0] = newModel; while (mainScreen.Popups.Count > 1) { mainScreen.Popups.RemoveAt(1); } } else { mainScreen.ShowPopup(newModel); } } }
private void AddItem(TaskOrEventType type) { MainScreenViewModel.ShowPopup(AddTaskOrEventViewModel.CreateForAdd(MainScreenViewModel, new AddTaskOrEventViewModel.AddParameter() { SemesterIdentifier = MainScreenViewModel.CurrentSemesterId, Classes = MainScreenViewModel.Classes, SelectedClass = null, Type = type })); }
private void initializeAdding(TaskOrEventType type) { var viewModel = PowerPlannerApp.Current.GetMainScreenViewModel(); if (viewModel != null) { viewModel.ShowPopup(AddTaskOrEventViewModel.CreateForAdd(viewModel, new AddTaskOrEventViewModel.AddParameter() { Classes = GetClassesForAdding(), DueDate = DateToUseForNewItems, HideClassPicker = IsClassPickerHidden, HideDatePicker = IsDatePickerHidden, SelectedClass = ClassForNewItems, Type = type })); } }
private async void AddItem(TaskOrEventType type) { if (MainScreenViewModel.Classes == null || MainScreenViewModel.Classes.Count == 0) { await new PortableMessageDialog("You don't have any classes. Make sure you've opened a semester that has classes.", "No classes").ShowAsync(); return; } MainScreenViewModel.ShowPopup(AddTaskOrEventViewModel.CreateForAdd(MainScreenViewModel, new AddTaskOrEventViewModel.AddParameter() { SemesterIdentifier = MainScreenViewModel.CurrentSemesterId, Classes = MainScreenViewModel.Classes, SelectedClass = null, Type = type, DueDate = DateTime.Today })); RemoveViewModel(); }
public ClassTasksOrEventsViewModel(ClassViewModel parent, TaskOrEventType type) : base(parent) { Type = type; }
public static AddTaskOrEventViewModel CreateForEdit(BaseViewModel parent, EditParameter editParams) { var account = parent.FindAncestor <MainWindowViewModel>()?.CurrentAccount; if (account == null) { throw new NullReferenceException("CurrentAccount was null"); } ViewItemClass c = editParams.Item.Class; TaskOrEventType type = editParams.Item.Type; if (c == null) { throw new NullReferenceException("Class of the item was null. Item id " + editParams.Item.Identifier); } if (c.Semester == null) { throw new NullReferenceException("Semester of the class was null. Item id " + editParams.Item.Identifier); } if (c.Semester.Classes == null) { throw new NullReferenceException("Classes of the semester was null. Item id " + editParams.Item.Identifier); } var model = new AddTaskOrEventViewModel(parent) { Account = account, State = OperationState.Editing, EditParams = editParams, Name = editParams.Item.Name, Classes = GetClassesWithNoClassClass(c.Semester.Classes), Date = editParams.Item.DateInSchoolTime.Date, Details = editParams.Item.Details, Type = type, ImageNames = editParams.Item.ImageNames.ToArray(), IsInDifferentTimeZone = parent.FindAncestorOrSelf <MainScreenViewModel>().CurrentAccount.IsInDifferentTimeZone, Class = c // Assign class last, since it also assigns weight categories }; // Assign existing image attachments model.ImageAttachments = new ObservableCollection <BaseEditingImageAttachmentViewModel>(editParams.Item.ImageNames.Select(i => new EditingExistingImageAttachmentViewModel(model, i))); switch (editParams.Item.GetActualTimeOption()) { case DataItemMegaItem.TimeOptions.AllDay: model.SelectedTimeOption = model.TimeOption_AllDay; break; case DataItemMegaItem.TimeOptions.BeforeClass: model.SelectedTimeOption = model.TimeOption_BeforeClass; break; case DataItemMegaItem.TimeOptions.Custom: model._startTime = new TimeSpan(editParams.Item.DateInSchoolTime.Hour, editParams.Item.DateInSchoolTime.Minute, 0); model._endTime = editParams.Item.EndTimeInSchoolTime.TimeOfDay; model.SelectedTimeOption = model.TimeOption_Custom; break; case DataItemMegaItem.TimeOptions.DuringClass: model.SelectedTimeOption = model.TimeOption_DuringClass; break; case DataItemMegaItem.TimeOptions.EndOfClass: model.SelectedTimeOption = model.TimeOption_EndOfClass; break; case DataItemMegaItem.TimeOptions.StartOfClass: model.SelectedTimeOption = model.TimeOption_StartOfClass; break; } // We don't want to consider setting the initial time option as the user configuring the time option model._userChangedSelectedTimeOption = false; return(model); }
public UIShowHideOldItemsCell(string cellId, ClassViewItemsGroup classItemsGroup, TaskOrEventType type) : base(cellId) { ContentView.BackgroundColor = UIColorCompat.SecondarySystemBackgroundColor; _labelText = new UILabel() { TranslatesAutoresizingMaskIntoConstraints = false, Font = UIFont.PreferredSubheadline, TextColor = ColorResources.PowerPlannerAccentBlue, TextAlignment = UITextAlignment.Center }; DataContext = classItemsGroup; if (type == TaskOrEventType.Task) { BindingHost.SetLabelTextBinding(_labelText, nameof(classItemsGroup.IsPastCompletedTasksDisplayed), (isDisplayed) => { return(((bool)isDisplayed) ? "Hide old tasks" : "Show old tasks"); }); } else { BindingHost.SetLabelTextBinding(_labelText, nameof(classItemsGroup.IsPastCompletedEventsDisplayed), (isDisplayed) => { return(((bool)isDisplayed) ? "Hide old events" : "Show old events"); }); } ContentView.AddSubview(_labelText); _labelText.StretchWidthAndHeight(ContentView, left: 16, top: 8, bottom: 8); ContentView.SetHeight(44); }