private void GetCropControlList() { _selectedCtrlList = new List <SMCtlBase>(); PointF StartGrid = PixelToGrid(new Point(_oCropX, _oCropY)); PointF endGrid = PixelToGrid(new Point(_oCropX + _cropWidth, _oCropY + _cropHeight)); foreach (Control ctrl in this.Controls) { SMCtlBase smCtrl = ctrl is SMCtlBase ? ctrl as SMCtlBase : null; if (smCtrl != null) { if (smCtrl.GridLoc.X > StartGrid.X && smCtrl.GridLoc.Y > StartGrid.Y && smCtrl.GridLoc.X < endGrid.X && smCtrl.GridLoc.Y < endGrid.Y) { _selectedCtrlList.Add(smCtrl); smCtrl.FlowItem.Highlighted = true; } else { smCtrl.FlowItem.Highlighted = false; } } } if (_selectedCtrlList.Count == 0) { _selectedCtrlList = null; } }
public void Dispose(SMFlowBase flowItem) { SMCtlBase ctlBase = GetFlowCtl(flowItem); if (ctlBase != null) { Dispose(ctlBase); } }
/// <summary> /// Constructor /// </summary> /// <param name="flowChart"></param> /// <param name="panel"></param> /// <param name="flowItem"></param> /// <param name="ctlBase"></param> /// <param name="pathSeg"></param> public SegmentCtl(SMGenericFlowChart flowChart, Panel panel, SMFlowBase flowItem, SMCtlBase ctlBase, SMPathSegment pathSeg) { _flowChart = flowChart; _panel = panel; _flowItem = flowItem; _ctlBase = ctlBase; _pathSeg = pathSeg; ArrowEnd = IsLast; InitializeComponent(); }
public void Redraw(SMFlowBase flowItem) { if (flowItem != null) { flowItem.DetermineAllPathTargets(); SMCtlBase ctlBase = GetFlowCtl(flowItem); if (ctlBase != null) { ctlBase.MoveItem(); ctlBase.OnChanged(); } } }
private void ClearAllSelection() { foreach (Control ctrl in this.Controls) { SMCtlBase smCtrl = ctrl is SMCtlBase ? ctrl as SMCtlBase : null; if (smCtrl != null) { smCtrl.FlowItem.Highlighted = false; } } _selectedCtrlList = null; _latestFlowItem = null; }
/// <summary> /// Entry into a flow item /// </summary> public void RefreshFlowItem(SMFlowBase currentFlowItem) { SMCtlBase ctlBase = GetFlowCtl(currentFlowItem); if (ctlBase != null) { ctlBase.OnChanged(); if (currentFlowItem.IncomingPath != null) { SMFlowBase pathFlowItem = currentFlowItem.IncomingPath.Owner; ctlBase = GetFlowCtl(pathFlowItem); if (ctlBase != null) { ctlBase.MoveIt(currentFlowItem.IncomingPath); } } } }
/// <summary> /// Initial Creation /// </summary> public void Rebuild() { Control[] controls = new Control[Controls.Count]; Controls.CopyTo(controls, 0); foreach (Control ctl in controls) { SMCtlBase ctlBase = ctl as SMCtlBase; if (ctlBase != null) { Dispose(ctlBase); } } foreach (SMFlowBase flowItem in _flowContainer.FilterByType <SMFlowBase>()) { Build(flowItem); } Redraw(); }
public void Redraw() { _flowContainer.DetermineAllChildTargets(); foreach (Control ctl in this.Controls) { SMCtlBase ctlBase = ctl as SMCtlBase; if (ctlBase != null) { ctlBase.MoveItem(); } } //foreach (SMFlowBase flowItem in _flowContainer.FilterByType<SMFlowBase>()) //{ // SMCtlBase ctlItem = GetFlowCtl(flowItem); // if (ctlItem != null) // { // ctlItem.MoveItem(); // } //} }
public void Dispose(SMCtlBase ctlBase) { ctlBase.Dispose(); Controls.Remove(ctlBase); }
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(); } }