void SavePortLinkGlyph(TextWriter sw, IPortLinkGlyph glyph) { SaveBounds(sw, "PORTLINK:", glyph); IGroupGlyph groupGlyph = glyph as IGroupGlyph; foreach (IGlyph contact in groupGlyph.ContactPoints) { if (contact.Parent != null) { sw.WriteLine(contact.Parent.Id); } else { sw.WriteLine("NOPARENT"); } } SaveGlyphCommon(sw, glyph); IPortLinkGlyph link = glyph; SaveText(sw, "NAME", link.Name); SaveText(sw, "FROMPORTNAME", link.FromPortName); SaveText(sw, "TOPORTNAME", link.ToPortName); SaveText(sw, "SENDINDEX", link.SendIndex); }
void SaveTransitionGlyph(TextWriter sw, ITransitionGlyph glyph) { SaveBounds(sw, "TRANSITION:", glyph); IGroupGlyph groupGlyph = glyph as IGroupGlyph; foreach (IGlyph contact in groupGlyph.ContactPoints) { if (contact.Parent != null) { sw.WriteLine(contact.Parent.Id); } else { sw.WriteLine("NOPARENT"); } } SaveGlyphCommon(sw, glyph); ITransitionGlyph trans = glyph; SaveText(sw, "NAME", trans.Name); SaveText(sw, "EVENT", trans.EventSignal); SaveText(sw, "GUARD", trans.GuardCondition); SaveText(sw, "ACTION", trans.Action); SaveText(sw, "TRANSITIONTYPE", trans.TransitionType.ToString()); SaveText(sw, "EVENTSOURCE", trans.EventSource); SaveTextIfNotDefault(sw, "EVENTTYPE", trans.EventType, ""); SaveText(sw, "EVALUATIONORDERPRIORITY", trans.EvaluationOrderPriority.ToString()); sw.WriteLine(trans.IsInnerTransition); SaveText(sw, "TIMEOUTEXPRESSION", trans.TimeOutExpression); }
void BuildStateTransitionParentRelationships() { foreach (DictionaryEntry de in _EntityLinkRel) { IGlyph glyph = _GlyphLookup [de.Key] as IGlyph; StringPair pair = de.Value as StringPair; IGlyph parentOne = _GlyphLookup [pair.One] as IGlyph; IGlyph parentTwo = _GlyphLookup [pair.Two] as IGlyph; IGroupGlyph groupGlyph = glyph as IGroupGlyph; int index = 0; foreach (IGlyph contact in groupGlyph.ContactPoints) { switch (index) { case 0: { contact.Parent = parentOne; } break; case 1: { contact.Parent = parentTwo; } break; } index++; } } }
IGlyph InnerFindContactPoint(System.Drawing.Point point, out IGlyph parent) { parent = null; foreach (IGlyph glyph in _Glyphs) { IGroupGlyph groupGlyph = glyph as IGroupGlyph; if (groupGlyph != null) { foreach (IGlyph contact in groupGlyph.ContactPoints) { if (contact.ContainsPoint(point)) { parent = groupGlyph; return(contact); } } } } return(null); }
public void Visit(IGroupGlyph group) { }