Exemplo n.º 1
0
        /// <summary>
        /// Print the concept root
        ///
        /// </summary>
        /// <param name="conceptRoot"></param>
        /// <returns></returns>
        public TreeViewItem PrintConceptRoot(ConceptRoot conceptRoot)
        {
            TreeViewItem treeViewItem = new TreeViewItem();

            treeViewItem.Header = "ConceptRoot - " + conceptRoot.name;
            if (conceptRoot.uuid != "")
            {
                treeViewItem.Items.Add("UUID: " + conceptRoot.uuid);
            }
            if (conceptRoot.applicableRootEntity != "")
            {
                treeViewItem.Items.Add("applicableRootEntity: " + conceptRoot.applicableRootEntity);
            }

            Dictionary <string, Concept> allConcepts = conceptRoot.GetAllConcepts();

            if (allConcepts.Count > 0)
            {
                TreeViewItem conceptItem = new TreeViewItem();
                conceptItem.Header = "Concepts";
                foreach (var item in allConcepts)
                {
                    var treeViewItem2 = PrintConcept(item.Value);
                    conceptItem.Items.Add(treeViewItem2);
                }
                treeViewItem.Items.Add(conceptItem);
            }
            return(treeViewItem);
        }
Exemplo n.º 2
0
 internal void AddConceptRootLookup(ConceptRoot conceptRoot)
 {
     if (_expressTypeConceptRootLookup == null)
     {
         _expressTypeConceptRootLookup = new Dictionary <ExpressType, List <ConceptRoot> >();
     }
     if (string.IsNullOrEmpty(conceptRoot.applicableRootEntity))
     {
         Log.ErrorFormat(@"Null or empty ExpressType for ConceptRoot '{0}' (uuid: {1})",
                         conceptRoot.name, conceptRoot.uuid);
         return;
     }
     try
     {
         var tp = GetExpressType(conceptRoot.ParentModelView.applicableSchema, conceptRoot.applicableRootEntity);
         if (tp == null)
         {
             return;
         }
         // needs to add conceptRoot to all non abstract sub types
         AddWithSubtypes(tp, conceptRoot);
     }
     catch (Exception)
     {
         Log.ErrorFormat(@"ExpressType {0} not recognised for ConceptRoot '{1}' (uuid: {2})",
                         conceptRoot.applicableRootEntity, conceptRoot.name, conceptRoot.uuid);
     }
 }
Exemplo n.º 3
0
 private void AddWithSubtypes(ExpressType tp, ConceptRoot conceptRoot)
 {
     AddType(conceptRoot, tp);
     // todo: should this be tp.SubTypes or allSubTypes (used to be ifcsubtypes before conversion)
     foreach (var nonAbstractSubType in tp.SubTypes)
     {
         AddWithSubtypes(nonAbstractSubType, conceptRoot);
     }
 }
Exemplo n.º 4
0
 // ReSharper disable once UnusedMember.Local
 private IEnumerable <ReportResult> ReportConceptRoot(ConceptRoot croot, IPersistEntity entity)
 {
     ReportTextBox.Text += $"ConceptRoot {croot.name} ({croot.uuid}) on #{entity.EntityLabel}\r\n";
     foreach (var cpt2 in croot.Concepts)
     {
         var rep = ReportConcept(cpt2, entity);
         if (!ConfigShowResult(rep))
         {
             continue;
         }
         yield return(rep);
     }
 }
Exemplo n.º 5
0
        private void AddType(ConceptRoot conceptRoot, ExpressType st)
        {
            List <ConceptRoot> dicItem;

            if (_expressTypeConceptRootLookup.TryGetValue(st, out dicItem))
            {
                dicItem.Add(conceptRoot);
            }
            else
            {
                _expressTypeConceptRootLookup.Add(st, new List <ConceptRoot>()
                {
                    conceptRoot
                });
            }
        }
Exemplo n.º 6
0
 public ConceptRootExpander(ConceptRoot conceptRoot)
 {
     _conceptRoot = conceptRoot;
 }