private void RecurseRebuild(SMFlowBase flow) { flow.Rebuild(); if (flow.ChildArray != null) { foreach (SMFlowBase childFlow in flow.ChildArray) { if (childFlow is SMFlowContainer) { RecurseRebuild(childFlow); } else { childFlow.Rebuild(); } } } }
private void contextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { contextMenuStrip.Close(); if (e.ClickedItem == tsmInsertGripUpper) { ClearAllSelection(); InsertGrid(_latestptGridLoc, eInsertGridMode.rowBefore); } else if (e.ClickedItem == tsmInsertGridBelow) { ClearAllSelection(); InsertGrid(_latestptGridLoc, eInsertGridMode.rowAfter); } else if (e.ClickedItem == tsmInsertGridLeft) { ClearAllSelection(); InsertGrid(_latestptGridLoc, eInsertGridMode.columnBefore); } else if (e.ClickedItem == tsmInsertGridRight) { ClearAllSelection(); InsertGrid(_latestptGridLoc, eInsertGridMode.columnAfter); } else if (e.ClickedItem == tsmCopyItem) { if (_latestFlowItem != null) { _copyFlowItem = _latestFlowItem.Clone("", true) as SMFlowBase; _latestFlowItem.ShallowCopyTo(_copyFlowItem); } } else if (e.ClickedItem == tsmPasteItem) { SMFlowBase newCopyflowItem = _copyFlowItem; newCopyflowItem.Name = ""; _flowContainer.AddFlowItem(newCopyflowItem); newCopyflowItem.Text = _copyFlowItem.Text; newCopyflowItem.GridLoc = _latestptGridLoc; U.LogChangeAdded(string.Format("{0}.{1}", newCopyflowItem.Nickname, _copyFlowItem.Text)); Build(newCopyflowItem); newCopyflowItem.Rebuild(); Redraw(newCopyflowItem); if (newCopyflowItem is SMFlowContainer) { RecurseRebuild(newCopyflowItem); } _copyFlowItem = null; } else if (e.ClickedItem == tsmDeleteItem) { if (MessageBox.Show("This Flow item will be deleted. Are you sure?", "Warning", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (_latestFlowItem != null && this._flowContainer.ChildArray.Contains(_latestFlowItem)) { SMCtlBase deleteFlowCtrl = GetFlowCtl(_latestFlowItem); if (_selectedCtrlList != null && _selectedCtrlList.Contains(deleteFlowCtrl)) { _selectedCtrlList.Remove(deleteFlowCtrl); } this.DeleteFlowItem(_latestFlowItem); } _latestFlowItem = null; } } else if (e.ClickedItem == tsmSelectItem) { SMCtlBase smCtrl = this.GetFlowCtl(_latestFlowItem); if (_selectedCtrlList == null) { _selectedCtrlList = new List <SMCtlBase>(); } _selectedCtrlList.Add(smCtrl); smCtrl.FlowItem.Highlighted = true; } else if (e.ClickedItem == tsmDeselectItem) { SMCtlBase smCtrl = this.GetFlowCtl(_latestFlowItem); smCtrl.FlowItem.Highlighted = false; _selectedCtrlList.Remove(smCtrl); if (_selectedCtrlList.Count == 0) { _selectedCtrlList = null; } } else if (e.ClickedItem == tsmClearSelection) { ClearAllSelection(); } }