private void add_Click(object sender, RoutedEventArgs e) { HideEmptyTaskTextBlockIfNeeded(false); EnableTaskEditMode(); ClearTaskDetails(); selectedTask = null; }
/* Handler for click event on item of tasksView. * Shows up dialog if TaskEdit mode is ON. */ async private void tasksView_ItemClick(object sender, ItemClickEventArgs e) { Kompitu.Data.Model.Task t = (Kompitu.Data.Model.Task)e.ClickedItem; TaskDetails.Opacity = 0; await showTask(t); ShowTask.Begin(); }
async private Task showTask(Data.Model.Task t) { if (editMode) { await PopupEditWarningDialog(); return; } this.taskListTextBox.Text = t.ListTitle; this.taskTitleTextBox.Text = t.Title; this.taskNotesTextBox.Text = t.Notes; if (t.Status == "completed") { hideTaskEditButtons(); this.delete.Visibility = Windows.UI.Xaml.Visibility.Visible; this.taskUpdatedDateLabel.Text = "Completed:"; this.taskUpdatedDateTextBox.Text = t.Completed.ToString(); taskDueDateLabel.Visibility = Visibility.Collapsed; taskDueDateTextBox.Visibility = Visibility.Collapsed; editDueDate.Visibility = Visibility.Collapsed; } else { showTaskEditButtons(); this.taskUpdatedDateLabel.Text = "Updated:"; this.taskUpdatedDateTextBox.Text = t.Updated.ToString(); taskDueDateLabel.Visibility = Visibility.Visible; taskDueDateTextBox.Visibility = Visibility.Visible; editDueDate.Visibility = Visibility.Visible; this.taskDueDateLabel.Text = "Due:"; taskDueDateLabel.Foreground = new SolidColorBrush(Colors.Gray); taskDueDateTextBox.Foreground = new SolidColorBrush(Colors.Gray); if (t.Due != DateTime.MinValue) { this.taskDueDateTextBox.Text = t.Due.Date.ToString(); if (t.IsOverdue) { taskDueDateLabel.Foreground = new SolidColorBrush(Colors.Red); taskDueDateTextBox.Foreground = new SolidColorBrush(Colors.Red); } } else { this.taskDueDateTextBox.Text = "None"; } } HideEmptyTaskTextBlockIfNeeded(t.Status == "completed"); this.selectedTask = t; }
/* Disables task edit mode, where user can modify selected tasks properties. */ private void DisableTaskEditMode(Kompitu.Data.Model.Task task) { this.add.Visibility = Windows.UI.Xaml.Visibility.Visible; if (task == null || task.Status == "completed") { //completed task - blocking possiblity to mark completed and delete this.markCompleted.Visibility = Windows.UI.Xaml.Visibility.Collapsed; this.delete.Visibility = Windows.UI.Xaml.Visibility.Visible; } else { this.markCompleted.Visibility = Windows.UI.Xaml.Visibility.Visible; this.delete.Visibility = Windows.UI.Xaml.Visibility.Visible; } this.save.Visibility = Windows.UI.Xaml.Visibility.Collapsed; this.cancel.Visibility = Windows.UI.Xaml.Visibility.Collapsed; editMode = false; }
private void SaveNewTask() { string selectedList = null; // show select list popup Popup myPopup = new Popup(); myPopup.HorizontalAlignment = HorizontalAlignment.Center; myPopup.VerticalAlignment = VerticalAlignment.Center; myPopup.IsLightDismissEnabled = false; Border b = new Border(); b.BorderBrush = new SolidColorBrush(Colors.Gray); b.BorderThickness = new Thickness(2); b.Width = 400; StackPanel s = new StackPanel(); b.Child = s; s.Orientation = Orientation.Vertical; s.Width = 400; s.Background = new SolidColorBrush(Colors.White); TextBlock text = new TextBlock(); text.Text = "Select a list for the task:"; text.Margin = new Thickness(10, 5, 20, 0); text.Foreground = new SolidColorBrush(Colors.SteelBlue); text.FontSize = 16; s.Children.Add(text); ComboBox combo = new ComboBox(); TaskDataSource taskDataSource = (TaskDataSource)App.Current.Resources["taskDataSource"]; combo.ItemsSource = taskDataSource.VisibleTaskLists; combo.DisplayMemberPath = "Title"; s.Children.Add(combo); combo.Margin = new Thickness(10, 5, 10, 5); combo.SelectedIndex = combo.Items.Count - 1; Button ok = new Button(); ok.HorizontalAlignment = HorizontalAlignment.Right; ok.Margin = new Thickness(10, 0, 10, 5); ok.Content = "OK"; ok.Click += new RoutedEventHandler(async delegate(object sender1, RoutedEventArgs ev) { selectedList = ((Data.Model.TaskList)combo.SelectedValue).Title; Data.Model.TaskList selectedListObject = Data.Model.TaskList.GetByTitle(selectedList, taskDataSource.VisibleTaskLists); foreach (Data.Model.Task selectedListTask in selectedListObject.Tasks) { if (selectedListTask.Title == taskTitleTextBox.Text) { var messageDialog = new Windows.UI.Popups.MessageDialog( Messages.GetMsgValue(MessageKey.TASK_TITLE_EXISTS_CNTNT), Messages.GetMsgValue(MessageKey.TASK_TITLE_EXISTS_HDR)); messageDialog.Commands.Add(new UICommand("OK")); messageDialog.DefaultCommandIndex = 0; await messageDialog.ShowAsync(); myPopup.IsOpen = false; return; } } myPopup.IsOpen = false; Data.Model.Task task = new Data.Model.Task(); task.Updated = DateTime.Now; this.taskUpdatedDateLabel.Text = "Updated"; this.taskUpdatedDateTextBox.Text = task.Updated.ToString(); task.Title = taskTitleTextBox.Text; task.ListTitle = selectedList; task.Status = "needsAction"; if (taskDueDateTextBox.Text == "None") { task.Due = DateTime.MinValue; } else { task.Due = DateTime.Parse(taskDueDateTextBox.Text); } if (task.Due == DateTime.MinValue || DateTime.Compare(task.Due, DateTime.Now) >= 0) { // not overdue taskDueDateLabel.Foreground = new SolidColorBrush(Colors.Gray); taskDueDateTextBox.Foreground = new SolidColorBrush(Colors.Gray); } else if (task.Due != DateTime.MinValue && DateTime.Compare(task.Due, DateTime.Now) < 0) { taskDueDateLabel.Foreground = new SolidColorBrush(Colors.Red); taskDueDateTextBox.Foreground = new SolidColorBrush(Colors.Red); } task.Notes = taskNotesTextBox.Text; task.ListTitle = selectedList; bool added = false; foreach (Data.Model.TaskList list in taskDataSource.TaskLists.Where(l => l.Title == selectedList)) { list.Tasks.Add(task); added = true; } if (added) { taskListTextBox.Text = selectedList; selectedTask = task; taskDataSource.RefreshLists(); RefreshCounters(taskDataSource); DisableTaskEditMode(selectedTask); if (selectedTaskList != null) { if (selectedList == selectedTaskList.Title) { ((ObservableCollection <Data.Model.Task>)tasksView.ItemsSource).Add(task); } } } }); s.Children.Add(ok); myPopup.Child = b; myPopup.IsOpen = true; myCanvas1.Children.Add(myPopup); }