/ src / modules / Workspaces / WorkspacesEditor / MainPage.xaml.cs
MainPage.xaml.cs
 1  // Copyright (c) Microsoft Corporation
 2  // The Microsoft Corporation licenses this file to you under the MIT license.
 3  // See the LICENSE file in the project root for more information.
 4  
 5  using System.Windows;
 6  using System.Windows.Controls;
 7  using System.Windows.Controls.Primitives;
 8  using ManagedCommon;
 9  using WorkspacesEditor.Models;
10  using WorkspacesEditor.ViewModels;
11  
12  namespace WorkspacesEditor
13  {
14      /// <summary>
15      /// Interaction logic for MainPage.xaml
16      /// </summary>
17      public partial class MainPage : Page
18      {
19          private MainViewModel _mainViewModel;
20  
21          public MainPage(MainViewModel mainViewModel)
22          {
23              InitializeComponent();
24              _mainViewModel = mainViewModel;
25              this.DataContext = _mainViewModel;
26          }
27  
28          private /*async*/ void NewProjectButton_Click(object sender, RoutedEventArgs e)
29          {
30              _mainViewModel.EnterSnapshotMode(false);
31          }
32  
33          private void EditButtonClicked(object sender, RoutedEventArgs e)
34          {
35              _mainViewModel.CloseAllPopups();
36              Button button = sender as Button;
37              Project selectedProject = button.DataContext as Project;
38              _mainViewModel.EditProject(selectedProject);
39          }
40  
41          private void DeleteButtonClicked(object sender, RoutedEventArgs e)
42          {
43              e.Handled = true;
44              Button button = sender as Button;
45              Project selectedProject = button.DataContext as Project;
46              selectedProject.IsPopupVisible = false;
47  
48              _mainViewModel.DeleteProject(selectedProject);
49          }
50  
51          private void MoreButton_Click(object sender, RoutedEventArgs e)
52          {
53              _mainViewModel.CloseAllPopups();
54              e.Handled = true;
55              Button button = sender as Button;
56              Project project = button.DataContext as Project;
57              project.IsPopupVisible = true;
58          }
59  
60          private void PopupClosed(object sender, object e)
61          {
62              if (sender is Popup p && p.DataContext is Project proj)
63              {
64                  proj.IsPopupVisible = false;
65              }
66          }
67  
68          private void LaunchButton_Click(object sender, RoutedEventArgs e)
69          {
70              e.Handled = true;
71              Button button = sender as Button;
72              Project project = button.DataContext as Project;
73              _mainViewModel.LaunchProject(project);
74          }
75      }
76  }