private void Init() { CheckForUpdates(); CheckForSettingsUpgrades(); LoadApplicationData(); _settingsManager = new SettingsManager(_applicationData); _menu = new VagrantSystemTrayMenu(); _menu.SettingsClicked += (sender, args) => _settingsManager.ShowSettingsWindow(); _menu.ExitClicked += (sender, args) => TerminateApplication(); _menu.TrayIconClicked += (sender, args) => { string message; if (_applicationData.Bookmarks.Select(b => b.VagrantInstance).Count(i => i.CurrentProcess != null) == 0) { message = "No processes running."; _menu.ShowMessageBalloon(message); } else { var activeBookmarks = _applicationData.Bookmarks.Where(b => b.VagrantInstance.CurrentProcess != null).ToList(); message = "Running processes:" + Environment.NewLine + Environment.NewLine + String.Join(Environment.NewLine, activeBookmarks.Select(b => b.Name + ": " + b.VagrantInstance.CurrentProcess.Command)) + Environment.NewLine + Environment.NewLine + "Click for full output popup."; _menu.ShowMessageBalloon(message, () => { if (_processesWindow == null) { var viewModel = new ProcessesViewModel(_applicationData) { CloseCommand = new RelayCommand(() => _processesWindow.Hide()) }; if (activeBookmarks.Any()) { viewModel.SelectedBookmark = activeBookmarks.First().Name; } _processesWindow = new ProcessesWindow { DataContext = viewModel }; } _processesWindow.Show(); }); } }; RebuildList(); _applicationData.Bookmarks.CollectionChanged += (sender, args) => RebuildList(); }
public void OnLowerPriorityClick(object sender, RoutedEventArgs e) { ProcessesViewModel.SetProcessPriorityToLow(((ProcessInfo)ProcessListBox.SelectedItem).Id); ProcessListBox.Items.Refresh(); }
public void OnClickKill(object sender, RoutedEventArgs e) { ProcessesViewModel.KillProcess(((ProcessInfo)ProcessListBox.SelectedItem).Id); }
public void OnClickStart(object sender, RoutedEventArgs e) { ProcessesViewModel.StartProcess(((ProcessInfo)ProcessListBox.SelectedItem).StartInfo); }
public MainWindow() { InitializeComponent(); DataContext = new ProcessesViewModel(); }