protected override void Update() { base.Update(); IMainWindow mainWindow = Command.MainWindowCommandInterface; SelectedItemCollection selection = Command.GetSelection(); if (mainWindow != null) { base.DropDownItems.Clear(); Command cmd = new ShutDownVMCommand(mainWindow, selection); if (cmd.CanExecute()) { base.DropDownItems.Add(new CommandToolStripMenuItem(cmd)); } else { base.DropDownItems.Add(new CommandToolStripMenuItem(new StartVMCommand(mainWindow, selection))); } cmd = new ResumeVMCommand(mainWindow, selection); if (cmd.CanExecute()) { base.DropDownItems.Add(new CommandToolStripMenuItem(cmd)); } else { base.DropDownItems.Add(new CommandToolStripMenuItem(new SuspendVMCommand(mainWindow, selection))); } base.DropDownItems.Add(new CommandToolStripMenuItem(new RebootVMCommand(mainWindow, selection))); base.DropDownItems.Add(new CommandToolStripMenuItem(new VMRecoveryModeCommand(mainWindow, selection))); base.DropDownItems.Add(new ToolStripSeparator()); base.DropDownItems.Add(new CommandToolStripMenuItem(new ForceVMShutDownCommand(mainWindow, selection))); base.DropDownItems.Add(new CommandToolStripMenuItem(new ForceVMRebootCommand(mainWindow, selection))); DropDownItems.Add(new ToolStripSeparator()); DropDownItems.Add(new CommandToolStripMenuItem(new VappStartCommand(mainWindow, selection))); DropDownItems.Add(new CommandToolStripMenuItem(new VappShutDownCommand(mainWindow, selection))); } }
private void treeView_NodeMouseDoubleClick(object sender, VirtualTreeNodeMouseClickEventArgs e) { if (e.Button != MouseButtons.Left) return; if (e.Node == null) return; IXenConnection conn = e.Node.Tag as IXenConnection; if (conn == null) { var obj = e.Node.Tag as IXenObject; if (obj != null) conn = obj.Connection; } if (conn != null && !conn.IsConnected) { new ReconnectHostCommand(Program.MainWindow, conn).Execute(); return; } VM vm = e.Node.Tag as VM; if (vm != null) { Command cmd = null; if (vm.is_a_template) { cmd = new NewVMCommand(Program.MainWindow, Program.MainWindow.SelectionManager.Selection); } else if (vm.power_state == vm_power_state.Halted && vm.allowed_operations.Contains(vm_operations.start)) { cmd = new StartVMCommand(Program.MainWindow, Program.MainWindow.SelectionManager.Selection); } else if (vm.power_state == vm_power_state.Suspended && vm.allowed_operations.Contains(vm_operations.resume)) { cmd = new ResumeVMCommand(Program.MainWindow, Program.MainWindow.SelectionManager.Selection); } if (cmd != null && cmd.CanExecute()) { treeView.SelectedNode = e.Node; cmd.Execute(); } return; } Host host = e.Node.Tag as Host; if (host != null) { Command cmd = new PowerOnHostCommand(Program.MainWindow, host); if (cmd.CanExecute()) { treeView.SelectedNode = e.Node; cmd.Execute(); } } }