Exemple #1
0
        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;
            }
        }
Exemple #2
0
 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);
         }
     }
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }