public void Select(CompRepInfo _comp) { // expand if (_comp != null) { _comp.IsExpanded = true; List <CompRep> parent_chain = this.GetParentChain(_comp); foreach (CompRep cr in parent_chain) { cr.IsExpanded = true; } } // reset selection foreach (CompRep cr in this.CompRepRecord) { cr.IsSelected = false; if (cr is CompRepInfo) { CompRepInfo cri = cr as CompRepInfo; List <CompRepInfo> cri_subs = cri.GetFlatListOfSubCompReps(); foreach (CompRepInfo cri_subs_i in cri_subs) { cri_subs_i.IsSelected = false; } } } // select if (_comp != null) { _comp.IsSelected = true; } }
public void UpdateFlatRecord() { this.comp_rep_record_flat = new List <CompRep>(); foreach (CompRep cr in this.comp_rep_record) { this.comp_rep_record_flat.Add(cr); if (cr is CompRepInfo) { CompRepInfo cri = cr as CompRepInfo; List <CompRepInfo> cri_subs = cri.GetFlatListOfSubCompReps(); this.comp_rep_record_flat.AddRange(cri_subs); } } }
public List <ComponentMessage> ExtractMessagesFrom(CompRep _cr) { List <ComponentMessage> extracted = new List <ComponentMessage>(); if (_cr == null) { return(extracted); } CompRepInfo cri = _cr as CompRepInfo; if (cri == null) { return(extracted); } List <CompRepInfo> cr_subCRs = cri.GetFlatListOfSubCompReps(); int nrSub = cr_subCRs.Count; if (nrSub == 0) { ComponentMessage msg = cri.ExtractMessage(MessagePositionInSeq.SINGLE_MESSAGE); if (msg != null) { extracted.Add(msg); } } else { ComponentMessage msg = cri.ExtractMessage(MessagePositionInSeq.SEQUENCE_START_MESSAGE); if (msg != null) { extracted.Add(msg); } for (int i = 0; i < nrSub; i++) { MessagePositionInSeq pos_current = (i == (nrSub - 1)) ? MessagePositionInSeq.SEQUENCE_END_MESSAGE : MessagePositionInSeq.MESSAGE_INSIDE_SEQUENCE; ComponentMessage msg_i = cr_subCRs[i].ExtractMessage(pos_current); if (msg_i != null) { extracted.Add(msg_i); } } } return(extracted); }
public List <ComponentMessage> ExtractMessagesForReferenceUpdateFrom(CompRep _cr) { List <ComponentMessage> extracted = new List <ComponentMessage>(); if (_cr == null) { return(extracted); } CompRepInfo cri = _cr as CompRepInfo; if (cri == null) { return(extracted); } // call 'ExtractMessage' to force synchronization with geometry ComponentMessage msg1 = cri.ExtractMessage(MessagePositionInSeq.SINGLE_MESSAGE); // ............................................................................. List <CompRepInfo> cr_subCRs = cri.GetFlatListOfSubCompReps(); List <CompRepInfo> cr_CRs_w_refs = cr_subCRs.Where(x => x.Comp_RefCompIDs.Count > 0).ToList(); if (cri.Comp_RefCompIDs.Count > 0) { cr_CRs_w_refs.Insert(0, cri); } int nrMsg = cr_CRs_w_refs.Count; if (nrMsg == 1) { ComponentMessage msg = cr_CRs_w_refs[0].ExtractMessage(MessagePositionInSeq.SINGLE_MESSAGE); if (msg != null) { extracted.Add(msg); } } else if (nrMsg > 1) { for (int i = 0; i < nrMsg; i++) { MessagePositionInSeq pos_current = MessagePositionInSeq.SEQUENCE_START_MESSAGE; if (i > 0 && i < (nrMsg - 1)) { pos_current = MessagePositionInSeq.MESSAGE_INSIDE_SEQUENCE; } else if (i == (nrMsg - 1)) { pos_current = MessagePositionInSeq.SEQUENCE_END_MESSAGE; } ComponentMessage msg_i = cr_CRs_w_refs[i].ExtractMessage(pos_current); if (msg_i != null) { extracted.Add(msg_i); } } } return(extracted); }