public void OnAdd(object sender, EventArgs e) { if (sail == null) return; List<Type> useThese = new List<Type>(); useThese.Add(typeof(MouldCurve)); useThese.Add(typeof(GuideComb)); AddGroup dlg = new AddGroup(useThese); dlg.Name = "enter name"; if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { IRebuild cur = dlg.CreateIRebuild(); if (cur.GetType().Name == "GuideComb") { m_curveTracker = new CurveTracker(new GuideComb(dlg.Label, m_group.Sail, new IFitPoint[] { new FixedPoint(0, 0), new FixedPoint(1, 1) }, new Vect2[] { new Vect2(0, 1), new Vect2(1, 1) })); m_curveTracker.Track(m_frame); } else { m_curveTracker = new CurveTracker(new MouldCurve(dlg.Label, m_group.Sail, new IFitPoint[] { new FixedPoint(0, 0), new FixedPoint(1, 1) })); m_curveTracker.Track(m_frame); } } //here we need to ask if we want a GuideComb or a normal curve }
public void Cancel() { View.DeSelectAllLayers(); foreach (MouldCurve curve in m_group) View.DeSelect(curve); View.Refresh(); Tree.KeyUp -= Tree_KeyUp; // handle ctrl-c ctrl-v Tree.TreeContextMenu.Opening -= ContextMenuStrip_Opening; Tree.TreeContextMenu.ItemClicked -= TreeContextMenu_ItemClicked; if (m_curveTracker != null) { m_curveTracker.Cancel(); m_curveTracker = null; } }
//entry point for trackers public void m_tree_AfterSelect(object sender, EventArgs<IRebuild> e) { if ((sender == Tree || sender == View) && m_Tracker != null && m_Tracker.EditMode) return; //dont do anything if we are already edit-tracking Status = ""; View.DeSelectAll(); ITracker track = null; if (e.Value is MouldCurve) { if (e.Value is GuideComb) track = new GuideCombTracker(e.Value as GuideComb); else track = new CurveTracker(e.Value as MouldCurve); } else if (e.Value is IGroup) { switch (e.Value.GetType().Name) { case "CurveGroup": track = new CurveGroupTracker(e.Value as CurveGroup); break; case "VariableGroup": track = new VariableGroupTracker(e.Value as VariableGroup); break; case "YarnGroup": track = new YarnGroupTracker(e.Value as YarnGroup); break; } } else if (e.Value is Equation) { IGroup parent = ActiveSail.FindGroup(e.Value); if (parent != null) track = new VariableGroupTracker(parent as VariableGroup); } else// if (e.Value is Sail) track = new SailTracker(EditMode); if (track != null) { #if DEBUG logger.Instance.Log(String.Format("Creating new {0} from {1}", track.GetType().Name, e.Value == null ? "null" : e.Value.GetType().Name), LogPriority.Debug); #endif PostTracker(track); } }