private void PasteRows() { CreateUndoSnapshot(); if (_rowsSelectedForCopy != null) { if (SelectedTabScriptActions.SelectedItems.Count == 0) { MessageBox.Show("In order to paste, you must first select a command to paste under.", "Select Command To Paste Under"); return; } int destinationIndex = SelectedTabScriptActions.SelectedItems[0].Index + 1; foreach (ListViewItem item in _rowsSelectedForCopy) { dynamic duplicatedCommand = CommonMethods.Clone(item.Tag); duplicatedCommand.GenerateID(); SelectedTabScriptActions.Items.Insert(destinationIndex, CreateScriptCommandListViewItem(duplicatedCommand)); destinationIndex += 1; } SelectedTabScriptActions.Invalidate(); Notify(_rowsSelectedForCopy.Count + " item(s) pasted!", Color.White); } }
private void DeleteSelectedCode() { SelectAllScopedCode(); foreach (ListViewItem item in SelectedTabScriptActions.SelectedItems) { SelectedTabScriptActions.Items.Remove(item); } SelectedTabScriptActions.Invalidate(); }
private void RedoChange() { if (((ScriptActionTag)SelectedTabScriptActions.Tag).RedoList.Count > 0) { CreateUndoSnapshot(); SelectedTabScriptActions.Items.Clear(); foreach (ListViewItem rowItem in ((ScriptActionTag)SelectedTabScriptActions.Tag).RedoList.Last()) { SelectedTabScriptActions.Items.Add(rowItem); } ((ScriptActionTag)SelectedTabScriptActions.Tag).RedoList .RemoveAt(((ScriptActionTag)SelectedTabScriptActions.Tag).RedoList.Count - 1); SelectedTabScriptActions.Invalidate(); } }
private void AddRemoveBreakpoint() { //warn if nothing was selected if (SelectedTabScriptActions.SelectedItems.Count == 0) { Notify("No code was selected!", Color.Yellow); } else { CreateUndoSnapshot(); } //get each item and set appropriately foreach (ListViewItem item in SelectedTabScriptActions.SelectedItems) { var selectedCommand = (ScriptCommand)item.Tag; selectedCommand.PauseBeforeExecution = !selectedCommand.PauseBeforeExecution; } //recolor SelectedTabScriptActions.Invalidate(); }
private void SetSelectedCodeToCommented(bool setCommented) { SelectAllScopedCode(); //warn if nothing was selected if (SelectedTabScriptActions.SelectedItems.Count == 0) { Notify("No code was selected!", Color.Yellow); } else { CreateUndoSnapshot(); } //get each item and set appropriately foreach (ListViewItem item in SelectedTabScriptActions.SelectedItems) { var selectedCommand = (ScriptCommand)item.Tag; selectedCommand.IsCommented = setCommented; } //recolor SelectedTabScriptActions.Invalidate(); }
private void ClearSelectedListViewItems() { SelectedTabScriptActions.SelectedItems.Clear(); SelectedTabScriptActions.Invalidate(); }
private void lstScriptActions_DragDrop(object sender, DragEventArgs e) { //returns the location of the mouse pointer in the ListView control Point cp = SelectedTabScriptActions.PointToClient(new Point(e.X, e.Y)); //obtain the item that is located at the specified location of the mouse pointer ListViewItem dragToItem = SelectedTabScriptActions.GetItemAt(cp.X, cp.Y); if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false)) { TreeNode commandNode = ((TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode")); if (commandNode.Nodes.Count != 0) { return; } var commandName = commandNode.Text; var commandGroupName = commandNode.Parent.Text; var newCommandName = _automationCommands.Where(x => x.ShortName == commandName && x.DisplayGroup == commandGroupName) .Select(x => x.Command).FirstOrDefault().GetType(); dynamic newCommandInstance = TypeMethods.CreateTypeInstance(AContainer, newCommandName.Name); CreateUndoSnapshot(); if (dragToItem != null) { AddCommandToListView(newCommandInstance, dragToItem.Index); } else { AddCommandToListView(newCommandInstance, SelectedTabScriptActions.Items.Count); } } else { //return if the items are not selected in the ListView control if (SelectedTabScriptActions.SelectedItems.Count == 0) { return; } CreateUndoSnapshot(); if (dragToItem == null) { return; } List <ScriptCommand> commandsToMove = new List <ScriptCommand>(); for (int i = 0; i <= SelectedTabScriptActions.SelectedItems.Count - 1; i++) { var command = (ScriptCommand)SelectedTabScriptActions.SelectedItems[i].Tag; commandsToMove.Add(command); } //obtain the index of the item at the mouse pointer int dragIndex = dragToItem.Index; ListViewItem[] sel = new ListViewItem[SelectedTabScriptActions.SelectedItems.Count]; for (int i = 0; i <= SelectedTabScriptActions.SelectedItems.Count - 1; i++) { sel[i] = SelectedTabScriptActions.SelectedItems[i]; } for (int i = 0; i < sel.GetLength(0); i++) { //obtain the ListViewItem to be dragged to the target location ListViewItem dragItem = sel[i]; int itemIndex = dragIndex; if (itemIndex == dragItem.Index) { return; } if (dragItem.Index < itemIndex) { itemIndex++; } else { itemIndex = dragIndex + i; } //insert the item at the mouse pointer ListViewItem insertItem = (ListViewItem)dragItem.Clone(); SelectedTabScriptActions.Items.Insert(itemIndex, insertItem); //removes the item from the initial location while the item is moved to the new location SelectedTabScriptActions.Items.Remove(dragItem); SelectedTabScriptActions.Invalidate(); } } }
public void AddCommandToListView(ScriptCommand selectedCommand, int index = -1) { if (!uiScriptTabControl.SelectedTab.Controls[0].Visible) { uiScriptTabControl.SelectedTab.Controls[0].Show(); } ListViewItem command; //valid command verification for drag/dropped commands if (selectedCommand != null) { command = CreateScriptCommandListViewItem(selectedCommand); } else { return; } int insertionIndex; if (index == -1) { //insert to end by default insertionIndex = SelectedTabScriptActions.Items.Count; //verify setting to insert inline is selected and if an item is currently selected if ((_appSettings.ClientSettings.InsertCommandsInline) && (SelectedTabScriptActions.SelectedItems.Count > 0)) { //insert inline insertionIndex = SelectedTabScriptActions.SelectedItems[0].Index + 1; } } else { insertionIndex = index; } //insert command SelectedTabScriptActions.Items.Insert(insertionIndex, command); ClearSelectedListViewItems(); command.Selected = true; //special types also get a following command and comment if ((selectedCommand.CommandName == "LoopCollectionCommand") || (selectedCommand.CommandName == "LoopContinuouslyCommand") || (selectedCommand.CommandName == "LoopNumberOfTimesCommand") || (selectedCommand.CommandName == "BeginLoopCommand") || (selectedCommand.CommandName == "BeginMultiLoopCommand")) { dynamic addCodeCommentCommand = TypeMethods.CreateTypeInstance(AContainer, "AddCodeCommentCommand"); addCodeCommentCommand.v_Comment = "Items in this section will run within the loop"; SelectedTabScriptActions.Items.Insert(insertionIndex + 1, CreateScriptCommandListViewItem(addCodeCommentCommand)); dynamic endLoopCommand = TypeMethods.CreateTypeInstance(AContainer, "EndLoopCommand"); SelectedTabScriptActions.Items.Insert(insertionIndex + 2, CreateScriptCommandListViewItem(endLoopCommand)); } else if ((selectedCommand.CommandName == "BeginIfCommand") || (selectedCommand.CommandName == "BeginMultiIfCommand")) { dynamic addCodeCommentCommand = TypeMethods.CreateTypeInstance(AContainer, "AddCodeCommentCommand"); addCodeCommentCommand.v_Comment = "Items in this section will run if the statement is true"; SelectedTabScriptActions.Items.Insert(insertionIndex + 1, CreateScriptCommandListViewItem(addCodeCommentCommand)); dynamic endIfCommand = TypeMethods.CreateTypeInstance(AContainer, "EndIfCommand"); SelectedTabScriptActions.Items.Insert(insertionIndex + 2, CreateScriptCommandListViewItem(endIfCommand)); } else if (selectedCommand.CommandName == "BeginTryCommand") { dynamic addCodeCommentCommand = TypeMethods.CreateTypeInstance(AContainer, "AddCodeCommentCommand"); addCodeCommentCommand.v_Comment = "Items in this section will be handled if error occurs"; SelectedTabScriptActions.Items.Insert(insertionIndex + 1, CreateScriptCommandListViewItem(addCodeCommentCommand)); dynamic catchCommand = TypeMethods.CreateTypeInstance(AContainer, "CatchCommand"); SelectedTabScriptActions.Items.Insert(insertionIndex + 2, CreateScriptCommandListViewItem(catchCommand)); dynamic codeCommentCommand = TypeMethods.CreateTypeInstance(AContainer, "AddCodeCommentCommand"); codeCommentCommand.v_Comment = "This section executes if error occurs above"; SelectedTabScriptActions.Items.Insert(insertionIndex + 3, CreateScriptCommandListViewItem(codeCommentCommand)); dynamic endTryCommand = TypeMethods.CreateTypeInstance(AContainer, "EndTryCommand"); SelectedTabScriptActions.Items.Insert(insertionIndex + 4, CreateScriptCommandListViewItem(endTryCommand)); } else if (selectedCommand.CommandName == "BeginRetryCommand") { dynamic addCodeCommentCommand = TypeMethods.CreateTypeInstance(AContainer, "AddCodeCommentCommand"); addCodeCommentCommand.v_Comment = "Items in this section will be retried as long as the condition is not met or an error is thrown"; SelectedTabScriptActions.Items.Insert(insertionIndex + 1, CreateScriptCommandListViewItem(addCodeCommentCommand)); dynamic endRetryCommand = TypeMethods.CreateTypeInstance(AContainer, "EndRetryCommand"); SelectedTabScriptActions.Items.Insert(insertionIndex + 2, CreateScriptCommandListViewItem(endRetryCommand)); } else if (selectedCommand.CommandName == "BeginSwitchCommand") { dynamic caseCommand = TypeMethods.CreateTypeInstance(AContainer, "CaseCommand"); caseCommand.v_CaseValue = "Default"; SelectedTabScriptActions.Items.Insert(insertionIndex + 1, CreateScriptCommandListViewItem(caseCommand)); dynamic addCodeCommentCommand = TypeMethods.CreateTypeInstance(AContainer, "AddCodeCommentCommand"); addCodeCommentCommand.v_Comment = "Items in this section will run if no case statements match"; SelectedTabScriptActions.Items.Insert(insertionIndex + 2, CreateScriptCommandListViewItem(addCodeCommentCommand)); dynamic endSwitchCommand = TypeMethods.CreateTypeInstance(AContainer, "EndSwitchCommand"); SelectedTabScriptActions.Items.Insert(insertionIndex + 3, CreateScriptCommandListViewItem(endSwitchCommand)); } CreateUndoSnapshot(); SelectedTabScriptActions.Invalidate(); AutoSizeLineNumberColumn(); }
private void lstScriptActions_MouseMove(object sender, MouseEventArgs e) { SelectedTabScriptActions.Invalidate(); }