IControlPoint GetExternalOutputControlPoint(IControlPoint originalSender, IControlPoint originalTarget) { if (mOutputControlPointMap.ContainsKey(originalTarget) == false) { originalTarget.HasProxy = true; BasicControlPoint proxy = new BasicControlPoint(mOuterGroup); proxy.Virtual = true; proxy.SetDirection(new Point(-250, 0)); //proxy.ChainChild = target; proxy.TargetKey = originalTarget.TargetKey; proxy.TypeKey = originalTarget.TypeKey; //proxy.BackColor = originalSender.BackColor; proxy.ControlPointDescription = originalTarget.ControlPointDescription; proxy.Name = originalTarget.ToString(); proxy.TagObject = this; proxy.ProxyTarget = originalTarget; mControlPoints.Add(proxy); //? GroupOutputHardPointsBar.AddControl(proxy); mOutputControlPointMap[originalTarget] = proxy; proxy.SenderControlPointConnected += new BasicControlPoint.ControlPointEvent(outproxy_ControlPointConnected); proxy.SenderControlPointRemoved += new BasicControlPoint.ControlPointEvent(outproxy_ControlPointRemoved); } return(mOutputControlPointMap[originalTarget]); }
public void ClearData() { mbLoading = true; mControlPoints.Clear(); GroupOutputHardPointsBar.RemoveAll(); GroupInputHardPointsBar.RemoveAll(); foreach (KeyValuePair <IControlPoint, IControlPoint> pair in mInLinks) { pair.Key.DisconnectControlPoint(pair.Value); } foreach (KeyValuePair <IControlPoint, IControlPoint> pair in mOutLinks) { pair.Key.DisconnectControlPoint(pair.Value); } mInLinks.Clear(); mOutLinks.Clear(); mInputControlPointMap.Clear(); mOutputControlPointMap.Clear(); mbLoading = false; }