private void ListItem_Click(object sender, RoutedEventArgs e) { if (Monitor.SelectedSource != null) { // We're currently viewing the task list, move to the selected task (or open Web Reporting). if (WebsiteOpen > 0) { Monitor.DoWebLogin = true; } else { SelectedTask = (WingmanAPI.Task)((Button)sender).DataContext; } } else { // We're currently viewing the source list, move to the selected source (or open Web Reporting). if (WebsiteOpen > 1) { Monitor.DoWebLogin = true; } else { Monitor.SelectedSource = (WingmanAPI.Source)((Button)sender).DataContext; } } ViewRefresh(); }
private void ViewRefresh() { // Should probably use bindings but life's too short to be typing out irrelevant boilerplate in an example... if (Monitor.ConnectionState != WingmanAPI.Monitor.State.Connected) { SelectedTask = null; // In case this was set before disconnection. Icon = StatusIcons[(int)WingmanAPI.Status.Dormant]; Background = StatusBrushes[(int)WingmanAPI.Status.Dormant]; TextTitle.Text = "Disconnected!"; ButtonBack.Visibility = Visibility.Collapsed; ListItems.ItemsSource = Monitor.SourcesView; ImageTaskIcon.Source = null; TextTaskDescription.Text = null; TextTaskDate.Text = null; TextTaskDate.Visibility = ButtonClear.Visibility = Visibility.Collapsed; BorderPending.Background = StatusBrushes[(int)WingmanAPI.Status.Dormant]; TextPending.Visibility = BorderPending.Visibility = Visibility.Collapsed; TextTaskDetail.Text = null; ViewList.Visibility = Visibility.Collapsed; ViewTask.Visibility = Visibility.Collapsed; ViewEmpty.Visibility = Visibility.Visible; } else if (Monitor.SelectedSource == null) { SelectedTask = null; // In case this was set before SelectedSource was removed. Icon = StatusIcons[(int)Monitor.Status]; Background = StatusBrushes[(int)Monitor.Status]; TextTitle.Text = Monitor.Account; ButtonBack.Visibility = Visibility.Collapsed; ListItems.ItemsSource = Monitor.SourcesView; ImageTaskIcon.Source = null; TextTaskDescription.Text = null; TextTaskDate.Text = null; TextTaskDate.Visibility = ButtonClear.Visibility = Visibility.Collapsed; BorderPending.Background = StatusBrushes[(int)WingmanAPI.Status.Dormant]; TextPending.Visibility = BorderPending.Visibility = Visibility.Collapsed; TextTaskDetail.Text = null; ViewList.Visibility = Visibility.Visible; ViewTask.Visibility = Visibility.Collapsed; ViewEmpty.Visibility = (Monitor.SourcesView.IsEmpty ? Visibility.Visible : Visibility.Collapsed); } else if (SelectedTask == null || Monitor.Tasks.SingleOrDefault(x => x.Source == Monitor.SelectedSource.ID && x.ID == SelectedTask.ID) == null) { // Check that SelectedTask still exists. SelectedTask = null; // In case SelectedTask was removed. Icon = StatusIcons[(int)Monitor.Status]; Background = StatusBrushes[(int)Monitor.SelectedSource.Status]; TextTitle.Text = Monitor.SelectedSource.Description; ButtonBack.Visibility = Visibility.Visible; ListItems.ItemsSource = Monitor.TasksView; ImageTaskIcon.Source = null; TextTaskDescription.Text = null; TextTaskDate.Text = null; TextTaskDate.Visibility = ButtonClear.Visibility = Visibility.Collapsed; BorderPending.Background = StatusBrushes[(int)WingmanAPI.Status.Dormant]; TextPending.Visibility = BorderPending.Visibility = Visibility.Collapsed; TextTaskDetail.Text = null; ViewList.Visibility = Visibility.Visible; ViewTask.Visibility = Visibility.Collapsed; ViewEmpty.Visibility = (Monitor.TasksView.IsEmpty ? Visibility.Visible : Visibility.Collapsed); } else { // SelectedTask = SelectedTask; Icon = StatusIcons[(int)Monitor.Status]; Background = StatusBrushes[(int)SelectedTask.Status]; TextTitle.Text = Monitor.SelectedSource.Description; ButtonBack.Visibility = Visibility.Visible; ListItems.ItemsSource = null; ImageTaskIcon.Source = TaskIcons[(int)SelectedTask.Type]; TextTaskDescription.Text = SelectedTask.Description; TextTaskDate.Text = String.Format("Posted {0:g}", SelectedTask.Alerted); TextTaskDate.Visibility = ButtonClear.Visibility = (SelectedTask.Status > WingmanAPI.Status.Success ? Visibility.Visible : Visibility.Collapsed); BorderPending.Background = StatusBrushes[(int)SelectedTask.Pending]; TextPending.Visibility = BorderPending.Visibility = (SelectedTask.Pending < SelectedTask.Status ? Visibility.Visible : Visibility.Collapsed); TextTaskDetail.Text = SelectedTask.Detail; ViewList.Visibility = Visibility.Collapsed; ViewTask.Visibility = Visibility.Visible; ViewEmpty.Visibility = (Monitor.TasksView.IsEmpty ? Visibility.Visible : Visibility.Collapsed); } }
private void ButtonBack_Click(object sender, RoutedEventArgs e) { if (SelectedTask != null) { // We're currently viewing a task, go back to the task list. SelectedTask = null; } else { // We're currently viewing a source, go back to the source list. Monitor.SelectedSource = null; } ViewRefresh(); }